Files
android/libwvdrmengine/Android.bp
TreeHugger Robot 0b02296014 Removing Non-HIDL Widevine DRM Plugin for Android
[ Merge of http://go/wvgerrit/138089 ]

Non-hidl code is no longer needed in the widevine android plugin. By
doing work this cleanup will save the team from having to keep
maintaining code that isn't needed anymore.
Clean up steps taken as follows:
    1. Remove non-hidl code but keep commonly used code
    2. Remove legacy test code
    3. Remove legacy test build and test entry

Bug: 69573078
Bug: 172285246
Test: unit tests, GtsMediaTestCases, CtsMediaDrmTestCases
Change-Id: I75938d69413c631ef6be82da3d885ba173efc581
2021-11-11 02:06:15 +00:00

389 lines
11 KiB
Plaintext

// Copyright (C) 2020 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.
// ----------------------------------------------------------------------------
// CDM top level makefile
//
// ----------------------------------------------------------------------------
// 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.
//
// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE
// CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
// DEPENDING ON IT IN YOUR PROJECT. ***
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "vendor_widevine_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
// legacy_by_exception_only (by exception only)
default_applicable_licenses: ["vendor_widevine_license"],
}
sh_binary {
name: "move_widevine_data",
src: "move_widevine_data.sh",
owner: "widevine",
}
// ----------------------------------------------------------------------------
soong_config_module_type {
name: "common_widevine_service",
module_type: "cc_defaults",
config_namespace: "ANDROID",
bool_variables: ["TARGET_ENABLE_MEDIADRM_64"],
properties: ["compile_multilib"],
}
common_widevine_service {
name: "common_widevine_service-multilib-both",
compile_multilib: "prefer32",
soong_config_variables: {
TARGET_ENABLE_MEDIADRM_64: {
compile_multilib: "both",
},
},
}
common_widevine_service {
name: "common_widevine_service-multilib-first",
compile_multilib: "prefer32",
soong_config_variables: {
TARGET_ENABLE_MEDIADRM_64: {
compile_multilib: "first",
},
},
}
cc_defaults {
name: "common_widevine_service-multilib-defaults@1.3",
owner: "widevine",
proprietary: true,
relative_install_path: "hw",
include_dirs: [
"vendor/widevine/libwvdrmengine/include_hidl",
"vendor/widevine/libwvdrmengine/mediadrm/include_hidl",
"vendor/widevine/libwvdrmengine/oemcrypto/include",
],
header_libs: ["libstagefright_foundation_headers"],
shared_libs: [
"android.hardware.drm@1.0",
"android.hardware.drm@1.1",
"android.hardware.drm@1.2",
"android.hardware.drm@1.3",
"libbase",
"libhidlbase",
"liblog",
"libutils",
"libbinder",
],
}
cc_defaults {
name: "common_widevine_service-multilib-defaults",
defaults: [
"common_widevine_service-multilib-defaults@1.3",
],
shared_libs: [
"android.hardware.drm@1.4",
"libwvhidl",
],
}
// ----------------------------------------------------------------------------
// Builds android.hardware.drm@1.2-service.widevine
//
cc_binary {
name: "android.hardware.drm@1.2-service.widevine",
defaults: [
"common_widevine_service-multilib-first",
"common_widevine_service-multilib-defaults",
],
srcs: ["src_hidl/service.cpp"],
init_rc: ["src_hidl/android.hardware.drm@1.2-service.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm@1.2-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds android.hardware.drm@1.2-service-lazy.widevine
//
cc_binary {
name: "android.hardware.drm@1.2-service-lazy.widevine",
defaults: [
"common_widevine_service-multilib-first",
"common_widevine_service-multilib-defaults",
],
srcs: ["src_hidl/serviceLazy.cpp"],
overrides: ["android.hardware.drm@1.2-service.widevine"],
init_rc: ["src_hidl/android.hardware.drm@1.2-service-lazy.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm@1.2-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds android.hardware.drm@1.3-service.widevine
//
cc_binary {
name: "android.hardware.drm@1.3-service.widevine",
defaults: [
"common_widevine_service-multilib-first",
"common_widevine_service-multilib-defaults@1.3",
],
srcs: ["src_hidl/service@1.3.cpp"],
shared_libs: ["libwvhidl@1.3"],
init_rc: ["src_hidl/android.hardware.drm@1.3-service.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm@1.3-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds android.hardware.drm@1.3-service-lazy.widevine
//
cc_binary {
name: "android.hardware.drm@1.3-service-lazy.widevine",
defaults: [
"common_widevine_service-multilib-first",
"common_widevine_service-multilib-defaults",
],
srcs: ["src_hidl/serviceLazy.cpp"],
overrides: ["android.hardware.drm@1.3-service.widevine"],
init_rc: ["src_hidl/android.hardware.drm@1.3-service-lazy.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm@1.4-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds android.hardware.drm@1.4-service.widevine
//
cc_binary {
name: "android.hardware.drm@1.4-service.widevine",
defaults: [
"common_widevine_service-multilib-first",
"common_widevine_service-multilib-defaults",
],
srcs: ["src_hidl/service.cpp"],
init_rc: ["src_hidl/android.hardware.drm@1.4-service.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm@1.4-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds android.hardware.drm@1.4-service-lazy.widevine
//
cc_binary {
name: "android.hardware.drm@1.4-service-lazy.widevine",
defaults: [
"common_widevine_service-multilib-first",
"common_widevine_service-multilib-defaults",
],
srcs: ["src_hidl/serviceLazy.cpp"],
overrides: ["android.hardware.drm@1.4-service.widevine"],
init_rc: ["src_hidl/android.hardware.drm@1.4-service-lazy.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm@1.4-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds libcdm_utils.a
//
cdm_util_src_files = [
"cdm/core/src/properties.cpp",
"cdm/src/properties_android.cpp",
"cdm/src/timer.cpp",
"cdm/util/src/cdm_random.cpp",
"cdm/util/src/clock.cpp",
"cdm/util/src/file_store.cpp",
"cdm/util/src/file_utils.cpp",
"cdm/util/src/log.cpp",
"cdm/util/src/platform.cpp",
"cdm/util/src/rw_lock.cpp",
"cdm/util/src/string_conversions.cpp",
]
cc_library_static {
name: "libcdm_utils",
proprietary: true,
include_dirs: [
"vendor/widevine/libwvdrmengine/cdm/core/include",
"vendor/widevine/libwvdrmengine/cdm/include",
"vendor/widevine/libwvdrmengine/cdm/util/include",
"vendor/widevine/libwvdrmengine/oemcrypto/include",
],
header_libs: [
"libbase_headers",
"libutils_headers",
],
shared_libs: [
"liblog",
"libcrypto",
"libhidlbase",
],
cflags: ["-DCORE_UTIL_IMPLEMENTATION"],
srcs: cdm_util_src_files,
}
// ----------------------------------------------------------------------------
// Builds libwvhidl.so
//
cc_library_shared {
name: "libwvhidl",
srcs: [
"src/WVCDMSingleton.cpp",
"src/WVUUID.cpp",
"src_hidl/wv_metrics.cpp",
"src_hidl/WVCreatePluginFactories.cpp",
"src_hidl/WVCryptoFactory.cpp",
"src_hidl/WVDrmFactory.cpp",
],
include_dirs: [
"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/mediadrm/include_hidl",
"vendor/widevine/libwvdrmengine/oemcrypto/include",
],
static_libs: [
"libcdm",
"libcdm_protos",
"libcdm_utils",
"libjsmn",
"libwvdrmcryptoplugin_hidl",
"libwvdrmdrmplugin_hidl",
"libwvlevel3",
"libwv_odk",
],
shared_libs: [
"android.hardware.drm@1.0",
"android.hardware.drm@1.1",
"android.hardware.drm@1.2",
"android.hardware.drm@1.3",
"android.hardware.drm@1.4",
"android.hidl.memory@1.0",
"libbase",
"libcrypto",
"libcutils",
"libdl",
"libhidlbase",
"libhidlmemory",
"liblog",
"libprotobuf-cpp-lite",
"libutils",
],
header_libs: ["libstagefright_foundation_headers"],
owner: "widevine",
proprietary: true,
}
cc_prebuilt_library_shared {
name: "libwvhidl@1.3",
target: {
android_arm: {
srcs: ["prebuilts_hidl/arm/libwvhidl@1.3.so"],
},
android_arm64: {
srcs: ["prebuilts_hidl/arm64/libwvhidl@1.3.so"],
},
android_x86: {
srcs: ["prebuilts_hidl/x86/libwvhidl@1.3.so"],
},
android_x86_64: {
srcs: ["prebuilts_hidl/x86_64/libwvhidl@1.3.so"],
},
},
shared_libs: [
"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",
],
owner: "widevine",
proprietary: true,
}
phony {
name: "android.hardware.drm@latest-service.widevine",
required: [
"android.hardware.drm@1.4-service.widevine",
],
}