diff options
| author | 2024-02-29 18:11:22 +0000 | |
|---|---|---|
| committer | 2024-02-29 18:11:22 +0000 | |
| commit | a9a83eed92731255899741e5b8dd011704cc479c (patch) | |
| tree | e9bc555d8bcc13bbfe1c940fd989fea3158e0d0d | |
| parent | a9ec5dbf9bb17a96cf2eb2b182f9972a7ba7ef79 (diff) | |
| parent | e8deecf6a9cad1f0e17add7b7f0e7be0d2e65d28 (diff) | |
Merge "Move where the V to U allowlist/denylist are created" into main
| -rw-r--r-- | services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java index e666442af9c9..5c1007c17ba0 100644 --- a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java +++ b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java @@ -167,6 +167,9 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // List of packages that have RestoreAnyVersion set to true but do not support V-> U downgrade. private List<String> mVToUDenylist; + // Whether we have already initialised the V to U allowlist/denylist + private Boolean mAreVToUListsSet = false; + // Key/value: bookkeeping about staged data and files for agent access private File mBackupDataName; private File mStageName; @@ -235,18 +238,6 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { backupManagerService.getAgentTimeoutParameters(), "Timeout parameters cannot be null"); mBackupEligibilityRules = backupEligibilityRules; - mVToUAllowlist = - createVToUList( - Settings.Secure.getStringForUser( - backupManagerService.getContext().getContentResolver(), - Settings.Secure.V_TO_U_RESTORE_ALLOWLIST, - mUserId)); - mVToUDenylist = - createVToUList( - Settings.Secure.getStringForUser( - backupManagerService.getContext().getContentResolver(), - Settings.Secure.V_TO_U_RESTORE_DENYLIST, - mUserId)); if (targetPackage != null) { // Single package restore @@ -661,7 +652,23 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // installed. If the app has not declared that it is prepared to // handle this case, we do not attempt the restore. if (mIsSystemRestore - && isVToUDowngrade(mPmAgent.getSourceSdk(), android.os.Build.VERSION.SDK_INT)) { + && isVToUDowngrade(mPmAgent.getSourceSdk(), + android.os.Build.VERSION.SDK_INT)) { + if (!mAreVToUListsSet) { + mVToUAllowlist = + createVToUList( + Settings.Secure.getStringForUser( + backupManagerService.getContext().getContentResolver(), + Settings.Secure.V_TO_U_RESTORE_ALLOWLIST, + mUserId)); + mVToUDenylist = + createVToUList( + Settings.Secure.getStringForUser( + backupManagerService.getContext().getContentResolver(), + Settings.Secure.V_TO_U_RESTORE_DENYLIST, + mUserId)); + mAreVToUListsSet = true; + } if (isPackageEligibleForVToURestore(mCurrentPackage)) { Slog.i(TAG, "Package " + pkgName + " is eligible for V to U downgrade scenario"); |