Open session when checking for OTA keybox support. am: 2d1372fbec am: 25098c88e8
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/16496630 Change-Id: I25487f3154eff003f043fada11ef4637ab1a324a
This commit is contained in:
@@ -1240,14 +1240,28 @@ class Adapter {
|
|||||||
bool IsOTAKeyboxSupported() {
|
bool IsOTAKeyboxSupported() {
|
||||||
if (!level1_valid_) return false;
|
if (!level1_valid_) return false;
|
||||||
if (!level1_.GenerateOTARequest) return false;
|
if (!level1_.GenerateOTARequest) return false;
|
||||||
|
if (!level1_.OpenSession || !level1_.CloseSession) return false;
|
||||||
|
OEMCrypto_SESSION session = 0;
|
||||||
|
OEMCryptoResult result = level1_.OpenSession(&session);
|
||||||
|
if (result != OEMCrypto_SUCCESS) {
|
||||||
|
LOGE("Failed to open keybox OTA session: result = %d", result);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
size_t buffer_size = 500; // a large buffer.
|
size_t buffer_size = 500; // a large buffer.
|
||||||
std::vector<uint8_t> buffer(buffer_size);
|
std::vector<uint8_t> buffer(buffer_size);
|
||||||
OEMCryptoResult result =
|
result =
|
||||||
level1_.GenerateOTARequest(0, buffer.data(), &buffer_size, 0);
|
level1_.GenerateOTARequest(session, buffer.data(), &buffer_size, 0);
|
||||||
if (result == OEMCrypto_ERROR_SHORT_BUFFER) {
|
if (result == OEMCrypto_ERROR_SHORT_BUFFER) {
|
||||||
buffer.resize(buffer_size);
|
buffer.resize(buffer_size);
|
||||||
result = level1_.GenerateOTARequest(0, buffer.data(), &buffer_size, 0);
|
result =
|
||||||
|
level1_.GenerateOTARequest(session, buffer.data(), &buffer_size, 0);
|
||||||
}
|
}
|
||||||
|
if (result != OEMCrypto_SUCCESS &&
|
||||||
|
result != OEMCrypto_ERROR_NOT_IMPLEMENTED) {
|
||||||
|
LOGE("Unexpected OTA error: buffer_size = %zu, result = %d", buffer_size,
|
||||||
|
static_cast<int>(result));
|
||||||
|
}
|
||||||
|
level1_.CloseSession(session);
|
||||||
return result == OEMCrypto_SUCCESS;
|
return result == OEMCrypto_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user