Add Property for Provisioning ID
Adds a property that allows applications to get the provisioning-unique serial number. Bug: 9175567 Also fixes some missing mutexes that were causing intermittent failures in calls to OEMCrypto due to concurrency issues. Bug: 9175583 Merge of https://widevine-internal-review.googlesource.com/#/c/5831/ from the Widevine CDM repository Change-Id: I1d7e3ca9f3b06da345022f5f0d64e0c17a5cedca
This commit is contained in:
@@ -382,12 +382,30 @@ status_t WVDrmPlugin::getPropertyByteArray(const String8& name,
|
||||
ALOGE("Error querying CDM status: %u", res);
|
||||
return mapCdmResponseType(res);
|
||||
} else if (!status.count(QUERY_KEY_DEVICE_ID)) {
|
||||
ALOGE("CDM did not report a unique ID");
|
||||
ALOGE("CDM did not report a device unique ID");
|
||||
return kErrorCDMGeneric;
|
||||
}
|
||||
|
||||
const string& uniqueId = status[QUERY_KEY_DEVICE_ID];
|
||||
|
||||
value.clear();
|
||||
value.appendArray(reinterpret_cast<const uint8_t*>(uniqueId.data()),
|
||||
uniqueId.size());
|
||||
} else if (name == "provisioningUniqueId") {
|
||||
CdmQueryMap status;
|
||||
|
||||
CdmResponseType res = mCDM->QueryStatus(&status);
|
||||
|
||||
if (!isCdmResponseTypeSuccess(res)) {
|
||||
ALOGE("Error querying CDM status: %u", res);
|
||||
return mapCdmResponseType(res);
|
||||
} else if (!status.count(QUERY_KEY_PROVISIONING_ID)) {
|
||||
ALOGE("CDM did not report a provisioning unique ID");
|
||||
return kErrorCDMGeneric;
|
||||
}
|
||||
|
||||
const string& uniqueId = status[QUERY_KEY_PROVISIONING_ID];
|
||||
|
||||
value.clear();
|
||||
value.appendArray(reinterpret_cast<const uint8_t*>(uniqueId.data()),
|
||||
uniqueId.size());
|
||||
|
||||
Reference in New Issue
Block a user