(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
50 lines
1.2 KiB
Makefile
50 lines
1.2 KiB
Makefile
LOCAL_PATH:= $(call my-dir)
|
|
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES:= \
|
|
src/keys.cpp \
|
|
src/oemcrypto_auth_mock.cpp \
|
|
src/oemcrypto_engine_device_properties.cpp \
|
|
src/oemcrypto_engine_mock.cpp \
|
|
src/oemcrypto_key_mock.cpp \
|
|
src/oemcrypto_keybox_mock.cpp \
|
|
src/oemcrypto_keybox_testkey.cpp \
|
|
src/oemcrypto_logging.cpp \
|
|
src/oemcrypto_mock.cpp \
|
|
src/oemcrypto_nonce_table.cpp \
|
|
src/oemcrypto_old_usage_table_mock.cpp \
|
|
src/oemcrypto_rsa_key_shared.cpp \
|
|
src/oemcrypto_session.cpp \
|
|
src/oemcrypto_session_key_table.cpp \
|
|
src/oemcrypto_usage_table_mock.cpp \
|
|
src/wvcrc.cpp \
|
|
|
|
LOCAL_MODULE_TAGS := tests
|
|
|
|
LOCAL_C_INCLUDES += \
|
|
$(LOCAL_PATH)/../include \
|
|
$(LOCAL_PATH)/src \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/third_party/stringencoders/src \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libcutils \
|
|
libdl \
|
|
liblog \
|
|
libmedia \
|
|
libstagefright_foundation \
|
|
libutils \
|
|
libz \
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libcdm_utils \
|
|
libcrypto_static \
|
|
|
|
# Proprietary modules are put in vendor/lib instead of /system/lib.
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
LOCAL_MODULE := liboemcrypto
|
|
|
|
include $(BUILD_SHARED_LIBRARY)
|
|
|