From a2a1e46c729ee6d28149ad7388edc22fe12e72f4 Mon Sep 17 00:00:00 2001 From: Ruslan Tkhakokhov Date: Fri, 28 Aug 2020 00:19:59 +0100 Subject: [PATCH] [FSD2D] Pass eligibility rules to TarBackupReader#chooseRestorePolicy Bug: 160407842 Test: atest TarBackupReaderTest Change-Id: Icefccaee7f0e12934058f75caafa9a1628a430ca --- .../backup/restore/FullRestoreEngine.java | 2 +- .../server/backup/utils/TarBackupReader.java | 20 +++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java b/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java index b9625397d2378..16077cb6082f8 100644 --- a/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java +++ b/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java @@ -228,7 +228,7 @@ public class FullRestoreEngine extends RestoreEngine { PackageManagerInternal.class); RestorePolicy restorePolicy = tarBackupReader.chooseRestorePolicy( mBackupManagerService.getPackageManager(), allowApks, info, signatures, - pmi, mUserId); + pmi, mUserId, mBackupEligibilityRules); mManifestSignatures.put(info.packageName, signatures); mPackagePolicies.put(pkg, restorePolicy); mPackageInstallers.put(pkg, info.installerPackageName); diff --git a/services/backup/java/com/android/server/backup/utils/TarBackupReader.java b/services/backup/java/com/android/server/backup/utils/TarBackupReader.java index 3789fa14e87bd..6963248734a3f 100644 --- a/services/backup/java/com/android/server/backup/utils/TarBackupReader.java +++ b/services/backup/java/com/android/server/backup/utils/TarBackupReader.java @@ -389,13 +389,29 @@ public class TarBackupReader { public RestorePolicy chooseRestorePolicy(PackageManager packageManager, boolean allowApks, FileMetadata info, Signature[] signatures, PackageManagerInternal pmi, int userId) { + return chooseRestorePolicy(packageManager, allowApks, info, signatures, pmi, userId, + BackupEligibilityRules.forBackup(packageManager, pmi, userId)); + } + + /** + * Chooses restore policy. + * + * @param packageManager - PackageManager instance. + * @param allowApks - allow restore set to include apks. + * @param info - file metadata. + * @param signatures - array of signatures parsed from backup file. + * @param userId - ID of the user for which restore is performed. + * @param eligibilityRules - {@link BackupEligibilityRules} for this operation. + * @return a restore policy constant. + */ + public RestorePolicy chooseRestorePolicy(PackageManager packageManager, + boolean allowApks, FileMetadata info, Signature[] signatures, + PackageManagerInternal pmi, int userId, BackupEligibilityRules eligibilityRules) { if (signatures == null) { return RestorePolicy.IGNORE; } RestorePolicy policy = RestorePolicy.IGNORE; - BackupEligibilityRules eligibilityRules = BackupEligibilityRules.forBackup(packageManager, - pmi, userId); // Okay, got the manifest info we need... try { PackageInfo pkgInfo = packageManager.getPackageInfoAsUser(