summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-02-28 21:04:13 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-28 21:04:13 +0000
commit403a5df815d9f30c068b21e8e5bc7ecf2c36d76d (patch)
tree7a24a67f8a1e2f8e4b48d4fb8083cfb248a33c72
parent06f219260b469091855ac9aa2c37de536950b286 (diff)
parente46a3cd56b39e5528bb1d35d83674ad14e6b2fd7 (diff)
Merge "Always mark package as "uninstalled" for all new users." into main
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java24
1 files changed, 16 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 69f790637d80..fe8030b656b0 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1541,6 +1541,19 @@ public class PackageManagerService implements PackageSender, TestUtilityService
return;
}
+ // Initialize all necessary settings for archival installation.
+ pkgSetting
+ // No package.
+ .setPkg(null)
+ // Mark for later restore.
+ .setPendingRestore(true);
+ for (int userId : userIds) {
+ // Unmark "installed" for all users.
+ pkgSetting
+ .modifyUserState(userId)
+ .setInstalled(false);
+ }
+
String responsibleInstallerPackage = PackageArchiver.getResponsibleInstallerPackage(
pkgSetting);
// TODO(b/278553670) Check if responsibleInstallerPackage supports unarchival.
@@ -1551,16 +1564,11 @@ public class PackageManagerService implements PackageSender, TestUtilityService
for (int userId : userIds) {
var archiveState = mInstallerService.mPackageArchiver.createArchiveState(
archivePackage, userId, responsibleInstallerPackage);
- if (archiveState == null) {
- continue;
- }
- pkgSetting
- .setPkg(null)
- // This package was installed as archived. Need to mark it for later restore.
- .setPendingRestore(true)
+ if (archiveState != null) {
+ pkgSetting
.modifyUserState(userId)
- .setInstalled(false)
.setArchiveState(archiveState);
+ }
}
}