diff --git a/proprietary/drmwvmplugin/Android.mk b/proprietary/drmwvmplugin/Android.mk index 73379be5..28e9e376 100644 --- a/proprietary/drmwvmplugin/Android.mk +++ b/proprietary/drmwvmplugin/Android.mk @@ -1,20 +1,6 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) -ifeq ($(TARGET_ARCH),arm) - -LOCAL_MODULE := libwvdrm -LOCAL_SRC_FILES := \ - lib/libwvdrm.so -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_SUFFIX := $(suffix $(LOCAL_SRC_FILES)) -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES) -OVERRIDE_BUILT_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES) -include $(BUILD_PREBUILT) - -endif - ######################## # Feature file for clients to look up widevine drm plug-in diff --git a/proprietary/drmwvmplugin/common.mk b/proprietary/drmwvmplugin/common.mk index aebe580f..7e19cb4c 100644 --- a/proprietary/drmwvmplugin/common.mk +++ b/proprietary/drmwvmplugin/common.mk @@ -7,4 +7,3 @@ LOCAL_C_INCLUDES:= \ $(TOP)/frameworks/base/drm/libdrmframework/include \ $(TOP)/frameworks/base/drm/libdrmframework/plugins/common/include \ $(TOP)/frameworks/base/include - diff --git a/proprietary/drmwvmplugin/lib/Android.mk b/proprietary/drmwvmplugin/lib/Android.mk index 877fa1fb..7ab174cc 100644 --- a/proprietary/drmwvmplugin/lib/Android.mk +++ b/proprietary/drmwvmplugin/lib/Android.mk @@ -2,24 +2,13 @@ ifeq ($(TARGET_ARCH),arm) LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) +include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk + +LOCAL_PREBUILT_LIBS := \ + libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL).so \ + libwvocs_L$(LOCAL_OEMCRYPTO_LEVEL).a -include $(CLEAR_VARS) -LOCAL_MODULE := libwvocs -LOCAL_SRC_FILES := \ - libwvocs.a LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_SUFFIX := .a -LOCAL_MODULE_CLASS := STATIC_LIBRARIES -include $(BUILD_PREBUILT) +include $(BUILD_MULTI_PREBUILT) -include $(CLEAR_VARS) -LOCAL_MODULE := liboemstub -LOCAL_SRC_FILES := \ - liboemstub.a -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_SUFFIX := .a -LOCAL_MODULE_CLASS := STATIC_LIBRARIES -include $(BUILD_PREBUILT) - -endif \ No newline at end of file +endif diff --git a/proprietary/drmwvmplugin/lib/liboemstub.a b/proprietary/drmwvmplugin/lib/liboemstub.a deleted file mode 100644 index e45ee7f5..00000000 Binary files a/proprietary/drmwvmplugin/lib/liboemstub.a and /dev/null differ diff --git a/proprietary/drmwvmplugin/lib/libwvdrm.so b/proprietary/drmwvmplugin/lib/libwvdrm.so deleted file mode 100644 index fc8a868b..00000000 Binary files a/proprietary/drmwvmplugin/lib/libwvdrm.so and /dev/null differ diff --git a/proprietary/drmwvmplugin/lib/libwvdrm_L1.so b/proprietary/drmwvmplugin/lib/libwvdrm_L1.so new file mode 100644 index 00000000..2e6f3067 Binary files /dev/null and b/proprietary/drmwvmplugin/lib/libwvdrm_L1.so differ diff --git a/proprietary/drmwvmplugin/lib/libwvdrm_L3.so b/proprietary/drmwvmplugin/lib/libwvdrm_L3.so new file mode 100644 index 00000000..5f571a16 Binary files /dev/null and b/proprietary/drmwvmplugin/lib/libwvdrm_L3.so differ diff --git a/proprietary/drmwvmplugin/lib/libwvocs.a b/proprietary/drmwvmplugin/lib/libwvocs.a deleted file mode 100644 index a338e9ff..00000000 Binary files a/proprietary/drmwvmplugin/lib/libwvocs.a and /dev/null differ diff --git a/proprietary/drmwvmplugin/lib/libwvocs_L1.a b/proprietary/drmwvmplugin/lib/libwvocs_L1.a new file mode 100644 index 00000000..9bd04356 Binary files /dev/null and b/proprietary/drmwvmplugin/lib/libwvocs_L1.a differ diff --git a/proprietary/drmwvmplugin/lib/libwvocs_L3.a b/proprietary/drmwvmplugin/lib/libwvocs_L3.a new file mode 100644 index 00000000..66c6e324 Binary files /dev/null and b/proprietary/drmwvmplugin/lib/libwvocs_L3.a differ diff --git a/proprietary/drmwvmplugin/oemcryptolevel.mk b/proprietary/drmwvmplugin/oemcryptolevel.mk new file mode 100644 index 00000000..53d22ef6 --- /dev/null +++ b/proprietary/drmwvmplugin/oemcryptolevel.mk @@ -0,0 +1,7 @@ +# determine which oem crypto level API is being used on this device +# so we can link with the appropriate libs. +ifneq (,$(filter libwvdrm_L1, $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES))) + LOCAL_OEMCRYPTO_LEVEL := 1 +else + LOCAL_OEMCRYPTO_LEVEL := 3 +endif diff --git a/proprietary/drmwvmplugin/plugin-core.mk b/proprietary/drmwvmplugin/plugin-core.mk index f4cf5563..ba1b87cc 100644 --- a/proprietary/drmwvmplugin/plugin-core.mk +++ b/proprietary/drmwvmplugin/plugin-core.mk @@ -4,18 +4,19 @@ # required to build the plugin. # include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/common.mk +include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk LOCAL_WHOLE_STATIC_LIBRARIES := \ libdrmframeworkcommon \ libdrmwvmcommon \ - libwvocs + libwvocs_L$(LOCAL_OEMCRYPTO_LEVEL) LOCAL_SHARED_LIBRARIES := \ - libbinder \ - libutils \ - libcutils \ - libstlport \ - libz \ - libwvdrm \ - libWVStreamControlAPI \ + libbinder \ + libutils \ + libcutils \ + libstlport \ + libz \ + libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL) \ + libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL) \ libdl diff --git a/proprietary/drmwvmplugin/test/Android.mk b/proprietary/drmwvmplugin/test/Android.mk index 555ff7a9..99770d65 100644 --- a/proprietary/drmwvmplugin/test/Android.mk +++ b/proprietary/drmwvmplugin/test/Android.mk @@ -18,7 +18,6 @@ LOCAL_C_INCLUDES+= \ LOCAL_SHARED_LIBRARIES := \ libstlport \ - libwvdrm \ liblog \ libutils \ libz \ diff --git a/proprietary/drmwvmplugin/test/TestPlugin.cpp b/proprietary/drmwvmplugin/test/TestPlugin.cpp index 24839c23..efc64c86 100644 --- a/proprietary/drmwvmplugin/test/TestPlugin.cpp +++ b/proprietary/drmwvmplugin/test/TestPlugin.cpp @@ -59,7 +59,7 @@ void WVMDrmPluginTest::Run() const char *path = "/system/lib/drm/libdrmwvmplugin.so"; void *handle = dlopen(path, RTLD_NOW); if (handle == NULL) { - fprintf(stderr, "Can't open plugin: %s\n", path); + fprintf(stderr, "Can't open plugin: %s %s\n", path, dlerror()); exit(-1); } diff --git a/proprietary/streamcontrol/lib/Android.mk b/proprietary/streamcontrol/lib/Android.mk index 27d7e722..6f497663 100644 --- a/proprietary/streamcontrol/lib/Android.mk +++ b/proprietary/streamcontrol/lib/Android.mk @@ -3,15 +3,12 @@ ifeq ($(TARGET_ARCH),arm) LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk + +LOCAL_PREBUILT_LIBS := \ + libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL).so -LOCAL_MODULE := libWVStreamControlAPI -LOCAL_SRC_FILES := \ - libWVStreamControlAPI.so LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_SUFFIX := $(suffix $(LOCAL_SRC_FILES)) -LOCAL_MODULE_CLASS := SHARED_LIBRARIES -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES) -OVERRIDE_BUILT_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES) -include $(BUILD_PREBUILT) +include $(BUILD_MULTI_PREBUILT) endif diff --git a/proprietary/streamcontrol/lib/libWVStreamControlAPI.so b/proprietary/streamcontrol/lib/libWVStreamControlAPI.so deleted file mode 100644 index cb85cdee..00000000 Binary files a/proprietary/streamcontrol/lib/libWVStreamControlAPI.so and /dev/null differ diff --git a/proprietary/streamcontrol/lib/libWVStreamControlAPI_L1.so b/proprietary/streamcontrol/lib/libWVStreamControlAPI_L1.so new file mode 100644 index 00000000..88b73520 Binary files /dev/null and b/proprietary/streamcontrol/lib/libWVStreamControlAPI_L1.so differ diff --git a/proprietary/streamcontrol/lib/libWVStreamControlAPI_L3.so b/proprietary/streamcontrol/lib/libWVStreamControlAPI_L3.so new file mode 100644 index 00000000..9fe36a5d Binary files /dev/null and b/proprietary/streamcontrol/lib/libWVStreamControlAPI_L3.so differ diff --git a/proprietary/streamcontrol/test/Android.mk b/proprietary/streamcontrol/test/Android.mk index e5733c44..26439aaf 100644 --- a/proprietary/streamcontrol/test/Android.mk +++ b/proprietary/streamcontrol/test/Android.mk @@ -3,33 +3,34 @@ ifeq ($(TARGET_ARCH),arm) LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk LOCAL_SRC_FILES:= \ TestPlayer.cpp -LOCAL_C_INCLUDES+= \ - bionic \ - vendor/widevine/proprietary/include \ - external/stlport/stlport \ +LOCAL_MODULE_TAGS := tests + +LOCAL_C_INCLUDES += \ + bionic \ + vendor/widevine/proprietary/include \ + external/stlport/stlport \ vendor/widevine/proprietary/streamcontrol/include \ - vendor/widevine/proprietary/drmwvmplugin/include \ - frameworks/base/drm/libdrmframework/include \ + vendor/widevine/proprietary/drmwvmplugin/include \ + frameworks/base/drm/libdrmframework/include \ frameworks/base/drm/libdrmframework/plugins/common/include LOCAL_SHARED_LIBRARIES := \ - libstlport \ - libWVStreamControlAPI \ - libdrmframework \ - libwvdrm \ - liblog \ - libutils \ - libz \ - libcutils \ - libdl + libstlport \ + libdrmframework \ + liblog \ + libutils \ + libz \ + libcutils \ + libdl \ + libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL) \ + libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL) -LOCAL_MODULE:=test-wvplayer - -LOCAL_MODULE_TAGS := tests +LOCAL_MODULE:=test-wvplayer_L$(LOCAL_OEMCRYPTO_LEVEL) include $(BUILD_EXECUTABLE) diff --git a/proprietary/wvm/Android.mk b/proprietary/wvm/Android.mk index 9ca08c38..ba4c3067 100644 --- a/proprietary/wvm/Android.mk +++ b/proprietary/wvm/Android.mk @@ -3,8 +3,11 @@ ifeq ($(TARGET_ARCH),arm) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk +ifeq ($(LOCAL_OEMCRYPTO_LEVEL),1) LOCAL_CFLAGS := -DREQUIRE_SECURE_BUFFERS +endif LOCAL_SRC_FILES:= \ WVMLogging.cpp \ @@ -21,14 +24,14 @@ LOCAL_C_INCLUDES:= \ vendor/widevine/proprietary/streamcontrol/include \ vendor/widevine/proprietary/wvm/include -LOCAL_SHARED_LIBRARIES := \ - libstlport \ - libstagefright \ - libWVStreamControlAPI \ - libdrmframework \ - libcutils \ - liblog \ - libutils \ +LOCAL_SHARED_LIBRARIES := \ + libstlport \ + libstagefright \ + libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL) \ + libdrmframework \ + libcutils \ + liblog \ + libutils \ libz LOCAL_MODULE := libwvm diff --git a/proprietary/wvm/common.mk b/proprietary/wvm/common.mk new file mode 100644 index 00000000..e69de29b diff --git a/proprietary/wvm/test/Testlibwvm.cpp b/proprietary/wvm/test/Testlibwvm.cpp index 88f7d921..e6363d1b 100644 --- a/proprietary/wvm/test/Testlibwvm.cpp +++ b/proprietary/wvm/test/Testlibwvm.cpp @@ -69,7 +69,7 @@ void TestLibWVM::Load() LOGE("Failed to locate GetInstance in libwvm.so"); } -// dlclose(handle); + dlclose(handle); printf("Test successful!\n"); exit(0); }