summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alex Buynytskyy <alexbuy@google.com> 2024-03-05 01:04:57 +0000
committer Cherrypicker Worker <android-build-cherrypicker-worker@google.com> 2024-03-06 18:17:29 +0000
commitff17cc49ca1e1e7bda969c5ab35888c681c320c1 (patch)
tree187e162d1dd7669e36d6b766e28e0b4810894e7e
parentf90bbd2c7360c380d4aa6b7d22dbe97e1df9f16e (diff)
Create per-user state(s) on user creation, for archived packages.
Fixes: 326223729 Test: atest PackageManagerTest Test: repro steps in https://b.corp.google.com/issues/326223729#comment37 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:22a04044a45a514e10f9584929bf6dda7a37424b) Merged-In: I660c9c2e487119a5f08b2c1dea1dadf2ebc26531 Change-Id: I660c9c2e487119a5f08b2c1dea1dadf2ebc26531
-rw-r--r--services/core/java/com/android/server/pm/Settings.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index fe65010b7281..aaf21c8860f4 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -4558,6 +4558,10 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
for (int i = 0; i < size; i++) {
final PackageSetting ps = mPackages.valueAt(i);
if (ps.getPkg() == null) {
+ // This would force-create correct per-user state.
+ ps.setInstalled(false, userHandle);
+ // Make sure the app is excluded from storage mapping for this user.
+ writeKernelMappingLPr(ps);
continue;
}
final boolean shouldMaybeInstall = ps.isSystem() &&