(This is a merge of go/wvgerrit/23686) This patch removes the makefile lines that previously prevented the Widevine DRM Plugin from being built as 64-bit on Android. 64-bit builds are now fully supported. Only one piece of CDM code has had to change. Due to a bug in libprotobuf before v3.0, int64 values from protobufs are technically a different type from int64_t values in code on some 64-bit architectures. Both have the same in-memory representation at runtime but are seen as distinct types by the compiler. The compiler will automatically convert in most places, but template instantiation is not one of them, so a few places that passed a Protobuf int64 directly into a template had to be modified. Please note that tweaks to the mediadrmserver (not covered by this patch) are needed in order for it to run as 64-bit and load 64-bit DRM Plugins. Please also note that, as we have no 64-bit L1 OEMCrypto on any devices, using the 64-bit mediadrmserver and Widevine library will make your device fall back to L3 for the time being. Bug: 18949752 Test: OEMCrypto unit tests Test: Widevine unit tests Test: Google Play (on Marlin) Test: Widevine GTS Tests (on Marlin) Change-Id: Ib6cdf2dd1ff75a1c473cacdc5e22397caa0a656c
52 lines
1.6 KiB
Makefile
52 lines
1.6 KiB
Makefile
# ----------------------------------------------------------------
|
|
# Builds libcdm.a
|
|
#
|
|
LOCAL_PATH := $(call my-dir)
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/metrics/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
vendor/widevine/libwvdrmengine/third_party/stringencoders/src
|
|
|
|
LOCAL_C_INCLUDES += \
|
|
external/jsmn \
|
|
external/protobuf/src \
|
|
|
|
LOCAL_STATIC_LIBRARIES := libcdm_protos libcrypto_static
|
|
|
|
SRC_DIR := src
|
|
CORE_SRC_DIR := core/src
|
|
METRICS_SRC_DIR := metrics/src
|
|
|
|
LOCAL_SRC_FILES := \
|
|
$(CORE_SRC_DIR)/buffer_reader.cpp \
|
|
$(CORE_SRC_DIR)/cdm_engine.cpp \
|
|
$(CORE_SRC_DIR)/cdm_session.cpp \
|
|
$(CORE_SRC_DIR)/certificate_provisioning.cpp \
|
|
$(CORE_SRC_DIR)/crypto_session.cpp \
|
|
$(CORE_SRC_DIR)/device_files.cpp \
|
|
$(CORE_SRC_DIR)/initialization_data.cpp \
|
|
$(CORE_SRC_DIR)/license.cpp \
|
|
$(CORE_SRC_DIR)/license_key_status.cpp \
|
|
$(CORE_SRC_DIR)/oemcrypto_adapter_dynamic.cpp \
|
|
$(CORE_SRC_DIR)/policy_engine.cpp \
|
|
$(CORE_SRC_DIR)/privacy_crypto_openssl.cpp \
|
|
$(CORE_SRC_DIR)/service_certificate.cpp \
|
|
$(CORE_SRC_DIR)/usage_table_header.cpp \
|
|
$(SRC_DIR)/ami_adapter.cpp \
|
|
$(SRC_DIR)/wv_content_decryption_module.cpp \
|
|
$(METRICS_SRC_DIR)/distribution.cpp \
|
|
$(METRICS_SRC_DIR)/event_metric.cpp \
|
|
$(METRICS_SRC_DIR)/metrics_front_end.cpp \
|
|
$(METRICS_SRC_DIR)/metrics_group.cpp \
|
|
$(METRICS_SRC_DIR)/timer_metric.cpp \
|
|
|
|
|
|
LOCAL_MODULE := libcdm
|
|
LOCAL_MODULE_TAGS := optional
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|