Install proprietary userspace modules under /vendor.

BUG: 5284436

Change-Id: I9921b8446626b7041a3fc66bff918d3adac5bbe1
This commit is contained in:
Edwin Wong
2011-10-12 14:36:21 -07:00
committed by Ying Wang
parent f5fa8f2017
commit 1fee8fd75a
7 changed files with 85 additions and 11 deletions

51
CleanSpec.mk Normal file
View File

@@ -0,0 +1,51 @@
# Copyright (C) 2011 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# If you don't need to do a full clean build but would like to touch
# a file or delete some intermediate files, add a clean step to the end
# of the list. These steps will only be run once, if they haven't been
# run before.
#
# E.g.:
# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
#
# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
# files that are missing or have been moved.
#
# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
# Use $(OUT_DIR) to refer to the "out" directory.
#
# If you need to re-do something that's already mentioned, just copy
# the command and add it to the bottom of the list. E.g., if a change
# that you made last week required touching a file and a change you
# made today requires touching the same file, just copy the old
# touch step and add it to the end of the list.
#
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
# For example:
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/drm $(PRODUCT_OUT)/system/lib/libwv* $(PRODUCT_OUT)/system/lib/libWV*)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************

View File

@@ -15,5 +15,5 @@
--> -->
<permissions> <permissions>
<library name="com.google.widevine.software.drm" <library name="com.google.widevine.software.drm"
file="/system/lib/drm/libdrmwvmplugin.so"/> file="/vendor/lib/drm/libdrmwvmplugin.so"/>
</permissions> </permissions>

View File

@@ -2,14 +2,34 @@ ifeq ($(TARGET_ARCH),arm)
LOCAL_PATH:= $(call my-dir) LOCAL_PATH:= $(call my-dir)
#########################################################################
# libwvdrm_L?.so
include $(CLEAR_VARS)
include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk
LOCAL_PREBUILT_LIBS := \ LOCAL_MODULE := libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL)
libwvdrm_L$(LOCAL_OEMCRYPTO_LEVEL).so \ LOCAL_MODULE_CLASS := SHARED_LIBRARIES
libwvocs_L$(LOCAL_OEMCRYPTO_LEVEL).a LOCAL_MODULE_SUFFIX := .so
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
LOCAL_PROPRIETARY_MODULE := true
LOCAL_STRIP_MODULE := true LOCAL_STRIP_MODULE := true
LOCAL_MODULE_TAGS := optional LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT) include $(BUILD_PREBUILT)
#########################################################################
# libwvocs_L?.a
include $(CLEAR_VARS)
include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk
LOCAL_MODULE := libwvocs_L$(LOCAL_OEMCRYPTO_LEVEL)
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)
endif endif

View File

@@ -56,7 +56,7 @@ private:
void WVMDrmPluginTest::Run() void WVMDrmPluginTest::Run()
{ {
cout << "WVDrmPluginTest::Run" << endl; cout << "WVDrmPluginTest::Run" << endl;
const char *path = "/system/lib/drm/libdrmwvmplugin.so"; const char *path = "/vendor/lib/drm/libdrmwvmplugin.so";
void *handle = dlopen(path, RTLD_NOW); void *handle = dlopen(path, RTLD_NOW);
if (handle == NULL) { if (handle == NULL) {
fprintf(stderr, "Can't open plugin: %s %s\n", path, dlerror()); fprintf(stderr, "Can't open plugin: %s %s\n", path, dlerror());

View File

@@ -5,11 +5,14 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk
LOCAL_PREBUILT_LIBS := \ LOCAL_MODULE := libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL)
libWVStreamControlAPI_L$(LOCAL_OEMCRYPTO_LEVEL).so LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_SUFFIX := .so
LOCAL_SRC_FILES := $(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX)
LOCAL_PROPRIETARY_MODULE := true
LOCAL_STRIP_MODULE := true LOCAL_STRIP_MODULE := true
LOCAL_MODULE_TAGS := optional LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT) include $(BUILD_PREBUILT)
endif endif

View File

@@ -191,7 +191,7 @@ static void PrintMessage(const char *msg)
static void OpenDrmPlugin() static void OpenDrmPlugin()
{ {
const char *path = "/system/lib/drm/libdrmwvmplugin.so"; const char *path = "/vendor/lib/drm/libdrmwvmplugin.so";
sSharedLibHandle = dlopen(path, RTLD_NOW); sSharedLibHandle = dlopen(path, RTLD_NOW);
if (sSharedLibHandle == NULL) { if (sSharedLibHandle == NULL) {
fprintf(stderr, "Can't open plugin: %s\n", path); fprintf(stderr, "Can't open plugin: %s\n", path);

View File

@@ -50,7 +50,7 @@ void TestLibWVM::Load()
{ {
cout << "TestLibWVM::Load" << endl; cout << "TestLibWVM::Load" << endl;
const char *path = "/system/lib/libwvm.so"; const char *path = "/vendor/lib/libwvm.so";
void *handle = dlopen(path, RTLD_NOW); void *handle = dlopen(path, RTLD_NOW);
if (handle == NULL) { if (handle == NULL) {
fprintf(stderr, "Can't open plugin: %s: %s\n", path, dlerror()); fprintf(stderr, "Can't open plugin: %s: %s\n", path, dlerror());