diff --git a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp index 283040b0..619e3807 100644 --- a/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp +++ b/libwvdrmengine/cdm/core/src/oemcrypto_adapter_dynamic.cpp @@ -2970,6 +2970,13 @@ extern "C" OEMCryptoResult OEMCrypto_ProcessOTAKeybox(OEMCrypto_SESSION session, LOGE("Installed OTA keybox. save ignore count failed %d, count=%u", static_cast(save_result), ignore_count); } + if (ignore_count > 0 && result == OEMCrypto_SUCCESS) { + // If success is returned while the dynamic adapter continues + // to ignore the keybox, the CDM layer will enter an invalid + // state and apps may get stuck. + LOGD("Ignoring install success"); + return OEMCrypto_ERROR_UNKNOWN_FAILURE; + } } } return result;