Fix bad data for users that rotated their recovery key.

This commit is contained in:
Cody Henthorne
2025-10-01 12:11:44 -04:00
committed by Michelle Tang
parent e08b86cda6
commit 67a693107e
2 changed files with 22 additions and 1 deletions

View File

@@ -109,11 +109,14 @@ import org.thoughtcrime.securesms.jobs.BackupRestoreMediaJob
import org.thoughtcrime.securesms.jobs.CancelRestoreMediaJob
import org.thoughtcrime.securesms.jobs.CreateReleaseChannelJob
import org.thoughtcrime.securesms.jobs.LocalBackupJob
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob
import org.thoughtcrime.securesms.jobs.ResetSvrGuessCountJob
import org.thoughtcrime.securesms.jobs.RestoreOptimizedMediaJob
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob
import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob
import org.thoughtcrime.securesms.jobs.StorageForcePushJob
import org.thoughtcrime.securesms.jobs.Svr2MirrorJob
import org.thoughtcrime.securesms.jobs.UploadAttachmentToArchiveJob
import org.thoughtcrime.securesms.keyvalue.BackupValues.ArchiveServiceCredentials
import org.thoughtcrime.securesms.keyvalue.KeyValueStore
@@ -241,9 +244,22 @@ object BackupRepository {
resetInitializedStateAndAuthCredentials()
SignalStore.account.rotateAccountEntropyPool(stagedKeyRotations.aep)
SignalStore.backup.mediaRootBackupKey = stagedKeyRotations.mediaRootBackupKey
refreshMasterKeyDependents()
BackupMessagesJob.enqueue()
}
private fun refreshMasterKeyDependents() {
val jobs = buildList {
add(Svr2MirrorJob())
if (SignalStore.account.isMultiDevice) {
add(MultiDeviceKeysUpdateJob())
}
add(StorageForcePushJob())
}
AppDependencies.jobManager.addAll(jobs)
}
fun resetInitializedStateAndAuthCredentials() {
SignalStore.backup.backupsInitialized = false
SignalStore.backup.messageCredentials.clearAll()

View File

@@ -189,9 +189,10 @@ public class ApplicationMigrations {
static final int ARCHIVE_BACKUP_ID = 145;
static final int QUOTE_THUMBNAIL_BACKFILL = 146;
static final int EMOJI_ENGLISH_SEARCH = 147;
static final int AEP_ROTATE_FIX = 148;
}
public static final int CURRENT_VERSION = 147;
public static final int CURRENT_VERSION = 148;
/**
* This *must* be called after the {@link JobManager} has been instantiated, but *before* the call
@@ -874,6 +875,10 @@ public class ApplicationMigrations {
jobs.put(Version.EMOJI_ENGLISH_SEARCH, new EmojiSearchEnglishLabelsMigrationJob());
}
if (lastSeenVersion < Version.AEP_ROTATE_FIX) {
jobs.put(Version.AEP_ROTATE_FIX, new AepMigrationJob());
}
return jobs;
}