diff options
| author | 2021-03-01 14:53:36 +0000 | |
|---|---|---|
| committer | 2021-03-01 14:53:36 +0000 | |
| commit | b56fc740bb8ea51d6db11cdfdb92f108fc22bc65 (patch) | |
| tree | 66ef674a20119f48acb7856002a3ecc76561d0df | |
| parent | 7df4e1c5a4c02410d9739158c47cf92a9dd4cb4d (diff) | |
| parent | 75ee2bf7f122aeb33ca6bdb466fb69873a6973c5 (diff) | |
Merge "Update D2D logic in line with new opt-out rules" into sc-dev
4 files changed, 19 insertions, 13 deletions
diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java index 85cfe835c28d..22492ccd0373 100644 --- a/core/java/android/app/backup/BackupAgent.java +++ b/core/java/android/app/backup/BackupAgent.java @@ -564,10 +564,6 @@ public abstract class BackupAgent extends ContextWrapper { @VisibleForTesting public IncludeExcludeRules getIncludeExcludeRules(FullBackup.BackupScheme backupScheme) throws IOException, XmlPullParserException { - if (isDeviceToDeviceMigration()) { - return IncludeExcludeRules.emptyRules(); - } - Map<String, Set<PathWithRequiredFlags>> manifestIncludeMap; ArraySet<PathWithRequiredFlags> manifestExcludeSet; diff --git a/core/java/android/app/backup/FullBackup.java b/core/java/android/app/backup/FullBackup.java index 3701ea825933..829b6cd43934 100644 --- a/core/java/android/app/backup/FullBackup.java +++ b/core/java/android/app/backup/FullBackup.java @@ -20,11 +20,15 @@ import static android.app.backup.BackupManager.OperationType; import android.annotation.Nullable; import android.annotation.StringDef; +import android.app.compat.CompatChanges; +import android.compat.annotation.ChangeId; +import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.XmlResourceParser; +import android.os.Build; import android.os.ParcelFileDescriptor; import android.os.Process; import android.os.storage.StorageManager; @@ -96,6 +100,14 @@ public class FullBackup { public static final String FLAG_REQUIRED_FAKE_CLIENT_SIDE_ENCRYPTION = "fakeClientSideEncryption"; + /** + * When this change is enabled, include / exclude rules specified via + * {@code android:fullBackupContent} are ignored during D2D transfers. + */ + @ChangeId + @EnabledSince(targetSdkVersion = Build.VERSION_CODES.S) + private static final long IGNORE_FULL_BACKUP_CONTENT_IN_D2D = 180523564L; + @StringDef({ ConfigSection.CLOUD_BACKUP, ConfigSection.DEVICE_TRANSFER @@ -527,7 +539,10 @@ public class FullBackup { } } - // TODO(b/180523564): Ignore the old config for apps targeting Android S+ during D2D. + if (operationType == OperationType.MIGRATION + && CompatChanges.isChangeEnabled(IGNORE_FULL_BACKUP_CONTENT_IN_D2D)) { + return; + } if (mFullBackupContent != 0) { // Fall back to the old config. diff --git a/core/tests/coretests/src/android/app/backup/BackupAgentTest.java b/core/tests/coretests/src/android/app/backup/BackupAgentTest.java index ea903f2b61eb..37cf4700c1d0 100644 --- a/core/tests/coretests/src/android/app/backup/BackupAgentTest.java +++ b/core/tests/coretests/src/android/app/backup/BackupAgentTest.java @@ -57,14 +57,6 @@ public class BackupAgentTest { } @Test - public void testGetIncludeExcludeRules_isMigration_returnsEmptyRules() throws Exception { - mBackupAgent = getAgentForOperationType(OperationType.MIGRATION); - - IncludeExcludeRules rules = mBackupAgent.getIncludeExcludeRules(mBackupScheme); - assertThat(rules).isEqualTo(IncludeExcludeRules.emptyRules()); - } - - @Test public void testGetIncludeExcludeRules_isNotMigration_returnsRules() throws Exception { PathWithRequiredFlags path = new PathWithRequiredFlags("path", /* requiredFlags */ 0); Map<String, Set<PathWithRequiredFlags>> includePaths = Collections.singletonMap("test", diff --git a/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java b/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java index c9d8a8198ca4..139c8e59a148 100644 --- a/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java +++ b/packages/LocalTransport/src/com/android/localtransport/LocalTransport.java @@ -162,6 +162,9 @@ public class LocalTransport extends BackupTransport { if (mParameters.isFakeEncryptionFlag()) { flags |= BackupAgent.FLAG_FAKE_CLIENT_SIDE_ENCRYPTION_ENABLED; } + if (mParameters.isDeviceTransfer()) { + flags |= BackupAgent.FLAG_DEVICE_TO_DEVICE_TRANSFER; + } return flags; } |