# ----------------------------------------------------------------------------- # 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 \ 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 \ 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 \ libcutils \ 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