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

Test:   atest vts_treble_vintf_vendor_test:vts_treble_vintf_vendor_test.DeviceManifest/SingleManifestTest#ManifestAidlHalsServed/0 -- --abi x86_64

Bug: 200055138
Bug: 170964303
Change-Id: I5654d90d8a4b0bae4b4a78e79b27c1cafec36be7
This commit is contained in:
Edwin
2021-12-30 11:39:14 -08:00
parent 627c8d6855
commit 3c3da01d58
75 changed files with 7071 additions and 1480 deletions

View File

@@ -299,7 +299,8 @@ CryptoSession::~CryptoSession() {
}
CdmResponseType CryptoSession::GetProvisioningMethod(
SecurityLevel requested_security_level, CdmClientTokenType* token_type) {
RequestedSecurityLevel requested_security_level,
CdmClientTokenType* token_type) {
OEMCrypto_ProvisioningMethod method;
WithOecReadLock("GetProvisioningMethod", [&] {
method = OEMCrypto_GetProvisioningMethod(requested_security_level);
@@ -467,7 +468,7 @@ void CryptoSession::DisableDelayedTermination() {
}
bool CryptoSession::SetUpUsageTableHeader(
SecurityLevel requested_security_level) {
RequestedSecurityLevel requested_security_level) {
if (usage_table_header_ != nullptr) {
LOGE("Usage table is already set up for the current crypto session");
return false;
@@ -616,9 +617,9 @@ CdmSecurityLevel CryptoSession::GetSecurityLevel() {
}
CdmSecurityLevel CryptoSession::GetSecurityLevel(
SecurityLevel requested_security_level) {
RequestedSecurityLevel requested_security_level) {
LOGV("Getting security level: requested_security_level = %s",
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
RETURN_IF_UNINITIALIZED(kSecurityLevelUninitialized);
const OEMCrypto_Security_Level level = WithOecReadLock(
"GetSecurityLevel",
@@ -641,7 +642,7 @@ CdmSecurityLevel CryptoSession::GetSecurityLevel(
"Ill-formed security level: "
"level = \"L%u\", requested_security_level = %s",
static_cast<unsigned int>(level),
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
return kSecurityLevelUnknown;
}
@@ -731,10 +732,10 @@ bool CryptoSession::GetApiVersion(uint32_t* version) {
return GetApiVersion(requested_security_level_, version);
}
bool CryptoSession::GetApiVersion(SecurityLevel security_level,
bool CryptoSession::GetApiVersion(RequestedSecurityLevel security_level,
uint32_t* version) {
LOGV("Getting API version: security_level = %s",
SecurityLevelToString(security_level));
RequestedSecurityLevelToString(security_level));
if (!version) {
LOGE("Output parameter |version| not provided");
return false;
@@ -749,10 +750,10 @@ bool CryptoSession::GetApiVersion(SecurityLevel security_level,
return true;
}
bool CryptoSession::GetApiMinorVersion(SecurityLevel security_level,
bool CryptoSession::GetApiMinorVersion(RequestedSecurityLevel security_level,
uint32_t* minor_version) {
LOGV("Getting API minor version: security_level = %s",
SecurityLevelToString(security_level));
RequestedSecurityLevelToString(security_level));
if (!minor_version) {
LOGE("Output parameter |minor_version| not provided");
return false;
@@ -890,9 +891,10 @@ uint8_t CryptoSession::GetSecurityPatchLevel() {
return patch;
}
CdmResponseType CryptoSession::Open(SecurityLevel requested_security_level) {
CdmResponseType CryptoSession::Open(
RequestedSecurityLevel requested_security_level) {
LOGD("Opening crypto session: requested_security_level = %s",
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
if (open_) return NO_ERROR;
@@ -1872,8 +1874,8 @@ bool CryptoSession::HasUsageInfoSupport(bool* has_support) {
});
}
bool CryptoSession::HasUsageInfoSupport(SecurityLevel requested_security_level,
bool* has_support) {
bool CryptoSession::HasUsageInfoSupport(
RequestedSecurityLevel requested_security_level, bool* has_support) {
RETURN_IF_UNINITIALIZED(false);
RETURN_IF_NULL(has_support, false);
return WithOecReadLock("HasUsageInfoSupport", [&] {
@@ -1882,9 +1884,9 @@ bool CryptoSession::HasUsageInfoSupport(SecurityLevel requested_security_level,
}
bool CryptoSession::HasUsageInfoSupportInternal(
SecurityLevel requested_security_level, bool* has_support) {
RequestedSecurityLevel requested_security_level, bool* has_support) {
LOGV("requested_security_level = %s",
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
*has_support = WithOecReadLock("HasUsageInfoSupport", [&] {
return OEMCrypto_SupportsUsageTable(requested_security_level);
});
@@ -2109,11 +2111,11 @@ CdmResponseType CryptoSession::GetHdcpCapabilities(HdcpCapability* current,
return GetHdcpCapabilities(requested_security_level_, current, max);
}
CdmResponseType CryptoSession::GetHdcpCapabilities(SecurityLevel security_level,
HdcpCapability* current,
HdcpCapability* max) {
CdmResponseType CryptoSession::GetHdcpCapabilities(
RequestedSecurityLevel security_level, HdcpCapability* current,
HdcpCapability* max) {
LOGV("Getting HDCP capabilities: id = %u, security_level = %s",
oec_session_id_, SecurityLevelToString(security_level));
oec_session_id_, RequestedSecurityLevelToString(security_level));
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
RETURN_IF_NULL(current, PARAMETER_NULL);
RETURN_IF_NULL(max, PARAMETER_NULL);
@@ -2166,9 +2168,9 @@ CdmResponseType CryptoSession::GetRandom(size_t data_length,
}
CdmResponseType CryptoSession::GetNumberOfOpenSessions(
SecurityLevel security_level, size_t* count) {
RequestedSecurityLevel security_level, size_t* count) {
LOGV("Getting number of open sessions: id = %u, security_level = %s",
oec_session_id_, SecurityLevelToString(security_level));
oec_session_id_, RequestedSecurityLevelToString(security_level));
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
RETURN_IF_NULL(count, PARAMETER_NULL);
@@ -2190,9 +2192,9 @@ CdmResponseType CryptoSession::GetNumberOfOpenSessions(
}
CdmResponseType CryptoSession::GetMaxNumberOfSessions(
SecurityLevel security_level, size_t* max) {
RequestedSecurityLevel security_level, size_t* max) {
LOGV("Getting max number of sessions: id = %u, security_level = %s",
oec_session_id_, SecurityLevelToString(security_level));
oec_session_id_, RequestedSecurityLevelToString(security_level));
RETURN_IF_UNINITIALIZED(CRYPTO_SESSION_NOT_INITIALIZED);
RETURN_IF_NULL(max, PARAMETER_NULL);
@@ -2248,10 +2250,10 @@ bool CryptoSession::GetResourceRatingTier(uint32_t* tier) {
return GetResourceRatingTier(requested_security_level_, tier);
}
bool CryptoSession::GetResourceRatingTier(SecurityLevel security_level,
bool CryptoSession::GetResourceRatingTier(RequestedSecurityLevel security_level,
uint32_t* tier) {
LOGV("Getting resource rating tier: security_level = %s",
SecurityLevelToString(security_level));
RequestedSecurityLevelToString(security_level));
RETURN_IF_UNINITIALIZED(false);
RETURN_IF_NULL(tier, false);
@@ -2276,10 +2278,10 @@ bool CryptoSession::GetBuildInformation(std::string* info) {
return GetBuildInformation(requested_security_level_, info);
}
bool CryptoSession::GetBuildInformation(SecurityLevel security_level,
bool CryptoSession::GetBuildInformation(RequestedSecurityLevel security_level,
std::string* info) {
LOGV("Getting build information: security_level = %s",
SecurityLevelToString(security_level));
RequestedSecurityLevelToString(security_level));
RETURN_IF_UNINITIALIZED(false);
RETURN_IF_NULL(info, false);
@@ -2308,10 +2310,10 @@ bool CryptoSession::GetBuildInformation(SecurityLevel security_level,
return true;
}
bool CryptoSession::GetMaximumUsageTableEntries(SecurityLevel security_level,
size_t* number_of_entries) {
bool CryptoSession::GetMaximumUsageTableEntries(
RequestedSecurityLevel security_level, size_t* number_of_entries) {
LOGV("Getting maximum usage table entries: security_level = %s",
SecurityLevelToString(security_level));
RequestedSecurityLevelToString(security_level));
RETURN_IF_UNINITIALIZED(false);
if (number_of_entries == nullptr) {
LOGE("Output parameter |number_of_entries| not provided");
@@ -2332,7 +2334,7 @@ bool CryptoSession::GetMaximumUsageTableEntries(SecurityLevel security_level,
return *number_of_entries >= kMinimumUsageTableEntriesSupported;
}
bool CryptoSession::GetDecryptHashSupport(SecurityLevel security_level,
bool CryptoSession::GetDecryptHashSupport(RequestedSecurityLevel security_level,
uint32_t* decrypt_hash_support) {
LOGV("Checking if decrypt hash is supported");
RETURN_IF_UNINITIALIZED(false);
@@ -2649,10 +2651,10 @@ CdmResponseType CryptoSession::GenericVerify(const std::string& message,
}
CdmResponseType CryptoSession::CreateUsageTableHeader(
SecurityLevel requested_security_level,
RequestedSecurityLevel requested_security_level,
CdmUsageTableHeader* usage_table_header) {
LOGV("Creating usage table header: requested_security_level = %s",
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
RETURN_IF_NULL(usage_table_header, PARAMETER_NULL);
usage_table_header->resize(kEstimatedInitialUsageTableHeader);
@@ -2690,10 +2692,10 @@ CdmResponseType CryptoSession::CreateUsageTableHeader(
}
CdmResponseType CryptoSession::LoadUsageTableHeader(
SecurityLevel requested_security_level,
RequestedSecurityLevel requested_security_level,
const CdmUsageTableHeader& usage_table_header) {
LOGV("Loading usage table header: requested_security_level = %s",
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
const OEMCryptoResult result = WithOecWriteLock("LoadUsageTableHeader", [&] {
return OEMCrypto_LoadUsageTableHeader(
@@ -2731,10 +2733,10 @@ CdmResponseType CryptoSession::LoadUsageTableHeader(
}
CdmResponseType CryptoSession::ShrinkUsageTableHeader(
SecurityLevel requested_security_level, uint32_t new_entry_count,
RequestedSecurityLevel requested_security_level, uint32_t new_entry_count,
CdmUsageTableHeader* usage_table_header) {
LOGV("Shrinking usage table header: requested_security_level = %s",
SecurityLevelToString(requested_security_level));
RequestedSecurityLevelToString(requested_security_level));
RETURN_IF_NULL(usage_table_header, PARAMETER_NULL);
size_t usage_table_header_len = 0;