diff options
| author | 2024-03-05 01:04:57 +0000 | |
|---|---|---|
| committer | 2024-03-06 18:17:29 +0000 | |
| commit | ff17cc49ca1e1e7bda969c5ab35888c681c320c1 (patch) | |
| tree | 187e162d1dd7669e36d6b766e28e0b4810894e7e | |
| parent | f90bbd2c7360c380d4aa6b7d22dbe97e1df9f16e (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.java | 4 |
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() && |