Skip to content

Extracting necessary data to restore Signal after reinstall and Titanium Backup #8130

Description

@pascalwhoop

Hello,
I have backed up my Signal application using TitaniumBackup (as all other apps are backed up as well). This is a standard procedure for people that flash their androids with new ROMs often.

All other apps have survived my Nougat -> Oreo upgrade but Signal gives me FCs

08-20 17:01:01.880 28479 28479 E AndroidRuntime: FATAL EXCEPTION: main
08-20 17:01:01.880 28479 28479 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 28479
08-20 17:01:01.880 28479 28479 E AndroidRuntime: java.lang.AssertionError: javax.crypto.AEADBadTagException
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.crypto.KeyStoreHelper.unseal(KeyStoreHelper.java:73)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.crypto.DatabaseSecretProvider.getEncryptedDatabaseSecret(DatabaseSecretProvider.java:58)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.crypto.DatabaseSecretProvider.getOrCreateDatabaseSecret(DatabaseSecretProvider.java:29)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.database.DatabaseFactory.<init>(DatabaseFactory.java:150)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.database.DatabaseFactory.getInstance(DatabaseFactory.java:64)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.database.DatabaseFactory.getSmsDatabase(DatabaseFactory.java:79)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.service.ExpiringMessageManager.<init>(ExpiringMessageManager.java:29)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.ApplicationContext.initializeExpiringMessageManager(ApplicationContext.java:180)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.ApplicationContext.onCreate(ApplicationContext.java:95)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.app.Instrumentation.callApplicationOnCreate(Unknown Source:0)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(Unknown Source:1064)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:361)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(<Xposed>)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.app.ActivityThread.-wrap1(Unknown Source:0)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(Unknown Source:415)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Unknown Source:21)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.os.Looper.loop(Unknown Source:139)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.app.ActivityThread.main(Unknown Source:146)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Unknown Source:11)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(Unknown Source:198)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:108)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: Caused by: javax.crypto.AEADBadTagException
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(Unknown Source:107)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at javax.crypto.Cipher.doFinal(Cipher.java:1736)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at org.thoughtcrime.securesms.crypto.KeyStoreHelper.unseal(KeyStoreHelper.java:71)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	... 22 more
08-20 17:01:01.880 28479 28479 E AndroidRuntime: Caused by: android.security.KeyStoreException: Signature/MAC verification failed
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.security.KeyStore.getKeyStoreException(Unknown Source:96)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.security.keystore.KeyStoreCryptoOperationChunkedStreamer.doFinal(Unknown Source:38)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer.doFinal(Unknown Source:7)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineDoFinal(Unknown Source:40)
08-20 17:01:01.880 28479 28479 E AndroidRuntime: 	... 24 more
08-20 17:01:01.901  3795  3964 E PhoneWindow_APM : : isCalledPackage return true
08-20 17:01:05.677  3795  3962 E memtrack: Couldn't load memtrack module
08-20 17:01:07.831 28479 28487 E System  : Uncaught exception thrown by finalizer
08-20 17:01:07.832 28479 28487 E System  : java.lang.IllegalStateException: Binder has been finalized!
08-20 17:01:07.832 28479 28487 E System  : 	at android.os.BinderProxy.transactNative(Native Method)
08-20 17:01:07.832 28479 28487 E System  : 	at android.os.BinderProxy.transact(Unknown Source:102)
08-20 17:01:07.832 28479 28487 E System  : 	at android.security.IKeystoreService$Stub$Proxy.abort(Unknown Source:22)
08-20 17:01:07.832 28479 28487 E System  : 	at android.security.KeyStore.abort(Unknown Source:2)
08-20 17:01:07.832 28479 28487 E System  : 	at android.security.keystore.AndroidKeyStoreCipherSpiBase.finalize(Unknown Source:6)
08-20 17:01:07.832 28479 28487 E System  : 	at android.security.keystore.AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding.finalize(Unknown Source:0)
08-20 17:01:07.832 28479 28487 E System  : 	at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:250)
08-20 17:01:07.832 28479 28487 E System  : 	at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:237)
08-20 17:01:07.832 28479 28487 E System  : 	at java.lang.Daemons$Daemon.run(Daemons.java:103)
08-20 17:01:07.832 28479 28487 E System  : 	at java.lang.Thread.run(Thread.java:764)
08-20 17:01:08.015  3795  3964 E ViewRootImpl: sendUserActionEvent() returned.

What data do I need to recover from my titanium backup to make signal recover my chats / secrets and run again with a fresh install? It seems my Android Device ID has changed, does this impact signals crypto?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions