Use aidl interface for Widevine service.

The interface is defined in
hardware/interfaces/drm/aidl(http://go/ag/15329852).

Test: build
  m android.hardware.drm-service.widevine -j128

Test: build_and_run_all_unit_tests.sh
  for hidl tests

Test: atest VtsAidlHalDrmTargetTest

Bug: 200055138
Bug: 170964303
Change-Id: If2f2a129914436ba5cef1c46f6cb9415e12c3d1c
This commit is contained in:
Edwin
2021-12-30 11:39:14 -08:00
parent 642965c678
commit 96a8ccd4a1
75 changed files with 7077 additions and 1479 deletions

View File

@@ -114,6 +114,29 @@ cc_defaults {
],
}
cc_defaults {
name: "common_widevine_service-multilib-defaults-aidl",
owner: "widevine",
proprietary: true,
relative_install_path: "hw",
include_dirs: [
"vendor/widevine/libwvdrmengine/aidl_include",
"vendor/widevine/libwvdrmengine/mediadrm/aidl_include",
"vendor/widevine/libwvdrmengine/oemcrypto/include",
],
header_libs: ["libstagefright_foundation_headers"],
shared_libs: [
"android.hardware.drm-V1-ndk",
"libbase",
"libbinder_ndk",
"liblog",
"libhwbinder",
"libutils",
"libwvaidl",
],
}
cc_defaults {
name: "common_widevine_service-multilib-defaults",
defaults: [
@@ -227,7 +250,26 @@ cc_binary {
}
// ----------------------------------------------------------------------------
// Builds libcdm_utils.a
// 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",
],
srcs: ["aidl_src/service.cpp"],
shared_libs: ["libbinder"],
init_rc: ["aidl_src/android.hardware.drm-service.widevine.rc"],
vintf_fragments: ["manifest_android.hardware.drm-service.widevine.xml"],
}
// ----------------------------------------------------------------------------
// Builds libcdm_utils.a and libcdm_utils_hidl.a
//
cdm_util_src_files = [
@@ -244,6 +286,40 @@ cdm_util_src_files = [
"cdm/util/src/string_conversions.cpp",
]
cc_library_static {
name: "libcdm_utils_hidl",
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: [
"libbinder",
"libcrypto",
"libhidlbase",
"liblog",
],
cflags: [
"-DCORE_UTIL_IMPLEMENTATION",
"-DIS_HIDL",
],
srcs: cdm_util_src_files,
}
cc_library_static {
name: "libcdm_utils",
@@ -263,9 +339,10 @@ cc_library_static {
],
shared_libs: [
"liblog",
"libbinder",
"libcrypto",
"libhidlbase",
"liblog",
],
cflags: ["-DCORE_UTIL_IMPLEMENTATION"],
@@ -297,7 +374,7 @@ cc_library_shared {
"vendor/widevine/libwvdrmengine/cdm/util/include",
"vendor/widevine/libwvdrmengine/cdm/include",
"vendor/widevine/libwvdrmengine/include",
"vendor/widevine/libwvdrmengine/include_hidl",
"vendor/widevine/libwvdrmengine/include_hidl",
"vendor/widevine/libwvdrmengine/mediacrypto/include_hidl",
"vendor/widevine/libwvdrmengine/mediadrm/include_hidl",
"vendor/widevine/libwvdrmengine/oemcrypto/include",
@@ -306,7 +383,7 @@ cc_library_shared {
static_libs: [
"libcdm",
"libcdm_protos",
"libcdm_utils",
"libcdm_utils_hidl",
"libjsmn",
"libwvdrmcryptoplugin_hidl",
"libwvdrmdrmplugin_hidl",
@@ -379,3 +456,73 @@ cc_prebuilt_library_shared {
proprietary: true,
}
// ----------------------------------------------------------------------------
// Builds libwvaidl.so
//
cc_library_shared {
name: "libwvaidl",
srcs: [
"src/WVCDMSingleton.cpp",
"src/WVUUID.cpp",
"aidl_src/wv_metrics.cpp",
"aidl_src/WVCreatePluginFactories.cpp",
"aidl_src/WVCryptoFactory.cpp",
"aidl_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/aidl_include",
"vendor/widevine/libwvdrmengine/include",
"vendor/widevine/libwvdrmengine/mediacrypto/aidl_include",
"vendor/widevine/libwvdrmengine/mediadrm/aidl_include",
"vendor/widevine/libwvdrmengine/oemcrypto/include",
],
static_libs: [
"android.hardware.common-V2-ndk",
"libaidlcommonsupport",
"libcdm",
"libcdm_protos",
"libcdm_utils",
"libjsmn",
"libwvdrmcryptoplugin_aidl",
"libwvdrmdrmplugin_aidl",
"libwvlevel3",
"libwv_odk",
],
shared_libs: [
"android.hardware.drm-V1-ndk",
"libbase",
"libbinder",
"libbinder_ndk",
"libcrypto",
"libcutils",
"libdl",
"liblog",
"libprotobuf-cpp-lite",
"libutils",
],
header_libs: ["libstagefright_foundation_headers"],
owner: "widevine",
proprietary: true,
}
phony {
name: "android.hardware.drm@latest-service.widevine",
required: [
"android.hardware.drm-service.widevine",
],
}