Merge from Widevine repo of http://go/wvgerrit/93404 This is the unit tests, reference code, and documentation for OEMCrypto v16.2. Backwards compatibility should work for a v15 OEMCrypto. Some review comments will be addressed in future CLs. Bug: 141247171 Test: Unit tests Test: Media GTS tests on bonito Change-Id: I9d427c07580e180c0a4cfdc4a68f538d351c0ddd
267 lines
7.7 KiB
Makefile
267 lines
7.7 KiB
Makefile
# -----------------------------------------------------------------------------
|
|
# CDM top level makefile
|
|
#
|
|
LOCAL_PATH := $(call my-dir)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Copies move script to /system/bin.
|
|
#
|
|
# The move script is only needed for existing devices that
|
|
# are running Widevine DRM and are upgrading to Pi or later
|
|
# Android releases. New devices release with Pi and future
|
|
# Android releases do not need to run this script.
|
|
#
|
|
# To run this script, vendor must add the dependency to the
|
|
# corresponding device.mk file and build from ANDROID_ROOT.
|
|
#
|
|
# For example:
|
|
# PRODUCT_PACKAGES += \
|
|
# android.hardware.drm@1.0-impl \
|
|
# android.hardware.drm@1.0-service \
|
|
# android.hardware.drm@1.0-service.widevine \
|
|
# move_widevine_data.sh
|
|
#
|
|
# In addition, vendor needs to update device SELinux policy.
|
|
#
|
|
# The mv command preserves SELinux labels(i.e. media_data_file).
|
|
# We need to run restorecon to put the correct context after the move.
|
|
# However, restorecon is not implemented for /vendor/bin, so we put
|
|
# the script in /system/bin.
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := move_widevine_data.sh
|
|
LOCAL_MODULE_CLASS := EXECUTABLES
|
|
LOCAL_MODULE := $(LOCAL_SRC_FILES)
|
|
LOCAL_MODULE_TAGS := optional
|
|
LOCAL_MODULE_OWNER := widevine
|
|
|
|
|
|
include $(BUILD_PREBUILT)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds android.hardware.drm@1.2-service.widevine
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
include $(LOCAL_PATH)/common_widevine_service.mk
|
|
LOCAL_SRC_FILES := src_hidl/service.cpp
|
|
LOCAL_MODULE := android.hardware.drm@1.2-service.widevine
|
|
LOCAL_INIT_RC := src_hidl/android.hardware.drm@1.2-service.widevine.rc
|
|
LOCAL_VINTF_FRAGMENTS := manifest_android.hardware.drm@1.2-service.widevine.xml
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds android.hardware.drm@1.2-service-lazy.widevine
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
include $(LOCAL_PATH)/common_widevine_service.mk
|
|
LOCAL_SRC_FILES := src_hidl/serviceLazy.cpp
|
|
LOCAL_MODULE := android.hardware.drm@1.2-service-lazy.widevine
|
|
LOCAL_OVERRIDES_MODULES := android.hardware.drm@1.2-service.widevine
|
|
LOCAL_INIT_RC := src_hidl/android.hardware.drm@1.2-service-lazy.widevine.rc
|
|
LOCAL_VINTF_FRAGMENTS := manifest_android.hardware.drm@1.2-service.widevine.xml
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds android.hardware.drm@1.3-service.widevine
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
include $(LOCAL_PATH)/common_widevine_service.mk
|
|
LOCAL_SRC_FILES := src_hidl/service.cpp
|
|
LOCAL_MODULE := android.hardware.drm@1.3-service.widevine
|
|
LOCAL_INIT_RC := src_hidl/android.hardware.drm@1.3-service.widevine.rc
|
|
LOCAL_VINTF_FRAGMENTS := manifest_android.hardware.drm@1.3-service.widevine.xml
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds android.hardware.drm@1.3-service-lazy.widevine
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
include $(LOCAL_PATH)/common_widevine_service.mk
|
|
LOCAL_SRC_FILES := src_hidl/serviceLazy.cpp
|
|
LOCAL_MODULE := android.hardware.drm@1.3-service-lazy.widevine
|
|
LOCAL_OVERRIDES_MODULES := android.hardware.drm@1.3-service.widevine
|
|
LOCAL_INIT_RC := src_hidl/android.hardware.drm@1.3-service-lazy.widevine.rc
|
|
LOCAL_VINTF_FRAGMENTS := manifest_android.hardware.drm@1.3-service.widevine.xml
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libcdm_utils.a
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libcdm_utils
|
|
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/cdm/util/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libbase_headers \
|
|
libutils_headers \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
liblog \
|
|
libcrypto
|
|
|
|
LOCAL_CFLAGS := -DCORE_UTIL_IMPLEMENTATION
|
|
|
|
SRC_DIR := cdm/src
|
|
UTIL_SRC_DIR := cdm/util/src
|
|
CORE_SRC_DIR := cdm/core/src
|
|
LOCAL_SRC_FILES := \
|
|
$(CORE_SRC_DIR)/properties.cpp \
|
|
$(UTIL_SRC_DIR)/cdm_random.cpp \
|
|
$(UTIL_SRC_DIR)/clock.cpp \
|
|
$(UTIL_SRC_DIR)/file_store.cpp \
|
|
$(UTIL_SRC_DIR)/file_utils.cpp \
|
|
$(UTIL_SRC_DIR)/log.cpp \
|
|
$(UTIL_SRC_DIR)/platform.cpp \
|
|
$(UTIL_SRC_DIR)/rw_lock.cpp \
|
|
$(UTIL_SRC_DIR)/string_conversions.cpp \
|
|
$(SRC_DIR)/properties_android.cpp \
|
|
$(SRC_DIR)/timer.cpp \
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libwvdrmengine.so
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := \
|
|
src/WVCDMSingleton.cpp \
|
|
src/WVCreatePluginFactories.cpp \
|
|
src/WVCryptoFactory.cpp \
|
|
src/WVDrmFactory.cpp \
|
|
src/WVUUID.cpp \
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
frameworks/av/include \
|
|
frameworks/native/include \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/metrics/include \
|
|
vendor/widevine/libwvdrmengine/cdm/util/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/include \
|
|
vendor/widevine/libwvdrmengine/mediacrypto/include \
|
|
vendor/widevine/libwvdrmengine/mediadrm/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libcdm \
|
|
libcdm_protos \
|
|
libcdm_utils \
|
|
libjsmn \
|
|
libwvdrmcryptoplugin \
|
|
libwvdrmdrmplugin \
|
|
libwvlevel3 \
|
|
libwv_odk \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libbase \
|
|
libcrypto \
|
|
libdl \
|
|
liblog \
|
|
libprotobuf-cpp-lite \
|
|
libstagefright_foundation \
|
|
libutils \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libutils_headers \
|
|
libstagefright_headers
|
|
|
|
LOCAL_MODULE := libwvdrmengine
|
|
|
|
LOCAL_MODULE_RELATIVE_PATH := mediadrm
|
|
|
|
LOCAL_MODULE_TAGS := optional
|
|
|
|
LOCAL_MODULE_OWNER := widevine
|
|
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
include $(BUILD_SHARED_LIBRARY)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libwvhidl.so
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := \
|
|
src/WVCDMSingleton.cpp \
|
|
src/WVUUID.cpp \
|
|
src_hidl/WVCreatePluginFactories.cpp \
|
|
src_hidl/WVCryptoFactory.cpp \
|
|
src_hidl/WVDrmFactory.cpp \
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
frameworks/av/include \
|
|
frameworks/native/include \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/metrics/include \
|
|
vendor/widevine/libwvdrmengine/cdm/util/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/include_hidl \
|
|
vendor/widevine/libwvdrmengine/include \
|
|
vendor/widevine/libwvdrmengine/mediacrypto/include_hidl \
|
|
vendor/widevine/libwvdrmengine/mediacrypto/include \
|
|
vendor/widevine/libwvdrmengine/mediadrm/include_hidl \
|
|
vendor/widevine/libwvdrmengine/mediadrm/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libcdm \
|
|
libcdm_protos \
|
|
libcdm_utils \
|
|
libjsmn \
|
|
libwvdrmcryptoplugin_hidl \
|
|
libwvdrmdrmplugin_hidl \
|
|
libwvlevel3 \
|
|
libwv_odk \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
android.hardware.drm@1.0 \
|
|
android.hardware.drm@1.1 \
|
|
android.hardware.drm@1.2 \
|
|
android.hardware.drm@1.3 \
|
|
android.hidl.memory@1.0 \
|
|
libbase \
|
|
libcrypto \
|
|
libdl \
|
|
libhidlbase \
|
|
libhidlmemory \
|
|
liblog \
|
|
libprotobuf-cpp-lite \
|
|
libutils \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libstagefright_foundation_headers \
|
|
|
|
LOCAL_MODULE := libwvhidl
|
|
|
|
LOCAL_MODULE_TAGS := optional
|
|
|
|
LOCAL_MODULE_OWNER := widevine
|
|
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
include $(BUILD_SHARED_LIBRARY)
|
|
|
|
include vendor/widevine/libwvdrmengine/level3/Android.mk
|
|
include vendor/widevine/libwvdrmengine/mediacrypto/Android.mk
|
|
include vendor/widevine/libwvdrmengine/mediadrm/Android.mk
|
|
include vendor/widevine/libwvdrmengine/vts/vendor_module/Android.mk
|