android / android/security-samples
I face the crash in xiaomi10
- Vorherrschende Sprache
- Kotlin
- Sterne
- 1k
- Forks
- 450
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
```
java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
--
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
......
com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException:Protocol message contained an invalid tag (zero).
com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite.com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite parsePartialFrom(com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite,byte[],int,int,com.google.crypto.tink.shaded.protobuf.ExtensionRegistryLite)(GeneratedMessageLite.java:10)
com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite.com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite parseFrom(com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite,byte[],com.google.crypto.tink.shaded.protobuf.ExtensionRegistryLite)(GeneratedMessageLite.java:2)
com.google.crypto.tink.proto.Keyset.com.google.crypto.tink.proto.Keyset parseFrom(byte[],com.google.crypto.tink.shaded.protobuf.ExtensionRegistryLite)(Keyset.java:1)
8 com.google.crypto.tink.integration.android.SharedPrefKeysetReader.com.google.crypto.tink.proto.Keyset read()(SharedPrefKeysetReader.java:1)
com.google.crypto.tink.CleartextKeysetHandle.com.google.crypto.tink.KeysetHandle read(com.google.crypto.tink.KeysetReader)(CleartextKeysetHandle.java:1)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.com.google.crypto.tink.KeysetManager read()(AndroidKeysetManager.java:4)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.com.google.crypto.tink.KeysetManager readOrGenerateNewKeyset()(AndroidKeysetManager.java:1)
com.google.crypto.tink.integration.android.AndroidKeysetManager$Builder.com.google.crypto.tink.integration.android.AndroidKeysetManager build()(AndroidKeysetManager.java:3)
androidx.security.crypto.EncryptedSharedPreferences.android.content.SharedPreferences create(java.lang.String,java.lang.String,android.content.Context,androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme,androidx.security.crypto.EncryptedSharedPreferences$PrefValueEncryptionScheme)(EncryptedSharedPreferences.java:7)
SharedPreferencesUtils$preferences$2.android.content.SharedPreferences invoke()(SharedPreferencesUtils.kt:6)
SharedPreferencesUtils$preferences$2.java.lang.Object invoke()(SharedPreferencesUtils.kt:1)
kotlin.SynchronizedLazyImpl.java.lang.Object getValue()(LazyJVM.kt:6)
SharedPreferencesUtils.android.content.SharedPreferences getPreferences()(Unknown Source:2)
SharedPreferencesUtils.android.content.SharedPreferences access$getPreferences$p(SharedPreferencesUtils)(SharedPreferencesUtils.kt:1)
```
Beitragsleitfaden
Rechercherichtung
Beginnen Sie mit SharedPreferencesUtils.kt und reproduzieren Sie den Stacktrace auf einem Xiaomi 10, wobei Sie sich auf den dargestellten Initialisierungspfad von EncryptedSharedPreferences und AndroidKeysetManager konzentrieren. Untersuchen Sie, wie das Keyset gelesen wird, und ermitteln Sie, welcher Zustand das ungültige protobuf-Tag auslöst. Als erledigt gilt, dass das Beispiel an diesem Pfad nicht mehr abstürzt und das Verhalten der betroffenen Preferences verifiziert ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, kotlin
- Bereich
- mobile-dev, security
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100