Some restructuring of the build was required to support the different

OEM security levels used on tuna vs stingray & crespo. This is part of
the work for b/4598045 Implementing secure video path on TI OMAP4 chip
for ICS.

The Widevine libraries included here, 4.5.0.4321 also contain a fix
for b/4400696 Pinning and unpinning multiple movie for download behavior
is not uniform for multiple tries.

Change-Id: I67f34c06a0353ac7f401f55c1ed4fc2493bc8ab7
This commit is contained in:
Jeff Tinker
2011-08-06 22:26:11 -07:00
committed by Edwin Wong
parent fa7e3b620a
commit 9e8923789e
22 changed files with 60 additions and 78 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -2,24 +2,13 @@ ifeq ($(TARGET_ARCH),arm)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk
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)
LOCAL_PREBUILT_LIBS := \
libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL).so \
libwvocs_L$(LOCAL_OEMCRYPTO_LEVEL).a
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)
include $(BUILD_MULTI_PREBUILT)
endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -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

View File

@@ -4,11 +4,12 @@
# 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 \
@@ -16,6 +17,6 @@ LOCAL_SHARED_LIBRARIES := \
libcutils \
libstlport \
libz \
libwvdrm \
libWVStreamControlAPI \
libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL) \
libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL) \
libdl

View File

@@ -18,7 +18,6 @@ LOCAL_C_INCLUDES+= \
LOCAL_SHARED_LIBRARIES := \
libstlport \
libwvdrm \
liblog \
libutils \
libz \

View File

@@ -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);
}

View File

@@ -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

View File

@@ -3,10 +3,13 @@ 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_MODULE_TAGS := tests
LOCAL_C_INCLUDES += \
bionic \
vendor/widevine/proprietary/include \
@@ -18,18 +21,16 @@ LOCAL_C_INCLUDES+= \
LOCAL_SHARED_LIBRARIES := \
libstlport \
libWVStreamControlAPI \
libdrmframework \
libwvdrm \
liblog \
libutils \
libz \
libcutils \
libdl
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)

View File

@@ -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 \
@@ -24,7 +27,7 @@ LOCAL_C_INCLUDES:= \
LOCAL_SHARED_LIBRARIES := \
libstlport \
libstagefright \
libWVStreamControlAPI \
libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL) \
libdrmframework \
libcutils \
liblog \

View File

View File

@@ -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);
}