openwallet-foundation-labs / identity-credential

Apache License 2.0
163 stars 83 forks source link

Android 13 crash with hardware backed storage (Pixel 6) #179

Open vaimut opened 1 year ago

vaimut commented 1 year ago

Expected Behavior The app shouldn’t be crashing while trying to writing the credential with hardware backed storage with all devices

Actual Behavior The app is crashing on some of the devices while trying to write the credential with hardware backed

Steps to Reproduce the Problem

  1. Open the holder app
  2. Click add document
  3. Choose Hardware-backed and click next
  4. Click next and the app crashes with the below mentioned error

Device: Google pixel 6 Android OS : 13.0

E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-1 Process: com.android.mdl.app, PID: 15986 java.lang.RuntimeException: Unexpected ServiceSpecificException with code 1 at android.security.identity.CredstoreIdentityCredentialStore.createCredential(CredstoreIdentityCredentialStore.java:129) at com.android.identity.HardwareIdentityCredentialStore.createCredential(HardwareIdentityCredentialStore.java:109) at com.android.identity.Utility.provisionSelfSignedCredential(Utility.java:273) at com.android.mdl.app.document.DocumentManager.provisionSelfSigned(DocumentManager.kt:694) at com.android.mdl.app.document.DocumentManager.provisionSelfSignedMdl(DocumentManager.kt:356) at com.android.mdl.app.document.DocumentManager.access$provisionSelfSignedMdl(DocumentManager.kt:24) at com.android.mdl.app.document.DocumentManager$createSelfSignedCredential$1.invokeSuspend(DocumentManager.kt:188) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) at kotlinx.coroutines.BuildersKtBuildersKt.runBlocking(Builders.kt:59) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at kotlinx.coroutines.BuildersKtBuildersKt.runBlocking$default(Builders.kt:38) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1) at com.android.mdl.app.document.DocumentManager.createSelfSignedCredential(DocumentManager.kt:181) at com.android.mdl.app.viewmodel.SelfSignedViewModel$createSelfSigned$1.invokeSuspend(SelfSignedViewModel.kt:206) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@7420abd, Dispatchers.IO] Caused by: android.os.ServiceSpecificException: HAL failed with exception code -8 (EX_SERVICE_SPECIFIC), service-specific error code 1, message 'Error initializing WritableIdentityCredential' (code 1) at android.os.Parcel.createExceptionOrNull(Parcel.java:3025) at android.os.Parcel.createException(Parcel.java:2995) at android.os.Parcel.readException(Parcel.java:2978) at android.os.Parcel.readException(Parcel.java:2920) at android.security.identity.ICredentialStore$Stub$Proxy.createCredential(ICredentialStore.java:197) at android.security.identity.CredstoreIdentityCredentialStore.createCredential(CredstoreIdentityCredentialStore.java:109) ... 24 more D/OpenGLRenderer: endAllActiveAnimators on 0xb40000711a06b560 (RippleDrawable) with handle 0xb40000702a36b8c0



 MicrosoftTeams-image

joseph71417 commented 1 year ago

I will try to take a look at this issue.

Thank you, Joseph.

joseph71417 commented 1 year ago

cutecom.log

I download the latest app from git_master branch and create a Hardware backed document on Pixel 6 Pro without hitting any app crash issues. Attachment log is the logcat log when adding a Hardware backed mDL doc for your reference. 0 My Android ROM version is Android T Beta 2 - QPR2 : [raven-user 13 T2B2.221216.006 9443277] If you still can reproduce the issue, please help to upload logcat log for checking.

Thank you, Joseph.