ArrowOs/Android: Failed to generate attestation certificate chain

Issue

This Content is from Stack Overflow. Question asked by kniffte

I’m using ArrowOs on my Moto G5s+ (sanders) to run the Munich’s local transport’s app “MVG Fahrinfo” [1], which allows to buy tickets for the local bus&subway services.
I was able to buy those tickets until at least May 25th, 2022.
I remember, there has been an update to the app, but since I needed no ticket, I noticed by end-June, that I could no longer buy tickets. The app just crashes.
Turning on the logging, I’m getting the following error in the log:

07-13 07:33:35.097  8070  8092 D TransportRuntime.JobInfoScheduler: Scheduling upload for context TransportContext(cct, HIGHEST, MSRodHRwczovL2NyYXNobHl0aWNzcmVwb3J0cy1wYS5nb29nbGVhcGlzLmNvbS92MS9maXJlbG9nL2xlZ2FjeS9iYXRjaGxvZ1xBSXphU3lCcnBTWVQ0RkZMMDlyZUhKaTZIOUZZZGVpU25VVE92Mk0=) with jobId=1899902110 in 1000ms(Backend next call timestamp 1657115477558). Attempt 1
--------- beginning of crash
07-13 07:33:35.113  8070  8070 E AndroidRuntime: FATAL EXCEPTION: main
07-13 07:33:35.113  8070  8070 E AndroidRuntime: Process: de.swm.mvgfahrinfo.muenchen, PID: 8070
07-13 07:33:35.113  8070  8070 E AndroidRuntime: java.security.ProviderException: Failed to generate attestation certificate chain
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi.getAttestationChain(AndroidKeyStoreKeyPairGeneratorSpi.java:611)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi.createCertificateChain(AndroidKeyStoreKeyPairGeneratorSpi.java:498)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi.generateKeyPair(AndroidKeyStoreKeyPairGeneratorSpi.java:475)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:727)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at b.b(Unknown Source:28)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at c$a.invokeSuspend(SourceFile:6)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:4)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at kotlinx.coroutines.DispatchedTask.run(SourceFile:22)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:938)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:223)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7665)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
07-13 07:33:35.113  8070  8070 E AndroidRuntime: Caused by: android.security.KeyStoreException: Not implemented
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    at android.security.KeyStore.getKeyStoreException(KeyStore.java:1306)
07-13 07:33:35.113  8070  8070 E AndroidRuntime:    ... 15 more
07-13 07:33:35.116  2534  9249 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
07-13 07:33:35.117  2534  6885 W ActivityTaskManager:   Force finishing activity de.swm.mvgfahrinfo.muenchen/.mobilityticketing.MobilityTicketingActivity
07-13 07:33:35.120  2534  9249 W DropBoxManagerService: Dropping: data_app_crash (1578 > 0 bytes)

I have another sanders phone, which has the same problem.

Today, I’ve reverted one of those phones to stock Oreo, and there I could buy a ticket successfully. But updating the phone again to an ArrowOs version (Official of January 2022[2]), which allowed to buy a ticket in January (I still have the receipt…), leads to the problem again.

So my guess is: the app got changed, such that it now requests something, that leads to the error. Using it on an older version does not show this error, so it must handle that request differently.
From what I found on XDA and elsewhere was the info, that a key is being requested, that seems to be missing.
Is that correct? Does anybody know, how I can resolve this issue?

  1. https://play.google.com/store/apps/details?id=de.swm.mvgfahrinfo.muenchen
    2: https://get.mirror1.arrowos.net/download.php?token=SEquC3jlPUK5dhHYBZwfW7b1io8eJOyVnzkG0tINmxrsLDg6QFa9c2AT4vXR&version=arrow-11.0&variant=official&device=sanders

Thanks a lot for your help.
kniffte



Solution

This question is not yet answered, be the first one who answer using the comment. Later the confirmed answer will be published as the solution.

This Question and Answer are collected from stackoverflow and tested by JTuto community, is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?