Offline playback on Samsung S20/10 fails when phone is upgraded to Android 11/UI 3.0.
Steps to reproduce:
- Have S20/S10 with UA 2.5
- Install Vudu app
- Verify that download works for SD/HDX content
- Upgrade phone to Android 11/UI 3.0
- Download any title
- Verify that download fails to play
NOTE: Title downloaded at step #3 still plays after upgrade to UI 3.0
NOTE2: Only title downloaded after upgrades fails
NOTE3: Streaming is not affected by this upgrade – works as expected for both SD and HDX qualities
There is workaround for the problem – forcing device to L3 for offline playback. Then downloaded content plays as expected.
I did some investigations. Looks like offline license is valid and can be queried in the session which received it. Problem happens when new session is created and offline license is attempted to be restored into this new session. Call to drm.restoreKeys() fails with “General DRM error”.
Another observation is that opening new session generates several errors in logs (while requesting offline keys):
2021-01-05 14:10:33.613 907-938/? I/QCOM-OEMCrypto: Open session: 1000
2021-01-05 14:10:33.616 907-938/? E/QCOM-OEMCrypto: Error at trusted_app_get_oem_public_certificate_v16 : 897
2021-01-05 14:10:33.616 907-938/? E/QCOM-OEMCrypto: TA Result : 32 OEMCryptoResult : 25
2021-01-05 14:10:33.616 907-938/? I/QCOM-OEMCrypto: -----------------------------------------------------------------
2021-01-05 14:10:33.616 907-938/? I/QCOM-OEMCrypto: Error stack trace[1] for TA version 1:47
2021-01-05 14:10:33.616 907-938/? E/QCOM-OEMCrypto: i_widevine_oemcrypto_get_public_cert_v16 : 737
2021-01-05 14:10:33.616 907-938/? I/QCOM-OEMCrypto: -----------------------------------------------------------------
2021-01-05 14:10:33.616 907-938/? E/QCOM-OEMCrypto: Error at _oecc104 : 1527
2021-01-05 14:10:33.620 907-938/? I/WVCdm: [cdm_engine.cpp(148):OpenSession] New session ID: sid65
And eventually fails during attempt to restore keys:
2021-01-05 14:10:34.857 907-938/? E/QCOM-OEMCrypto: Error at trusted_app_load_license : 2003
2021-01-05 14:10:34.857 907-938/? E/QCOM-OEMCrypto: TA Result : 39 OEMCryptoResult : 32
2021-01-05 14:10:34.858 907-938/? I/QCOM-OEMCrypto: -----------------------------------------------------------------
2021-01-05 14:10:34.858 907-938/? I/QCOM-OEMCrypto: Error stack trace[1] for TA version 1:47
2021-01-05 14:10:34.858 907-938/? E/QCOM-OEMCrypto: i_widevine_session_load_license : 3267
2021-01-05 14:10:34.858 907-938/? I/QCOM-OEMCrypto: -----------------------------------------------------------------
2021-01-05 14:10:34.858 907-938/? E/QCOM-OEMCrypto: Error at _oecc99 : 2409
2021-01-05 14:10:34.858 907-938/? E/WVCdm: [crypto_session.cpp(94):MapOEMCryptoResult] Mapping OEMCrypto result: crypto_session_method = LoadLicense, result = 32
2021-01-05 14:10:34.858 907-938/? E/WVCdm: [cdm_engine.cpp(416):RestoreKey] Restore offline session failed: status = 113
2021-01-05 14:10:34.858 907-938/? W/WVCdm: Returns UNKNOWN error for legacy status: 113
2021-01-05 14:10:34.858 29091-6710/air.com.vudu.air.DownloaderTablet.debug E/MediaDrm-JNI: Illegal state exception: Failed to restore keys: General DRM error (-2000)
Let me know if we need any additional information. Complete logs are available too.