From 246a0e77fabadbe2b24796a91cc5602982ea689b Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Fri, 14 Apr 2017 18:08:23 -0700 Subject: [PATCH] Don't back up disabled apps Bug 37150882 Test: manual Change-Id: I9d8e34de880727325206f4d173a03f1fca4613a4 --- .../server/backup/BackupManagerService.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index d647c635cbb2a..aa5083dfeb15c 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -798,6 +798,19 @@ public class BackupManagerService { return ((app.flags & ApplicationInfo.FLAG_STOPPED) != 0); } + // We also avoid backups of 'disabled' apps + private static boolean appIsDisabled(ApplicationInfo app, PackageManager pm) { + switch (pm.getApplicationEnabledSetting(app.packageName)) { + case PackageManager.COMPONENT_ENABLED_STATE_DISABLED: + case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER: + case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED: + return true; + + default: + return false; + } + } + /* does *not* check overall backup eligibility policy! */ private static boolean appGetsFullBackup(PackageInfo pkg) { if (pkg.applicationInfo.backupAgentName != null) { @@ -10774,7 +10787,8 @@ if (MORE_DEBUG) Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soF PackageInfo packageInfo = mPackageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); if (!appIsEligibleForBackup(packageInfo.applicationInfo) || - appIsStopped(packageInfo.applicationInfo)) { + appIsStopped(packageInfo.applicationInfo) || + appIsDisabled(packageInfo.applicationInfo, mPackageManager)) { return false; } IBackupTransport transport = mTransportManager.getCurrentTransportBinder();