GrapheneOS / os-issue-tracker

Issue tracker for GrapheneOS Android Open Source Project hardening work. Standalone projects like Auditor, AttestationServer and hardened_malloc have their own dedicated trackers.
https://grapheneos.org/
358 stars 21 forks source link

[Seedvault] Seedvault unable to accept backup words, and crashloops or quits #871

Closed Peter-Easton closed 2 years ago

Peter-Easton commented 2 years ago

Ahoy shipmates!

I filed this issue upstream earlier, and they mentioned that it might actually be a revert on one of the commits we made downstream. The issue I filed is here: https://github.com/seedvault-app/seedvault/issues/346

A full test, including a stacktrace containing the error is posted here, upstream. Because I ran this test yesterday and hadn't gotten the update, I decided to run it again just to test and see. So I tested this again on Flame (Pixel 4), and made another test on Build Version SQ1A.211205.008.202121602 released today, to confirm my results.

I also attempted to test the restoration, I'll document my process below:

Equipment

Case 1: Attempted restoration into a factory-reset phone

Procedure

After being updated to SQ1A.211205.008.202121602, the Pixel 4 was verified via local pairing with a Pixel 6 running GrapheneOS (Unmodified official release) which has been previously successfully paired with Attestation server. The Pixel 4 was then factory reset from the Settings Menu under Reset Options, then allowed to reboot.

A genuine backup was taken from the Pixel 6, which included photos, a modestly-sized music collection, and a directory containing two encrypted Signal backup files which are approximately 6GB in size each. Unlike previous test cases taken on the Pixel 4 and examined in https://github.com/seedvault-app/seedvault/issues/345 , Seedvault reported a successful backup on the Pixel 6. The backups were taken to the Corsair Voyager GTX 128GB USB Solid State Drive, and allowed to complete before the USB drive was disconnected from the device using the eject function in the file manager.

The Pixel 4 was allowed to restart, at which point it presented the GrapheneOS first run launcher. The defaults for location and timezone were selected. No SIM card had been attached. No pincode nor password was set and Facial Recognition was not set up.

The USB SSD was connected to the USB-A-to-C adapter and plugged in once the launcher presented the Restore apps and data screen. The device presented the option to search "Corsair USB Drive" for backups, which was then selected, and presented the next screen for entry of the 12-word recovery seed. The 12-word recovery seed was entered, and the appropriate word was selected once it appeared in the drop down list to avoid typographical errors.

Expected Outcome

The 12-word recovery seed would be accepted, and Seedvault continue through the restoration process.

Observed Outcome

After entering the 12-word recovery seed and pressing verify, Seedvault presented the same screen again, this time with the spots for the seed words blank. When the same words were reentered, Seedvault returned to the Restore apps and data screen in the launcher to prompt for skip or next.

Additional Observations

After the genuine seed words were entered a second time and Seedvault rejected them, a seed value consisting of the word abandon entered for each of the twelve slots was entered instead, to attempt to check the robustness of Seedvault's error checking algorithm. As expected, Seedvault immediately detected that the seed was invalid.

Stacktrace

Not available. Android Debug Bridge could not be connected to the device at the time.

Case 2: Attempted restoration into Seedvault on Pixel 4 in owner profile after the menu.

Procedure

Immediately after Case 1's tests had been run, skip was selected at the Restore apps and data screen in the launcher. WiFi was turned off, then Developer Options enabled. USB Debugging was enabled in Developer Options, and the device connected to a desktop computer running Android Debug Bridge via USB-C-to-USB-C cable. When the dialogue appeared to trust the debugging computer, the debugging computer was authorized with a permanent authorization and the phone left connected. adb logcat was then executed and output piped to a file.

Seedvault was entered through the Settings -> System -> Backup menu, during which it presented twelve new words, which were recorded temporarily. Upon selecting confirm Seedvault presented the screen to confirm the words. The twelve recorded words were then entered into the screen, again using autocomplete to ensure there were no typographical errors.

Expected Outcome

Seedvault accepts its new seed, and presents options for creation of a new backup to the new seed.

Observed Outcome

Upon its words being reentered, and confirmed, Seedvault returned to the previous screen with twelve new words. The test ceased at this point, the log collection was halted, and the logs saved.

Additional observations

Much like in Case 1, a seed value consisting of the word abandon twelve times was used to check Seedvault's error checking algorithm after the initial test was run. Seedvault rejected the invalid input.

Case 2 Stacktrace

12-17 13:32:45.731   702   702 E keystore2: keystore2::error: In import_key.
12-17 13:32:45.731   702   702 E keystore2: 
12-17 13:32:45.731   702   702 E keystore2: Caused by:
12-17 13:32:45.731   702   702 E keystore2:     0: In store_new_key.
12-17 13:32:45.731   702   702 E keystore2:     1: In store_new_key. Failed to handle super encryption.
12-17 13:32:45.731   702   702 E keystore2:     2: In handle_super_encryption_on_key_init: User ECDH key missing.
12-17 13:32:45.731   702   702 E keystore2:     3: Error::Rc(ResponseCode(4))
12-17 13:32:45.732  5804  5804 D AndroidRuntime: Shutting down VM
12-17 13:32:45.733  5804  5833 E BpDisplayEventConnection: Failed to transact (-9)
--------- beginning of crash
12-17 13:32:45.733  5804  5804 E AndroidRuntime: FATAL EXCEPTION: main
12-17 13:32:45.733  5804  5804 E AndroidRuntime: Process: com.stevesoltys.seedvault, PID: 5804
12-17 13:32:45.733  5804  5804 E AndroidRuntime: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:558)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.android.internal.os.ExecInit.main(ExecInit.java:48)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:355)
12-17 13:32:45.733  5804  5804 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    ... 3 more
12-17 13:32:45.733  5804  5804 E AndroidRuntime: Caused by: java.security.KeyStoreException: Failed to import secret key.
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.security.keystore2.AndroidKeyStoreSpi.setSecretKeyEntry(AndroidKeyStoreSpi.java:806)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.security.keystore2.AndroidKeyStoreSpi.engineSetEntry(AndroidKeyStoreSpi.java:1176)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at java.security.KeyStore.setEntry(KeyStore.java:1596)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.stevesoltys.seedvault.crypto.KeyManagerImpl.storeBackupKey(KeyManager.kt:73)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.stevesoltys.seedvault.ui.recoverycode.RecoveryCodeViewModel.storeNewCode(RecoveryCodeViewModel.kt:89)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.stevesoltys.seedvault.ui.recoverycode.RecoveryCodeInputFragment.done(RecoveryCodeInputFragment.kt:159)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.stevesoltys.seedvault.ui.recoverycode.RecoveryCodeInputFragment.access$done(RecoveryCodeInputFragment.kt:42)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at com.stevesoltys.seedvault.ui.recoverycode.RecoveryCodeInputFragment$onViewCreated$3.onClick(RecoveryCodeInputFragment.kt:125)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.view.View.performClick(View.java:7441)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.view.View.performClickInternal(View.java:7418)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.view.View.access$3700(View.java:835)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.view.View$PerformClick.run(View.java:28677)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:938)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:99)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.os.Looper.loopOnce(Looper.java:201)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:288)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:7841)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    ... 5 more
12-17 13:32:45.733  5804  5804 E AndroidRuntime: Caused by: android.security.KeyStoreException: System error
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:334)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.security.KeyStoreSecurityLevel.handleExceptions(KeyStoreSecurityLevel.java:57)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.security.KeyStoreSecurityLevel.importKey(KeyStoreSecurityLevel.java:166)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    at android.security.keystore2.AndroidKeyStoreSpi.setSecretKeyEntry(AndroidKeyStoreSpi.java:803)
12-17 13:32:45.733  5804  5804 E AndroidRuntime:    ... 21 more
12-17 13:32:45.734  5804  5804 E AndroidRuntime: Error reporting crash
12-17 13:32:45.734  5804  5804 E AndroidRuntime: java.lang.RuntimeException: Bad file descriptor
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at android.os.BinderProxy.transactNative(Native Method)
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at android.os.BinderProxy.transact(BinderProxy.java:571)
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at android.app.IActivityManager$Stub$Proxy.handleApplicationCrash(IActivityManager.java:5294)
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:156)
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
12-17 13:32:45.734  5804  5804 E AndroidRuntime:    at java.lang.Thread.dispatchUncaughtException(Thread.java:2200)
12-17 13:32:45.734  5804  5804 I Process : Sending signal. PID: 5804 SIG: 9
12-17 13:32:45.775  1553  2913 I WindowManager: WIN DEATH: Window{c8f84d0 u0 com.stevesoltys.seedvault/com.stevesoltys.seedvault.settings.SettingsActivity}
12-17 13:32:45.775  1553  2913 W InputManager-JNI: Input channel object 'c8f84d0 com.stevesoltys.seedvault/com.stevesoltys.seedvault.settings.SettingsActivity (client)' was disposed without first being removed with the input manager!
12-17 13:32:45.775   876   876 I Zygote  : Process 5804 exited due to signal 9 (Killed)
12-17 13:32:45.775  1553  2939 I ActivityManager: Process com.stevesoltys.seedvault (pid 5804) has died: fg  TOP 
12-17 13:32:45.776  1553  1732 I libprocessgroup: Successfully killed process cgroup uid 10033 pid 5804 in 0ms
12-17 13:32:45.779  1553  1665 I WindowManager: WIN DEATH: Window{7bc85 u0 com.stevesoltys.seedvault/com.stevesoltys.seedvault.ui.recoverycode.RecoveryCodeActivity}
12-17 13:32:45.779  1553  1665 W InputManager-JNI: Input channel object '7bc85 com.stevesoltys.seedvault/com.stevesoltys.seedvault.ui.recoverycode.RecoveryCodeActivity (client)' was disposed without first being removed with the input manager!
12-17 13:32:45.786  1553  2939 W ActivityTaskManager: Force removing ActivityRecord{1e63d82 u0 com.stevesoltys.seedvault/.ui.recoverycode.RecoveryCodeActivity t12}: app died, no saved state
12-17 13:32:45.787   730   730 E BpTransactionCompletedListener: Failed to transact (-32)
12-17 13:32:45.799  1553  1721 W ActivityManager: setHasOverlayUi called on unknown pid: 5804
12-17 13:32:45.810  1553  1721 I ActivityManager: com.stevesoltys.seedvault is exempt from freezer
12-17 13:32:45.812  1553  1721 D CompatibilityChangeReporter: Compat change id reported: 135634846; UID 10033; state: DISABLED
12-17 13:32:45.813  1553  1721 D CompatibilityChangeReporter: Compat change id reported: 177438394; UID 10033; state: DISABLED
12-17 13:32:45.813  1553  1721 D CompatibilityChangeReporter: Compat change id reported: 135772972; UID 10033; state: DISABLED
12-17 13:32:45.813  1553  1721 D CompatibilityChangeReporter: Compat change id reported: 135754954; UID 10033; state: ENABLED
12-17 13:32:45.813  1553  1731 D CompatibilityChangeReporter: Compat change id reported: 143937733; UID 10033; state: ENABLED
12-17 13:32:45.819   876   876 D Zygote  : Forked child process 6501
12-17 13:32:45.821  6501  6501 W Zygote  : Can't access app profile directory: /data_mirror/cur_profiles/0/com.stevesoltys.seedvault
12-17 13:32:45.821  1553  1731 I ActivityManager: Start proc 6501:com.stevesoltys.seedvault/u0a33 for top-activity {com.stevesoltys.seedvault/com.stevesoltys.seedvault.settings.SettingsActivity}
12-17 13:32:45.827  6501  6501 E oltys.seedvaul: Not starting debugger since process cannot load the jdwp agent.
12-17 13:32:45.846   896   958 D audio_hw_waves: ma_set_source_metadata_l: All tracks was removed from app_type(69936) device_type(2)
12-17 13:32:45.848  1553  1729 W UsageStatsService: Unexpected activity event reported! (com.stevesoltys.seedvault/com.stevesoltys.seedvault.settings.SettingsActivity event : 23 instanceId : 154662045)
12-17 13:32:45.875  6501  6501 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10033 <<<<<<
12-17 13:32:45.878  6501  6501 I AndroidRuntime: Using default boot image
12-17 13:32:45.878  6501  6501 I AndroidRuntime: Leaving lock profiling enabled
12-17 13:32:45.878  6501  6501 W libc    : Access denied finding property "odsign.verification.success"
12-17 13:32:45.875  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1221): avc: denied { read } for name="u:object_r:odsign_prop:s0" dev="tmpfs" ino=27520 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:odsign_prop:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.880  6501  6501 W com.stevesoltys.seedvault: ART APEX data files are untrusted.
12-17 13:32:45.875  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1222): avc: denied { lock } for path="/apex/com.android.art/javalib/arm64/boot.art" dev="dm-8" ino=149 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.878  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1223): avc: denied { lock } for path="/apex/com.android.art/javalib/arm64/boot-core-libart.art" dev="dm-8" ino=143 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.878  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1224): avc: denied { lock } for path="/apex/com.android.art/javalib/arm64/boot-okhttp.art" dev="dm-8" ino=146 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.878  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1225): avc: denied { lock } for path="/apex/com.android.art/javalib/arm64/boot-bouncycastle.art" dev="dm-8" ino=140 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.878  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1226): avc: denied { lock } for path="/apex/com.android.art/javalib/arm64/boot-apache-xml.art" dev="dm-8" ino=137 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.881  6501  6501 W oltys.seedvault: type=1400 audit(0.0:1227): avc: denied { lock } for path="/system/framework/arm64/boot-framework.art" dev="dm-8" ino=2117 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=com.stevesoltys.seedvault
12-17 13:32:45.941  6501  6501 D com.stevesoltys.seedvault: Time zone APEX ICU file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
12-17 13:32:45.942  6501  6501 D com.stevesoltys.seedvault: I18n APEX ICU file found: /apex/com.android.i18n/etc/icu/icudt68l.dat
12-17 13:32:45.959  6501  6501 D ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
12-17 13:32:45.960  6501  6501 D AndroidRuntime: Calling main entry com.android.internal.os.ExecInit
12-17 13:32:45.960  6501  6501 D Zygote  : begin preload
12-17 13:32:45.960  6501  6501 I Zygote  : Calling ZygoteHooks.beginPreload()
12-17 13:32:45.961  6501  6501 D libEGL  : loaded /vendor/lib64/egl/libEGL_adreno.so
12-17 13:32:45.963  6501  6501 D libEGL  : loaded /vendor/lib64/egl/libGLESv1_CM_adreno.so
12-17 13:32:45.966  6501  6501 D libEGL  : loaded /vendor/lib64/egl/libGLESv2_adreno.so
12-17 13:32:45.982  6501  6501 I Zygote  : Preloading shared libraries...
12-17 13:32:45.983  6501  6501 I Zygote  : Called ZygoteHooks.endPreload()
12-17 13:32:45.992  6501  6501 I Zygote  : Installed AndroidKeyStoreProvider in 9ms.
12-17 13:32:45.992  6501  6501 D Zygote  : end preload
12-17 13:32:45.998  6501  6527 W libc    : Access denied finding property "qemu.sf.lcd_density"
12-17 13:32:45.998  6501  6527 W libc    : Access denied finding property "qemu.sf.lcd_density"
12-17 13:32:46.004  6501  6501 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10033; state: ENABLED
12-17 13:32:46.004  6501  6501 I Typeface: Preloading /system/fonts/Roboto-Regular.ttf
12-17 13:32:46.004  6501  6501 I Typeface: Preloading /system/fonts/RobotoStatic-Regular.ttf
12-17 13:32:46.029  6501  6501 I PackageParsing: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020N.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020N
12-17 13:32:46.030  6501  6501 I PackageParsing: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020I_VN.apk: overlay ignored due to required system property: ro.boot.hardware.sku,ro.boot.hardware.coo with value: G020I,VN
12-17 13:32:46.032  6501  6501 I PackageParsing: Skipping target and overlay pair com.android.settings and /product/overlay/SettingsOverlayG020M.apk: overlay ignored due to required system property: ro.boot.hardware.sku with value: G020M
12-17 13:32:46.052  6501  6501 V GraphicsEnvironment: ANGLE Developer option for 'com.stevesoltys.seedvault' set to: 'default'
12-17 13:32:46.052  6501  6501 V GraphicsEnvironment: ANGLE GameManagerService for com.stevesoltys.seedvault: false
12-17 13:32:46.053  6501  6501 D NetworkSecurityConfig: No Network Security Config specified, using platform default
12-17 13:32:46.053  6501  6501 D NetworkSecurityConfig: No Network Security Config specified, using platform default
12-17 13:32:46.056  6501  6501 D CompatibilityChangeReporter: Compat change id reported: 1531297613045645771; UID 10033; state: DISABLED
12-17 13:32:46.057  6501  6501 D CompatibilityChangeReporter: Compat change id reported: 7528921493777479941; UID 10033; state: DISABLED
12-17 13:32:46.062  6501  6501 D MetadataManager: Cached metadata not found, creating...
12-17 13:32:46.105  6501  6501 D MetadataManager: Cached metadata not found, creating...
12-17 13:32:46.110  5279  5483 W DocumentsProvider: Failed during query
12-17 13:32:46.110  5279  5483 W DocumentsProvider: java.io.FileNotFoundException: No root for 096C-1A15
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at com.android.externalstorage.ExternalStorageProvider.getRootFromDocId(ExternalStorageProvider.java:447)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at com.android.externalstorage.ExternalStorageProvider.getFileForDocId(ExternalStorageProvider.java:411)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at com.android.externalstorage.ExternalStorageProvider.getFileForDocId(ExternalStorageProvider.java:406)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at com.android.internal.content.FileSystemProvider.getFileForDocId(FileSystemProvider.java:684)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at com.android.internal.content.FileSystemProvider.includeFile(FileSystemProvider.java:598)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at com.android.internal.content.FileSystemProvider.queryDocument(FileSystemProvider.java:371)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at android.provider.DocumentsProvider.query(DocumentsProvider.java:924)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at android.content.ContentProvider$Transport.query(ContentProvider.java:272)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at android.os.Binder.execTransactInternal(Binder.java:1179)
12-17 13:32:46.110  5279  5483 W DocumentsProvider:     at android.os.Binder.execTransact(Binder.java:1143)
12-17 13:32:46.110  6501  6534 W DocumentFile: Failed query: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.database.Cursor.moveToFirst()' on a null object reference
12-17 13:32:46.119  1553  5802 I ActivityTaskManager: START u0 {cmp=com.stevesoltys.seedvault/.ui.recoverycode.RecoveryCodeActivity (has extras)} from uid 10033
12-17 13:32:46.120  1553  5802 D CompatibilityChangeReporter: Compat change id reported: 174042980; UID 10033; state: DISABLED
12-17 13:32:46.122  1553  5802 D CompatibilityChangeReporter: Compat change id reported: 184838306; UID 10033; state: DISABLED
12-17 13:32:46.122  1553  5802 D CompatibilityChangeReporter: Compat change id reported: 185004937; UID 10033; state: DISABLED
12-17 13:32:46.123  1553  5802 D CompatibilityChangeReporter: Compat change id reported: 181136395; UID 10033; state: DISABLED
12-17 13:32:46.123  1553  5802 D CompatibilityChangeReporter: Compat change id reported: 174042936; UID 10033; state: DISABLED
12-17 13:32:46.129  6501  6501 W com.stevesoltys.seedvault.ui.RequireProvisioningActivity: Error in activity result for requesting recovery code
12-17 13:32:46.130  1553  5802 W ActivityTaskManager: Tried to set launchTime (0) < mLastActivityLaunchTime (1080421)
12-17 13:32:46.150  1181  1943 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: QUALCOMM build                   : 85da404, I46ff5fc46f
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Build Date                       : 11/30/20
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: EV031.31.04.01
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Local Branch                     : promo490_3_Google
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Remote Branch                    : 
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Remote Branch                    : 
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Reconstruct Branch               : 
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Build Config                     : S P 10.0.4 AArch64
12-17 13:32:46.178  6501  6530 I AdrenoGLES-0: Driver Path                      : /vendor/lib64/egl/libGLESv2_adreno.so
12-17 13:32:46.178  6501  6530 D hw-ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
12-17 13:32:46.183  6501  6530 I AdrenoGLES-0: PFP: 0x016ee190, ME: 0x00000000
12-17 13:32:46.184  6501  6530 W AdrenoUtils: <ReadGpuID_from_sysfs:197>: Failed to open /sys/class/kgsl/kgsl-3d0/gpu_model
12-17 13:32:46.184  6501  6530 W AdrenoUtils: <ReadGpuID:221>: Failed to read chip ID from gpu_model. Fallback to use the GSL path
12-17 13:32:46.189   735   789 I SDM     : HWCDisplay::GetColorModeCount: Supported color mode count = 3
12-17 13:32:46.191  6501  6530 D hw-ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
12-17 13:32:46.209  1553  1718 I ActivityTaskManager: Displayed com.stevesoltys.seedvault/.ui.recoverycode.RecoveryCodeActivity: +89ms
12-17 13:32:46.221   935  1043 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:46.221   935  1043 D VSC     : @ 1395.498: [WO] Proposed rotation: 0, flat angle threshold: 65
12-17 13:32:46.221   935  1043 D VSC     : @ 1395.498: [WO] orientation angle 15, orientation 0
12-17 13:32:46.221   935  1043 D VSC     : @ 1395.498: [WO] Gyro angle integrated: 2.498596
12-17 13:32:46.594  1553  5802 W InputManager-JNI: Input channel object '402ba93 Splash Screen com.stevesoltys.seedvault (client)' was disposed without first being removed with the input manager!
12-17 13:32:47.008   935  1043 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:47.008   935  1043 D ASH     : @ 1396.284: SensorType 195 resampler quality 0
12-17 13:32:47.063   935  1043 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:47.063   935  1043 D ASH     : @ 1396.340: SensorType 195 resampler quality 1
12-17 13:32:47.063   935  1043 D ASH     : @ 1396.340: SensorType 195 resampler quality 1
12-17 13:32:47.742   935  1043 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:47.742   935  1043 D VSC     : @ 1397.019: [WO] Gyro finds rotation while in swing_time check
12-17 13:32:47.822   935  1043 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:47.823   935  1043 D VSC     : @ 1397.099: [WO] Gyro finds rotation while in swing_time check
12-17 13:32:48.302   935  1043 E QMI_FW  : qmi_cci_get_ref: ref count increased 2
12-17 13:32:48.302   935  1043 D VSC     : @ 1397.579: [WO] Proposed rotation: 3, flat angle threshold: 40
12-17 13:32:48.302   935  1043 D VSC     : @ 1397.579: [WO] orientation angle 304, orientation 3
12-17 13:32:48.302   935  1043 D VSC     : @ 1397.579: [WO] Gyro angle integrated: 614.123596
12-17 13:32:48.302   935  1043 D VSC     : @ 1397.579: [WO] rejected by isOrientationAngleAcceptable
12-17 13:32:48.834   896   958 D audio_hw_primary: out_standby: enter: stream (0xe34064c0) usecase(1: low-latency-playback)
12-17 13:32:48.880   896   958 D audio_hw_primary: disable_audio_route: reset and update mixer path: low-latency-playback speaker
12-17 13:32:48.884   896   958 D soundtrigger: audio_extn_sound_trigger_update_stream_status: uc_info->id 1 of type 0 for Event 2, with Raise=0
12-17 13:32:48.884   896   958 D hardware_info: hw_info_append_hw_type : device_name = speaker
12-17 13:32:48.884   896   958 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
12-17 13:32:48.884   896   958 I audio_hw_cirrus_playback: spkr_prot_stop_processing: pcm_tx_close
12-17 13:32:48.892   896   958 D audio_hw_primary: disable_audio_route: reset and update mixer path: spkr-vi-record vi-feedback
12-17 13:32:48.892   896   958 D soundtrigger: audio_extn_sound_trigger_update_stream_status: uc_info->id 53 of type 1 for Event 2, with Raise=0
12-17 13:32:48.892   896   958 D hardware_info: hw_info_append_hw_type : device_name = vi-feedback
12-17 13:32:48.892   896   958 D audio_hw_primary: disable_snd_device: snd_device(222: vi-feedback)
12-17 13:32:48.892   896   958 I soundtrigger: audio_extn_sound_trigger_update_device_status: device 0xde of type 1 for Event 0, with Raise=0
12-17 13:32:48.893   896   958 I soundtrigger: audio_extn_sound_trigger_update_device_status: device 0x2 of type 0 for Event 0, with Raise=0
12-17 13:32:49.344  1553  4399 E TaskPersister: File error accessing recents directory (directory doesn't exist?).

Case 3: Attempted restoration of the backup onto Pixel 6 Pro in secondary user profile

Procedure

A new user profile was created on the Pixel 6 Pro used as my daily use phone. The user profile was named Test and switched to to bring up the launcher. USB Debugging was not enabled.

The defaults in the launcher were accepted, until arriving at the Restore apps and data screen on Seedvault. The USB drive containing the genuine backup was then connected to the device, and the genuine recovery seed entered, taking care to select the words once they were appeared in the drop down list to mitigate the possibility of mistyping them.

Once entered, verify was selected.

Expected Outcome

Seedvault would accept the recovery seed, then continue to restoring the apps and data into the new profile.

Observed outcome

As Case 2. Logs were not collected for this case.

Conclusions

Seedvault may be inoperative due to a keystore bug.

thestinger commented 2 years ago

We've already reverted that. Little that can be done for existing setups.

Peter-Easton commented 2 years ago

Okay, great! Thank you very much.

vlad-tim commented 2 years ago

Hello,

I have migrated from Pixel 3 to Pixel 5, and not able to restore my Seedvault backup on the new phone. After entering the 12 words correctly the phone briefly shows a black screen and then ask for the phrase again.

Any advice?

thestinger commented 2 years ago

No, don't have any advice. Seedvault isn't currently very reliable.

thestinger commented 2 years ago

This issue was resolved for the next release by reverting a revert. Further discussion about it doesn't belong on the issue tracker.

Peter-Easton commented 2 years ago

Verified resolved as of SQ1D.211205.017.202121921 https://github.com/GrapheneOS/beta-feedback/issues/28