This reverts commit 95b50d39ba.
Reason for revert: Rikers changes should go on main. We can decide that partner OEMs can pick up this feature for V once it has been well tested on main.
Change-Id: I129303cbc86e267aba013a7c314724e51477dc82
411 lines
11 KiB
Plaintext
411 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 {
|
|
default_team: "trendy_team_media_framework_drm",
|
|
// 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)
|
|
// legacy_proprietary (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-aidl",
|
|
owner: "widevine",
|
|
proprietary: true,
|
|
min_sdk_version: "34",
|
|
relative_install_path: "hw",
|
|
include_dirs: [
|
|
"vendor/widevine/libwvdrmengine/cdm/core/include/",
|
|
"vendor/widevine/libwvdrmengine/include",
|
|
"vendor/widevine/libwvdrmengine/mediadrm/include",
|
|
"vendor/widevine/libwvdrmengine/oemcrypto/include",
|
|
],
|
|
header_libs: ["libstagefright_foundation_headers"],
|
|
|
|
shared_libs: [
|
|
"libbinder_ndk",
|
|
"libcrypto",
|
|
"libcutils",
|
|
"liblog",
|
|
],
|
|
|
|
static_libs: [
|
|
"android.hardware.common-V2-ndk",
|
|
"android.hardware.drm-V1-ndk",
|
|
"libaidlcommonsupport",
|
|
"libbase",
|
|
"libcdm_protos",
|
|
"libcdm_utils",
|
|
"libcdm",
|
|
"libjsmn",
|
|
"libjsoncpp",
|
|
"libprotobuf-cpp-lite",
|
|
"libutils",
|
|
"libwv_odk",
|
|
"libwvaidl",
|
|
"libwvdrmcryptoplugin_aidl",
|
|
"libwvdrmdrmplugin_aidl",
|
|
"libwvlevel3",
|
|
"lib_apex_manifest_minimal_proto_lite",
|
|
"libPlatformProperties",
|
|
],
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Builds android.hardware.drm-service.widevine
|
|
//
|
|
cc_binary {
|
|
name: "android.hardware.drm-service.widevine",
|
|
defaults: [
|
|
"common_widevine_service-multilib-first",
|
|
"common_widevine_service-multilib-defaults-aidl",
|
|
],
|
|
|
|
stl: "c++_shared",
|
|
|
|
srcs: ["src/service.cpp"],
|
|
|
|
include_dirs: [
|
|
"frameworks/native/libs/binder/include",
|
|
],
|
|
|
|
shared_libs: [
|
|
"libbinder_ndk",
|
|
"wv_media_drm_flags_c_lib",
|
|
],
|
|
|
|
init_rc: ["src/android.hardware.drm-service.widevine.rc"],
|
|
vintf_fragments: ["manifest_android.hardware.drm-service.widevine.xml"],
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Builds android.hardware.drm-service-lazy.widevine
|
|
//
|
|
cc_binary {
|
|
name: "android.hardware.drm-service-lazy.widevine",
|
|
defaults: [
|
|
"common_widevine_service-multilib-first",
|
|
"common_widevine_service-multilib-defaults-aidl",
|
|
],
|
|
|
|
stl: "c++_shared",
|
|
|
|
srcs: ["src/serviceLazy.cpp"],
|
|
|
|
include_dirs: [
|
|
"frameworks/native/libs/binder/include",
|
|
],
|
|
|
|
shared_libs: [
|
|
"libbinder_ndk",
|
|
"wv_media_drm_flags_c_lib",
|
|
],
|
|
|
|
init_rc: ["src/android.hardware.drm-service-lazy.widevine.rc"],
|
|
vintf_fragments: ["manifest_android.hardware.drm-service-lazy.widevine.xml"],
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Builds libcdm_utils.a
|
|
//
|
|
cc_library_static {
|
|
|
|
name: "libcdm_utils",
|
|
|
|
proprietary: true,
|
|
|
|
srcs: [
|
|
"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",
|
|
"cdm/util/src/string_format.cpp",
|
|
],
|
|
|
|
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",
|
|
],
|
|
|
|
generated_headers: [
|
|
"wv_android_build_id",
|
|
],
|
|
|
|
shared_libs: [
|
|
"libbinder_ndk",
|
|
"libcrypto",
|
|
"liblog",
|
|
"wv_media_drm_flags_c_lib",
|
|
],
|
|
|
|
static_libs: [
|
|
"libprotobuf-cpp-lite",
|
|
"lib_apex_manifest_minimal_proto_lite",
|
|
"libPlatformProperties",
|
|
],
|
|
|
|
min_sdk_version: "34",
|
|
}
|
|
|
|
filegroup {
|
|
name: "libwvdrmengine_src",
|
|
srcs: [
|
|
"src/WVCDMSingleton.cpp",
|
|
"src/Utils.cpp",
|
|
],
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Builds libwvaidl.so
|
|
//
|
|
cc_library {
|
|
name: "libwvaidl",
|
|
|
|
srcs: [
|
|
"src/WVCDMSingleton.cpp",
|
|
"src/WVUUID.cpp",
|
|
"src/wv_metrics.cpp",
|
|
"src/Utils.cpp",
|
|
"src/WVCreatePluginFactories.cpp",
|
|
"src/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",
|
|
"vendor/widevine/libwvdrmengine/mediacrypto/include",
|
|
"vendor/widevine/libwvdrmengine/mediadrm/include",
|
|
"vendor/widevine/libwvdrmengine/oemcrypto/include",
|
|
],
|
|
|
|
static_libs: [
|
|
"android.hardware.common-V2-ndk",
|
|
"android.hardware.drm-V1-ndk",
|
|
"libaidlcommonsupport",
|
|
"libbase",
|
|
"libcdm_protos",
|
|
"libcdm_utils",
|
|
"libcdm",
|
|
"libjsmn",
|
|
"libjsoncpp",
|
|
"libprotobuf-cpp-lite",
|
|
"libutils",
|
|
"libwv_odk",
|
|
"libwvdrmcryptoplugin_aidl",
|
|
"libwvdrmdrmplugin_aidl",
|
|
"libwvlevel3",
|
|
"lib_apex_manifest_minimal_proto_lite",
|
|
"libPlatformProperties",
|
|
],
|
|
|
|
shared_libs: [
|
|
"libbinder_ndk",
|
|
"libcrypto",
|
|
"libcutils",
|
|
"libdl",
|
|
"liblog",
|
|
"wv_media_drm_flags_c_lib",
|
|
],
|
|
|
|
header_libs: ["libstagefright_foundation_headers"],
|
|
|
|
owner: "widevine",
|
|
|
|
proprietary: true,
|
|
min_sdk_version: "34",
|
|
}
|
|
|
|
phony {
|
|
name: "android.hardware.drm@latest-service.widevine",
|
|
required: [
|
|
"android.hardware.drm-service.widevine",
|
|
],
|
|
}
|
|
|
|
phony {
|
|
name: "android.hardware.drm@latest-service-lazy.widevine",
|
|
required: [
|
|
"android.hardware.drm-service-lazy.widevine",
|
|
],
|
|
}
|
|
|
|
cc_fuzz {
|
|
name: "android.hardware.drm-service.widevine.aidl_fuzzer",
|
|
defaults: [
|
|
"common_widevine_service-multilib-first",
|
|
"common_widevine_service-multilib-defaults-aidl",
|
|
"service_fuzzer_defaults",
|
|
"fuzzer_disable_leaks",
|
|
],
|
|
shared_libs: [
|
|
"libcutils",
|
|
"wv_media_drm_flags_c_lib",
|
|
],
|
|
static_libs: [
|
|
"libbase",
|
|
"libbinder_random_parcel",
|
|
"libutils",
|
|
],
|
|
target: {
|
|
android: {
|
|
shared_libs: [
|
|
"libbinder_ndk",
|
|
"libbinder",
|
|
],
|
|
},
|
|
host: {
|
|
static_libs: [
|
|
"libbinder_ndk",
|
|
"libbinder",
|
|
],
|
|
},
|
|
darwin: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
srcs: ["src/fuzzer/fuzzer.cpp"],
|
|
fuzz_config: {
|
|
cc: [
|
|
"widevine-android@google.com",
|
|
],
|
|
},
|
|
}
|
|
|
|
python_binary_host {
|
|
name: "wv-android-genrule",
|
|
srcs: [
|
|
"wv-android-genrule.py",
|
|
],
|
|
version: {
|
|
py3: {
|
|
embedded_launcher: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
genrule {
|
|
name: "wv_android_build_id",
|
|
srcs: ["version.txt"],
|
|
tools: ["wv-android-genrule"],
|
|
cmd: "$(location wv-android-genrule) build_id_header $(in) > $(out)",
|
|
out: ["wv_android_build_id.h"],
|
|
}
|
|
|
|
genrule {
|
|
name: "widevine_apex_manifest.json",
|
|
srcs: ["version.txt"],
|
|
tools: ["wv-android-genrule"],
|
|
cmd: "$(location wv-android-genrule) apex_manifest $(in) > $(out)",
|
|
out: ["gen_wv_apex_manifest.json"],
|
|
}
|
|
|
|
genrule {
|
|
name: "widevine_lazy_apex_manifest.json",
|
|
srcs: ["version.txt"],
|
|
tools: ["wv-android-genrule"],
|
|
cmd: "$(location wv-android-genrule) apex_manifest --name com.google.android.widevine.lazy $(in) > $(out)",
|
|
out: ["gen_wv_lazy_apex_manifest.json"],
|
|
}
|