Convert Android.mk to Android.bp
This CL builds the Widevine drm services and libraries. Soong makefile conversion for unit and integration tests will be in a different CL. This doc may help with the review: https://docs.google.com/document/d/1lK3X9RFPwbbwewLNlS4TfSMhxIlPuAkHRnGcgwWpChU/edit?usp=sharing Test: build Test: Play Movies and Netflix streaming Test: unit tests build_and_run_all_tests.sh Test: gts ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m GtsMediaTestCases -t com.google.android.media.gts.MediaDrmTest atest GtsExoPlayerTestCases:com.google.android.exoplayer.gts.DashTest Test: vts ANDROID_BUILD_TOP= PATH="$PWD/android-vts/tools:$PATH" vts-tradefed run commandAndExit vts --module VtsHalDrmV1_3Target Bug: 162321744 Change-Id: I50c0fb2e8f28dfe7901587e3d3203542943e23b1
This commit is contained in:
342
libwvdrmengine/Android.bp
Normal file
342
libwvdrmengine/Android.bp
Normal file
@@ -0,0 +1,342 @@
|
||||
// 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.
|
||||
//
|
||||
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: "32",
|
||||
soong_config_variables: {
|
||||
TARGET_ENABLE_MEDIADRM_64: {
|
||||
compile_multilib: "both",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
common_widevine_service {
|
||||
name: "common_widevine_service-multilib-first",
|
||||
compile_multilib: "32",
|
||||
soong_config_variables: {
|
||||
TARGET_ENABLE_MEDIADRM_64: {
|
||||
compile_multilib: "first",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
cc_defaults {
|
||||
name: "common_widevine_service-multilib-defaults",
|
||||
owner: "widevine",
|
||||
proprietary: true,
|
||||
relative_install_path: "hw",
|
||||
include_dirs: [
|
||||
"vendor/widevine/libwvdrmengine/include_hidl",
|
||||
"vendor/widevine/libwvdrmengine/mediadrm/include",
|
||||
"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",
|
||||
"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",
|
||||
],
|
||||
|
||||
srcs: ["src_hidl/service.cpp"],
|
||||
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.3-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",
|
||||
],
|
||||
|
||||
cflags: ["-DCORE_UTIL_IMPLEMENTATION"],
|
||||
|
||||
srcs: cdm_util_src_files,
|
||||
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Builds libwvdrmengine.so
|
||||
//
|
||||
cc_library_shared {
|
||||
name: "libwvdrmengine",
|
||||
|
||||
srcs: [
|
||||
"src/WVCDMSingleton.cpp",
|
||||
"src/WVCreatePluginFactories.cpp",
|
||||
"src/WVCryptoFactory.cpp",
|
||||
"src/WVDrmFactory.cpp",
|
||||
"src/WVUUID.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: [
|
||||
"libcdm",
|
||||
"libcdm_protos",
|
||||
"libcdm_utils",
|
||||
"libjsmn",
|
||||
"libwvdrmcryptoplugin",
|
||||
"libwvdrmdrmplugin",
|
||||
"libwvlevel3",
|
||||
],
|
||||
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
"libcrypto",
|
||||
"libdl",
|
||||
"liblog",
|
||||
"libprotobuf-cpp-lite",
|
||||
"libstagefright_foundation",
|
||||
"libutils",
|
||||
],
|
||||
|
||||
header_libs: [
|
||||
"libutils_headers",
|
||||
"libstagefright_headers",
|
||||
],
|
||||
|
||||
relative_install_path: "mediadrm",
|
||||
|
||||
owner: "widevine",
|
||||
|
||||
proprietary: true,
|
||||
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// 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/mediacrypto/include",
|
||||
"vendor/widevine/libwvdrmengine/mediadrm/include_hidl",
|
||||
"vendor/widevine/libwvdrmengine/mediadrm/include",
|
||||
"vendor/widevine/libwvdrmengine/oemcrypto/include",
|
||||
],
|
||||
|
||||
static_libs: [
|
||||
"libcdm",
|
||||
"libcdm_protos",
|
||||
"libcdm_utils",
|
||||
"libjsmn",
|
||||
"libwvdrmcryptoplugin_hidl",
|
||||
"libwvdrmdrmplugin_hidl",
|
||||
"libwvlevel3",
|
||||
],
|
||||
|
||||
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",
|
||||
],
|
||||
|
||||
header_libs: ["libstagefright_foundation_headers"],
|
||||
|
||||
owner: "widevine",
|
||||
|
||||
proprietary: true,
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user