Better error code checking for missing device ID.
[ Merge of http://go/wvgerrit/143370 ] [ Cherry-pick off http://ag/16624952 ] Devices without a keybox may not have access to a device ID if the OEM uses the device ID from the keybox as its source of truth. For devices which have lost their keybox, OEMCrypto_GetDeviceID() was assumed to return ERROR_KEYBOX_INVALID if that was the case; however, Qualcomm's implementation was returning ERROR_NO_DEVICEID. Given that both error codes are appropriate, the CDM has been updated to accept both as an indication that the device ID cannot be retrieved, and that the null device ID should be returned. Bug: 190504842 Bug: 214113125 Test: Manual test Change-Id: I8fb8a1bddfe895062b707b51fcadffd983adb40e
This commit is contained in:
@@ -679,8 +679,14 @@ CdmResponseType CryptoSession::GetInternalDeviceUniqueId(
|
||||
const bool use_null_device_id = WithStaticFieldReadLock(
|
||||
"GetInternalDeviceUniqueId() use_null_device_id", [&] {
|
||||
if (requested_security_level_ != kLevelDefault) return false;
|
||||
return sts == OEMCrypto_ERROR_KEYBOX_INVALID &&
|
||||
needs_keybox_provisioning_;
|
||||
if (!needs_keybox_provisioning_) return false;
|
||||
if (sts != OEMCrypto_ERROR_KEYBOX_INVALID &&
|
||||
sts != OEMCrypto_ERROR_NO_DEVICEID) {
|
||||
// Logging other error for debugging, but null device
|
||||
// ID should still be returned.
|
||||
LOGE("Unexpected error: sts = %d", sts);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
if (use_null_device_id) {
|
||||
LOGD("Using null device ID");
|
||||
|
||||
Reference in New Issue
Block a user