Merged from http://go/wvgerrit/44803. Upgrade HIDL service to v1.1 and implements new 1.1 media API. Test: Netflix and Play Movies & TV streaming and offline playback Test: GTS WidevineH264PlaybackTests test e.g. ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases --test com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P30 Test: GTS MediaDrmTest tests e.g. ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases --test com.google.android.media.gts.MediaDrmTest#testWidevineApi28 Test: unit tests bug: 69674645 Change-Id: I91e7e43f9178b61a531e846beffb5f5c17050a3c
268 lines
7.3 KiB
Makefile
268 lines
7.3 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.1-service.widevine
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := src_hidl/service.cpp
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
vendor/widevine/libwvdrmengine/include_hidl \
|
|
vendor/widevine/libwvdrmengine/mediadrm/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
android.hardware.drm@1.0 \
|
|
android.hardware.drm@1.1 \
|
|
libbase \
|
|
libhidltransport \
|
|
libhwbinder \
|
|
liblog \
|
|
libutils \
|
|
libwvhidl \
|
|
libbinder \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libstagefright_foundation_headers
|
|
|
|
LOCAL_MODULE := android.hardware.drm@1.1-service.widevine
|
|
LOCAL_INIT_RC := src_hidl/android.hardware.drm@1.1-service.widevine.rc
|
|
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/bin/hw
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
LOCAL_MODULE_OWNER := widevine
|
|
|
|
ifneq ($(TARGET_ENABLE_MEDIADRM_64), true)
|
|
LOCAL_MODULE_TARGET_ARCH := arm x86 mips
|
|
endif
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libcdm_utils.a
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libcdm_utils
|
|
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
LOCAL_STATIC_LIBRARIES := libcrypto
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libutils_headers \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
liblog
|
|
|
|
SRC_DIR := cdm/src
|
|
CORE_SRC_DIR := cdm/core/src
|
|
LOCAL_SRC_FILES := \
|
|
$(CORE_SRC_DIR)/properties.cpp \
|
|
$(CORE_SRC_DIR)/string_conversions.cpp \
|
|
$(SRC_DIR)/clock.cpp \
|
|
$(SRC_DIR)/file_store.cpp \
|
|
$(SRC_DIR)/file_utils.cpp \
|
|
$(SRC_DIR)/lock.cpp \
|
|
$(SRC_DIR)/log.cpp \
|
|
$(SRC_DIR)/properties_android.cpp \
|
|
$(SRC_DIR)/timer.cpp \
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libcdm_protos.a
|
|
# Generates *.a, *.pb.h and *.pb.cc for *.proto files.
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_MODULE := libcdm_protos
|
|
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
CORE_PROTO_SRC_FILES := $(call all-proto-files-under, cdm/core/src)
|
|
METRICS_PROTO_SRC_FILES := $(call all-proto-files-under, cdm/metrics/src)
|
|
LOCAL_SRC_FILES := $(CORE_PROTO_SRC_FILES) $(METRICS_PROTO_SRC_FILES)
|
|
|
|
generated_sources_dir := $(call local-generated-sources-dir)
|
|
|
|
# $(generated_sources_dir)/proto/$(LOCAL_PATH)/cdm/core/src is used
|
|
# to locate *.pb.h by cdm source
|
|
# $(generated_sources_dir)/proto is used to locate *.pb.h included
|
|
# by *.pb.cc
|
|
# The module that depends on this library will have LOCAL_C_INCLUDES prepended
|
|
# with this path.
|
|
LOCAL_EXPORT_C_INCLUDE_DIRS := \
|
|
$(generated_sources_dir)/proto \
|
|
$(generated_sources_dir)/proto/$(LOCAL_PATH)/cdm/core/src \
|
|
$(generated_sources_dir)/proto/$(LOCAL_PATH)/cdm/metrics/src
|
|
|
|
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/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 \
|
|
libcrypto \
|
|
libjsmn \
|
|
libwvdrmcryptoplugin \
|
|
libwvdrmdrmplugin \
|
|
libwvlevel3 \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libcutils \
|
|
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/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 \
|
|
libcrypto \
|
|
libjsmn \
|
|
libwvdrmcryptoplugin_hidl \
|
|
libwvdrmdrmplugin_hidl \
|
|
libwvlevel3 \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
android.hardware.drm@1.0 \
|
|
android.hardware.drm@1.1 \
|
|
android.hidl.memory@1.0 \
|
|
libcutils \
|
|
libdl \
|
|
libhidlbase \
|
|
libhidlmemory \
|
|
libhidltransport \
|
|
libhwbinder \
|
|
liblog \
|
|
libprotobuf-cpp-lite \
|
|
libutils \
|
|
|
|
LOCAL_MODULE := libwvhidl
|
|
|
|
LOCAL_MODULE_TAGS := optional
|
|
|
|
LOCAL_MODULE_OWNER := widevine
|
|
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
include $(BUILD_SHARED_LIBRARY)
|
|
|
|
include vendor/widevine/libwvdrmengine/cdm/Android.mk
|
|
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
|