Check manifest if runtime state of app is DEFAULT
Before we were considering that the app was enabled in this case, which
might not be always true.
Bug: 80227098
Test: atest AppBackupUtilsTest
Test: Check app w/ manifest enabled="true" is backed-up, but
enabled="false" is not.
Change-Id: I4625aa39ba0de45ce6689f2375245081a5d4d722
diff --git a/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java b/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java
index c39cceb..28e9b77 100644
--- a/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java
+++ b/services/backup/java/com/android/server/backup/utils/AppBackupUtils.java
@@ -126,7 +126,8 @@
case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER:
case PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED:
return true;
-
+ case PackageManager.COMPONENT_ENABLED_STATE_DEFAULT:
+ return !app.enabled;
default:
return false;
}
diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java
index 4f18be7..6801bd2 100644
--- a/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/backup/utils/AppBackupUtilsTest.java
@@ -214,6 +214,40 @@
}
@Test
+ public void appIsDisabled_stateDefaultManifestEnabled_returnsFalse() throws Exception {
+ ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.flags = 0;
+ applicationInfo.uid = Process.FIRST_APPLICATION_UID;
+ applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME;
+ applicationInfo.packageName = TEST_PACKAGE_NAME;
+ applicationInfo.enabled = true;
+
+ PackageManagerStub.sApplicationEnabledSetting =
+ PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+
+ boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub);
+
+ assertThat(isDisabled).isFalse();
+ }
+
+ @Test
+ public void appIsDisabled_stateDefaultManifestDisabled_returnsTrue() throws Exception {
+ ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.flags = 0;
+ applicationInfo.uid = Process.FIRST_APPLICATION_UID;
+ applicationInfo.backupAgentName = CUSTOM_BACKUP_AGENT_NAME;
+ applicationInfo.packageName = TEST_PACKAGE_NAME;
+ applicationInfo.enabled = false;
+
+ PackageManagerStub.sApplicationEnabledSetting =
+ PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+
+ boolean isDisabled = AppBackupUtils.appIsDisabled(applicationInfo, mPackageManagerStub);
+
+ assertThat(isDisabled).isTrue();
+ }
+
+ @Test
public void appIsDisabled_stateEnabled_returnsFalse() throws Exception {
ApplicationInfo applicationInfo = new ApplicationInfo();
applicationInfo.flags = 0;