diff options
Diffstat (limited to 'services/backup/java')
-rw-r--r-- | services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java b/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java index d8fbde4115d9..9a353fbc45bf 100644 --- a/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java +++ b/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java @@ -76,7 +76,9 @@ public class BackupAgentConnectionManager { @Nullable private BackupAgentConnection mCurrentConnection; + @GuardedBy("mAgentConnectLock") private final ArraySet<String> mRestoreNoRestrictedModePackages = new ArraySet<>(); + @GuardedBy("mAgentConnectLock") private final ArraySet<String> mBackupNoRestrictedModePackages = new ArraySet<>(); private final IActivityManager mActivityManager; @@ -322,14 +324,16 @@ public class BackupAgentConnectionManager { */ public void setNoRestrictedModePackages(Set<String> packageNames, @BackupAnnotations.OperationType int opType) { - if (opType == BackupAnnotations.OperationType.BACKUP) { - mBackupNoRestrictedModePackages.clear(); - mBackupNoRestrictedModePackages.addAll(packageNames); - } else if (opType == BackupAnnotations.OperationType.RESTORE) { - mRestoreNoRestrictedModePackages.clear(); - mRestoreNoRestrictedModePackages.addAll(packageNames); - } else { - throw new IllegalArgumentException("opType must be BACKUP or RESTORE"); + synchronized (mAgentConnectLock) { + if (opType == BackupAnnotations.OperationType.BACKUP) { + mBackupNoRestrictedModePackages.clear(); + mBackupNoRestrictedModePackages.addAll(packageNames); + } else if (opType == BackupAnnotations.OperationType.RESTORE) { + mRestoreNoRestrictedModePackages.clear(); + mRestoreNoRestrictedModePackages.addAll(packageNames); + } else { + throw new IllegalArgumentException("opType must be BACKUP or RESTORE"); + } } } @@ -338,8 +342,10 @@ public class BackupAgentConnectionManager { * restore. */ public void clearNoRestrictedModePackages() { - mBackupNoRestrictedModePackages.clear(); - mRestoreNoRestrictedModePackages.clear(); + synchronized (mAgentConnectLock) { + mBackupNoRestrictedModePackages.clear(); + mRestoreNoRestrictedModePackages.clear(); + } } /** @@ -353,6 +359,7 @@ public class BackupAgentConnectionManager { * {@link #mRestoreNoRestrictedModePackages} so this method will immediately return without * any IPC to the transport. */ + @GuardedBy("mAgentConnectLock") private boolean shouldUseRestrictedBackupModeForPackage( @BackupAnnotations.OperationType int mode, String packageName) { // Key/Value apps are never put in restricted mode. |