From ff17cc49ca1e1e7bda969c5ab35888c681c320c1 Mon Sep 17 00:00:00 2001 From: Alex Buynytskyy Date: Tue, 5 Mar 2024 01:04:57 +0000 Subject: 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 --- services/core/java/com/android/server/pm/Settings.java | 4 ++++ 1 file changed, 4 insertions(+) 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() && -- cgit v1.2.3-59-g8ed1b