diff options
author | Patrick Baumann <patb@google.com> | 2019-11-06 10:36:39 -0800 |
---|---|---|
committer | Greg Wroblewski <musashi@google.com> | 2020-01-10 14:53:22 -0800 |
commit | e8ae9fcf9156b4da50aa19337b93533a175bfa75 (patch) | |
tree | 6adc4ad6084b32f527f57e8a4467a1a6a63d9fe4 | |
parent | 9192cc56ef29650cc2e286082a4464c10656ed5d (diff) | |
download | base-e8ae9fcf9156b4da50aa19337b93533a175bfa75.tar.gz |
Fixes NPE when preparing app data during initandroid-8.1.0_r74
When deleting an unused static shared library on Q, the user manager was
fetched via mContext.getSystemService. At this time during boot, the
service wasn't registered and so null was returned. This has already
been addressed in R with a move to injecting dependencies in the
PackageManagerService constructor.
Bug: 142083996
Bug: 141413692
Test: manual; remove static dependency on eng Q build and reboot
Change-Id: I8ae4e331d09b4734c54cdc6887b273705dce88b1
Merged-In: I8ae4e331d09b4734c54cdc6887b273705dce88b1
(cherry picked from commit 5d3fc339b57950fd8621cb410865e8800ccb6873)
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 23ae225953fa..e32700043f9b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -24207,9 +24207,9 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); mSettings.writeKernelMappingLPr(ps); } - final UserManager um = mContext.getSystemService(UserManager.class); + final UserManagerService um = sUserManager; UserManagerInternal umInternal = getUserManagerInternal(); - for (UserInfo user : um.getUsers()) { + for (UserInfo user : um.getUsers(false /* excludeDying */)) { final int flags; if (umInternal.isUserUnlockingOrUnlocked(user.id)) { flags = StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE; |