[pm] fix a system crash caused by cleanUpUser
DeletePackageHelper.removeUnusedPackagesLPw can cause an NPE in
PermissionManagerService if the user state stored in
PermissionManagerService has already been deleted. This CL fixes the
order of things such that we delete the user state in
PermissionManagerService after the apps are deleted.
BUG: 320701119
Test: manual
Change-Id: I0086f79f9c998782226b057dc57877cca8338828
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index f09fa21..6a87d49 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -4334,11 +4334,11 @@
mDirtyUsers.remove(userId);
}
mUserNeedsBadging.delete(userId);
- mPermissionManager.onUserRemoved(userId);
+ mDeletePackageHelper.removeUnusedPackagesLPw(userManager, userId);
mSettings.removeUserLPw(userId);
mPendingBroadcasts.remove(userId);
- mDeletePackageHelper.removeUnusedPackagesLPw(userManager, userId);
mAppsFilter.onUserDeleted(snapshotComputer(), userId);
+ mPermissionManager.onUserRemoved(userId);
}
mInstantAppRegistry.onUserRemoved(userId);
mPackageMonitorCallbackHelper.onUserRemoved(userId);