Separate hdcp levels into a base interface

Both media drm and HWC can share this common base code.
Run the following commands to freeze the aidl:
(1) m android.hardware.drm.common-update-api && m android.hardware.drm.common-freeze-api
(2) system/tools/aidl/build/hash_gen.sh hardware/interfaces/drm/aidl/aidl_api/android.hardware.drm/1 latest-version hardware/interfaces/drm/aidl/aidl_api/android.hardware.drm/1/.hash

Bug: 293945485
Test: manual
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5ed36814bb242bf5da663b1360eb096bc34f0e79)
Merged-In: I9e90ada03144b49245dc6b55a0fb2fa2eb6f3893
Change-Id: I9e90ada03144b49245dc6b55a0fb2fa2eb6f3893
This commit is contained in:
Huihong Luo
2024-09-27 18:15:51 +00:00
parent d994467f38
commit 2ae7fb6e55
19 changed files with 145 additions and 97 deletions

View File

@@ -14,6 +14,7 @@ aidl_interface {
stability: "vintf", stability: "vintf",
imports: [ imports: [
"android.hardware.common-V2", "android.hardware.common-V2",
"android.hardware.drm.common-V1",
], ],
backend: { backend: {
cpp: { cpp: {
@@ -30,7 +31,10 @@ aidl_interface {
versions_with_info: [ versions_with_info: [
{ {
version: "1", version: "1",
imports: ["android.hardware.common-V2"], imports: [
"android.hardware.common-V2",
"android.hardware.drm.common-V1",
],
}, },
], ],

View File

@@ -1 +1,2 @@
7b4b0a0f36a7a6bb22d2016375e4a9d4a033592f 7b4b0a0f36a7a6bb22d2016375e4a9d4a033592f
3a0197fb44863256da9034c26e721b1eee12d1be

View File

@@ -34,9 +34,9 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum EventType { enum EventType {
PROVISION_REQUIRED = 0, PROVISION_REQUIRED,
KEY_NEEDED = 1, KEY_NEEDED,
KEY_EXPIRED = 2, KEY_EXPIRED,
VENDOR_DEFINED = 3, VENDOR_DEFINED,
SESSION_RECLAIMED = 4, SESSION_RECLAIMED,
} }

View File

@@ -34,10 +34,10 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum KeyRequestType { enum KeyRequestType {
INITIAL = 0, INITIAL,
RENEWAL = 1, RENEWAL,
RELEASE = 2, RELEASE,
UNKNOWN = 3, UNKNOWN,
NONE = 4, NONE,
UPDATE = 5, UPDATE,
} }

View File

@@ -34,10 +34,10 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum KeyStatusType { enum KeyStatusType {
USABLE = 0, USABLE,
EXPIRED = 1, EXPIRED,
OUTPUT_NOT_ALLOWED = 2, OUTPUT_NOT_ALLOWED,
STATUS_PENDING = 3, STATUS_PENDING,
INTERNAL_ERROR = 4, INTERNAL_ERROR,
USABLE_IN_FUTURE = 5, USABLE_IN_FUTURE,
} }

View File

@@ -34,7 +34,7 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum KeyType { enum KeyType {
OFFLINE = 0, OFFLINE,
STREAMING = 1, STREAMING,
RELEASE = 2, RELEASE,
} }

View File

@@ -34,12 +34,12 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum LogPriority { enum LogPriority {
UNKNOWN = 0, UNKNOWN,
DEFAULT = 1, DEFAULT,
VERBOSE = 2, VERBOSE,
DEBUG = 3, DEBUG,
INFO = 4, INFO,
WARN = 5, WARN,
ERROR = 6, ERROR,
FATAL = 7, FATAL,
} }

View File

@@ -34,7 +34,7 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum OfflineLicenseState { enum OfflineLicenseState {
UNKNOWN = 0, UNKNOWN,
USABLE = 1, USABLE,
INACTIVE = 2, INACTIVE,
} }

View File

@@ -34,11 +34,11 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum SecurityLevel { enum SecurityLevel {
UNKNOWN = 0, UNKNOWN,
SW_SECURE_CRYPTO = 1, SW_SECURE_CRYPTO,
SW_SECURE_DECODE = 2, SW_SECURE_DECODE,
HW_SECURE_CRYPTO = 3, HW_SECURE_CRYPTO,
HW_SECURE_DECODE = 4, HW_SECURE_DECODE,
HW_SECURE_ALL = 5, HW_SECURE_ALL,
DEFAULT = 6, DEFAULT,
} }

View File

@@ -34,44 +34,44 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum Status { enum Status {
OK = 0, OK,
ERROR_DRM_NO_LICENSE = 1, ERROR_DRM_NO_LICENSE,
ERROR_DRM_LICENSE_EXPIRED = 2, ERROR_DRM_LICENSE_EXPIRED,
ERROR_DRM_SESSION_NOT_OPENED = 3, ERROR_DRM_SESSION_NOT_OPENED,
ERROR_DRM_CANNOT_HANDLE = 4, ERROR_DRM_CANNOT_HANDLE,
ERROR_DRM_INVALID_STATE = 5, ERROR_DRM_INVALID_STATE,
BAD_VALUE = 6, BAD_VALUE,
ERROR_DRM_NOT_PROVISIONED = 7, ERROR_DRM_NOT_PROVISIONED,
ERROR_DRM_RESOURCE_BUSY = 8, ERROR_DRM_RESOURCE_BUSY,
ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION = 9, ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION,
ERROR_DRM_DEVICE_REVOKED = 10, ERROR_DRM_DEVICE_REVOKED,
ERROR_DRM_DECRYPT = 11, ERROR_DRM_DECRYPT,
ERROR_DRM_UNKNOWN = 12, ERROR_DRM_UNKNOWN,
ERROR_DRM_INSUFFICIENT_SECURITY = 13, ERROR_DRM_INSUFFICIENT_SECURITY,
ERROR_DRM_FRAME_TOO_LARGE = 14, ERROR_DRM_FRAME_TOO_LARGE,
ERROR_DRM_SESSION_LOST_STATE = 15, ERROR_DRM_SESSION_LOST_STATE,
ERROR_DRM_RESOURCE_CONTENTION = 16, ERROR_DRM_RESOURCE_CONTENTION,
CANNOT_DECRYPT_ZERO_SUBSAMPLES = 17, CANNOT_DECRYPT_ZERO_SUBSAMPLES,
CRYPTO_LIBRARY_ERROR = 18, CRYPTO_LIBRARY_ERROR,
GENERAL_OEM_ERROR = 19, GENERAL_OEM_ERROR,
GENERAL_PLUGIN_ERROR = 20, GENERAL_PLUGIN_ERROR,
INIT_DATA_INVALID = 21, INIT_DATA_INVALID,
KEY_NOT_LOADED = 22, KEY_NOT_LOADED,
LICENSE_PARSE_ERROR = 23, LICENSE_PARSE_ERROR,
LICENSE_POLICY_ERROR = 24, LICENSE_POLICY_ERROR,
LICENSE_RELEASE_ERROR = 25, LICENSE_RELEASE_ERROR,
LICENSE_REQUEST_REJECTED = 26, LICENSE_REQUEST_REJECTED,
LICENSE_RESTORE_ERROR = 27, LICENSE_RESTORE_ERROR,
LICENSE_STATE_ERROR = 28, LICENSE_STATE_ERROR,
MALFORMED_CERTIFICATE = 29, MALFORMED_CERTIFICATE,
MEDIA_FRAMEWORK_ERROR = 30, MEDIA_FRAMEWORK_ERROR,
MISSING_CERTIFICATE = 31, MISSING_CERTIFICATE,
PROVISIONING_CERTIFICATE_ERROR = 32, PROVISIONING_CERTIFICATE_ERROR,
PROVISIONING_CONFIGURATION_ERROR = 33, PROVISIONING_CONFIGURATION_ERROR,
PROVISIONING_PARSE_ERROR = 34, PROVISIONING_PARSE_ERROR,
PROVISIONING_REQUEST_REJECTED = 35, PROVISIONING_REQUEST_REJECTED,
RETRYABLE_PROVISIONING_ERROR = 36, RETRYABLE_PROVISIONING_ERROR,
SECURE_STOP_RELEASE_ERROR = 37, SECURE_STOP_RELEASE_ERROR,
STORAGE_READ_FAILURE = 38, STORAGE_READ_FAILURE,
STORAGE_WRITE_FAILURE = 39, STORAGE_WRITE_FAILURE,
} }

View File

@@ -47,6 +47,7 @@ cc_test {
], ],
static_libs: [ static_libs: [
"android.hardware.drm@1.0-helper", "android.hardware.drm@1.0-helper",
"android.hardware.drm.common-V1-ndk",
"android.hardware.drm-V1-ndk", "android.hardware.drm-V1-ndk",
"android.hardware.common-V2-ndk", "android.hardware.common-V2-ndk",
"libaidlcommonsupport", "libaidlcommonsupport",
@@ -59,13 +60,19 @@ cc_test {
data: [":libvtswidevine-arm-prebuilts"], data: [":libvtswidevine-arm-prebuilts"],
}, },
arm64: { arm64: {
data: [":libvtswidevine-arm64-prebuilts", ":libvtswidevine-arm-prebuilts"], data: [
":libvtswidevine-arm64-prebuilts",
":libvtswidevine-arm-prebuilts",
],
}, },
x86: { x86: {
data: [":libvtswidevine-x86-prebuilts"], data: [":libvtswidevine-x86-prebuilts"],
}, },
x86_64: { x86_64: {
data: [":libvtswidevine-x86_64-prebuilts", ":libvtswidevine-x86-prebuilts"], data: [
":libvtswidevine-x86_64-prebuilts",
":libvtswidevine-x86-prebuilts",
],
}, },
}, },
test_suites: [ test_suites: [

View File

@@ -0,0 +1,35 @@
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
// all of the 'license_kinds' from "hardware_interfaces_license"
// to get the below license kinds:
// SPDX-license-identifier-Apache-2.0
default_applicable_licenses: ["hardware_interfaces_license"],
}
aidl_interface {
name: "android.hardware.drm.common",
vendor_available: true,
srcs: ["android/hardware/drm/*.aidl"],
stability: "vintf",
backend: {
cpp: {
enabled: false,
},
java: {
sdk_version: "module_current",
},
ndk: {
min_sdk_version: "34",
},
},
double_loadable: true,
versions_with_info: [
{
version: "1",
imports: [],
},
],
frozen: true,
}

View File

@@ -0,0 +1 @@
1b5e9159609b3aa05e2c7158f3a1488fda2250d1

View File

@@ -34,12 +34,12 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum HdcpLevel { enum HdcpLevel {
HDCP_UNKNOWN = 0, HDCP_UNKNOWN,
HDCP_NONE = 1, HDCP_NONE,
HDCP_V1 = 2, HDCP_V1,
HDCP_V2 = 3, HDCP_V2,
HDCP_V2_1 = 4, HDCP_V2_1,
HDCP_V2_2 = 5, HDCP_V2_2,
HDCP_NO_OUTPUT = 6, HDCP_NO_OUTPUT,
HDCP_V2_3 = 7, HDCP_V2_3,
} }

View File

@@ -34,12 +34,12 @@
package android.hardware.drm; package android.hardware.drm;
@Backing(type="int") @VintfStability @Backing(type="int") @VintfStability
enum HdcpLevel { enum HdcpLevel {
HDCP_UNKNOWN = 0, HDCP_UNKNOWN,
HDCP_NONE = 1, HDCP_NONE,
HDCP_V1 = 2, HDCP_V1,
HDCP_V2 = 3, HDCP_V2,
HDCP_V2_1 = 4, HDCP_V2_1,
HDCP_V2_2 = 5, HDCP_V2_2,
HDCP_NO_OUTPUT = 6, HDCP_NO_OUTPUT,
HDCP_V2_3 = 7, HDCP_V2_3,
} }