###Andorid Meeting SDK:
We are facing a recurring ANR (Application Not Responding) issue related to keystore decryption while using the Zoom Android SDK.
From the stack trace, it appears that com.google.crypto.tink.integration.android.AndroidKeystoreAesGcm.decryptInternal
is making a blocking Binder call on the main thread, eventually leading to an ANR.
Below is the relevant part of the trace:
#00 pc 0x0000000000085c6c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)
#01 pc 0x0000000000201990 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks+136)
#02 pc 0x00000000005ec884 /apex/com.android.art/lib64/libart.so (artJniMethodEnd+120)
#03 pc 0x000000000068f80c /apex/com.android.art/lib64/libart.so (art_jni_method_end+12)
at android.os.BinderProxy.transactNative (Native method)
This Binder call may be taking too long, causing the main thread to wait, and triggering the ANR. Learn more
at android.os.BinderProxy.transact (BinderProxy.java:571)
at android.system.keystore2.IKeystoreSecurityLevel$Stub$Proxy.createOperation (IKeystoreSecurityLevel.java:311)
at android.security.KeyStoreSecurityLevel.createOperation (KeyStoreSecurityLevel.java:81)
at android.security.keystore2.AndroidKeyStoreCipherSpiBase.ensureKeystoreOperationInitialized (AndroidKeyStoreCipherSpiBase.java:334)
at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineInit (AndroidKeyStoreCipherSpiBase.java:234)
at javax.crypto.Cipher.tryTransformWithProvider (Cipher.java:2999)
at javax.crypto.Cipher.tryCombinations (Cipher.java:2910)
at javax.crypto.Cipher$SpiAndProviderUpdater.updateAndGetSpiAndProvider (Cipher.java:2815)
at javax.crypto.Cipher.chooseProvider (Cipher.java:792)
at javax.crypto.Cipher.init (Cipher.java:1307)
at javax.crypto.Cipher.init (Cipher.java:1242)
at com.google.crypto.tink.integration.android.AndroidKeystoreAesGcm.decryptInternal (AndroidKeystoreAesGcm.java:113)
at com.google.crypto.tink.integration.android.AndroidKeystoreAesGcm.decrypt (AndroidKeystoreAesGcm.java:101)
at com.google.crypto.tink.KeysetHandle.decrypt (KeysetHandle.java:845)
at com.google.crypto.tink.KeysetHandle.readWithAssociatedData (KeysetHandle.java:732)
at com.google.crypto.tink.KeysetHandle.read (KeysetHandle.java:713)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.read (AndroidKeysetManager.java:315)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.readOrGenerateNewKeyset (AndroidKeysetManager.java:288)
at com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.build (AndroidKeysetManager.java:239)
at us.zoom.libtools.storage.ZMEncryptedSharedPreferences.a (ZMEncryptedSharedPreferences.java:10)
at us.zoom.libtools.storage.ZMEncryptedSharedPreferences.a (ZMEncryptedSharedPreferences.java:1)
at us.zoom.libtools.storage.ZmSharePreferenceHelper.getSharedPreferences (ZmSharePreferenceHelper.java:32)
at us.zoom.libtools.storage.ZmSharePreferenceHelper.getSharedPreferences (ZmSharePreferenceHelper.java:2)
at us.zoom.libtools.storage.PreferenceUtil.getSharedPreferences (PreferenceUtil.java:1)
at us.zoom.libtools.storage.PreferenceUtil.readBooleanValue (PreferenceUtil.java:4)
at com.zipow.videobox.utils.meeting.j.a (ZmMeetingUtils.java:675)
at com.zipow.videobox.conference.ui.view.bottomui.ZmRecycleMeetingBottomControlLayout.a (ZmRecycleMeetingBottomControlLayout.java:26)
at com.zipow.videobox.conference.ui.view.bottomui.ZmRecycleMeetingBottomControlLayout.a (ZmRecycleMeetingBottomControlLayout.java:14)
at com.zipow.videobox.conference.ui.container.control.c.Y (ZmBaseMeetingControlContainer.java:37)
at com.zipow.videobox.conference.ui.container.control.c$y0.a (ZmBaseMeetingControlContainer.java:1)
at com.zipow.videobox.conference.ui.container.control.c$y0.onChanged (ZmBaseMeetingControlContainer.java:1)
at us.zoom.libtools.lifecycle.c$a.onChanged (ZmMutableLiveData.java:20)
at androidx.lifecycle.LiveData.considerNotify (LiveData.java:133)
at androidx.lifecycle.LiveData.dispatchingValue (LiveData.java:151)
at androidx.lifecycle.LiveData.setValue (LiveData.java:309)
at androidx.lifecycle.MutableLiveData.setValue (MutableLiveData.java:50)
at us.zoom.libtools.lifecycle.c.setValue (ZmMutableLiveData.java:8)
at com.zipow.videobox.conference.viewmodel.model.pip.a.a (ZmAudioConfPipModel.java:108)
at com.zipow.videobox.conference.viewmodel.model.pip.a.handleUICommand (ZmAudioConfPipModel.java:53)
at com.zipow.videobox.conference.viewmodel.ZmBaseConfViewModel.handleUICommand (ZmBaseConfViewModel.java:15)
at com.zipow.videobox.conference.viewmodel.ZmConfMainViewModel.handleUICommand (ZmConfMainViewModel.java:1)
at com.zipow.videobox.conference.viewmodel.b.a (ZmConfViewModelMgr.java:45)
at com.zipow.videobox.conference.state.f.a (ZmConfUINativeEventImpl.java:4)
at com.zipow.videobox.conference.state.c$b.a (ZmConfStateMgr.java:12)
at com.zipow.videobox.conference.module.d.a (ZmBaseAudioStatusMgr.java:71)
at com.zipow.videobox.conference.module.h.a (ZmConfStatusMgr.java:121)
at com.zipow.videobox.conference.state.d.onUserStatusChanged (ZmConfStateProxy.java:2)
at com.zipow.videobox.conference.state.c.onUserStatusChanged (ZmConfStateMgr.java:16)
at com.zipow.videobox.conference.jni.ZmConfDefaultCallback.onUserStatusChanged (ZmConfDefaultCallback.java:7)
at com.zipow.videobox.compat.b.a (ZmOldConfCallbackCompat.kt:23)
at us.zoom.component.sdk.meetingsdk.sink.meeting.ZmMeetingUISink$OnBatchUserStatusChanged$1.invoke (ZmMeetingUISink.kt:8)
at us.zoom.component.sdk.meetingsdk.sink.meeting.ZmMeetingUISink$OnBatchUserStatusChanged$1.invoke (ZmMeetingUISink.kt:1)
at us.zoom.component.sdk.meetingsdk.sink.a.dispatchToObservers (ZmSinkDispatcher.kt:29)
at us.zoom.component.sdk.meetingsdk.sink.meeting.ZmMeetingUISink.dispatchToObservers (unavailable:7)
at us.zoom.component.sdk.meetingsdk.sink.meeting.ZmMeetingUISink.OnBatchUserStatusChanged (ZmMeetingUISink.kt:14)
at us.zoom.reflection.utils.ZmClassLoaderReflection.onClassLoaderAttach (Native method)
at us.zoom.reflection.utils.ZmClassLoaderReflection.attachClassLoader (ZmClassLoaderReflection.java:1)
at android.os.MessageQueue.nativePollOnce (Native method)
at android.os.MessageQueue.next (MessageQueue.java:335)
at android.os.Looper.loopOnce (Looper.java:169)
at android.os.Looper.loop (Looper.java:338)
at android.app.ActivityThread.main (ActivityThread.java:8093)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:579)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1045)
Device/Environment
-
Android 12
-
Zoom SDK version:6.5.1