Android Binder не смог выполнить транзакцию при восстановлении KeyAliases из Keystore API - PullRequest
0 голосов
/ 01 мая 2020

Мне нужно получить все ключи, которые мое приложение хранило в указанном c хранилище ключей

До того, как я создал тонны ключей, все функции работали нормально, но после того, как я заполнил Безопасный Аппаратное обеспечение (на Pixel 3a, которое должно быть Titan M) до максимальной емкости памяти, оно перестало работать.

Когда я знаю методы вызова API, такие как:

KeyStore ks = KeyStore.getInstance("AndroidKeyStore"); ks.load(null); Enumeration<String> aliases = ks.aliases();

Я получаю следующую ошибку:

2020-05-01 17:27:03.051 30427-30427/com.example.applikation W/KeyStore: Cannot connect to keystore
    android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(BinderProxy.java:511)
        at android.security.keystore.IKeystoreService$Stub$Proxy.list(IKeystoreService.java:1064)
        at android.security.KeyStore.list(KeyStore.java:311)
        at android.security.keystore.AndroidKeyStoreSpi.getUniqueAliases(AndroidKeyStoreSpi.java:884)
        at android.security.keystore.AndroidKeyStoreSpi.engineAliases(AndroidKeyStoreSpi.java:905)
        at java.security.KeyStore.aliases(KeyStore.java:1274)
        at com.example.applikation.MainActivity.refreshKeys(MainActivity.java:186)
        at com.example.applikation.MainActivity.listKeystoreEntries(MainActivity.java:77)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
        at android.view.View.performClick(View.java:7259)
        at android.view.View.performClickInternal(View.java:7236)
        at android.view.View.access$3600(View.java:801)
        at android.view.View$PerformClick.run(View.java:27892)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Я думаю, что нашел причину проблемы, но не решение, которое я хочу получить, слишком велико, и поэтому вызов метода вызывает Ошибка

...