Merge "Invoke updateSharedUserPermsLPw for all users when a package is removed." into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
4feb4522b8
@@ -18890,19 +18890,20 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
// or packages running under the shared user of the removed
|
||||
// package if revoking the permissions requested only by the removed
|
||||
// package is successful and this causes a change in gids.
|
||||
boolean shouldKill = false;
|
||||
for (int userId : UserManagerService.getInstance().getUserIds()) {
|
||||
final int userIdToKill = mSettings.updateSharedUserPermsLPw(deletedPs,
|
||||
userId);
|
||||
if (userIdToKill == UserHandle.USER_ALL
|
||||
|| userIdToKill >= UserHandle.USER_SYSTEM) {
|
||||
// If gids changed for this user, kill all affected packages.
|
||||
mHandler.post(() -> {
|
||||
// This has to happen with no lock held.
|
||||
killApplication(deletedPs.name, deletedPs.appId,
|
||||
KILL_APP_REASON_GIDS_CHANGED);
|
||||
});
|
||||
break;
|
||||
}
|
||||
shouldKill |= userIdToKill == UserHandle.USER_ALL
|
||||
|| userIdToKill >= UserHandle.USER_SYSTEM;
|
||||
}
|
||||
// If gids changed, kill all affected packages.
|
||||
if (shouldKill) {
|
||||
mHandler.post(() -> {
|
||||
// This has to happen with no lock held.
|
||||
killApplication(deletedPs.name, deletedPs.appId,
|
||||
KILL_APP_REASON_GIDS_CHANGED);
|
||||
});
|
||||
}
|
||||
}
|
||||
clearPackagePreferredActivitiesLPw(
|
||||
|
||||
Reference in New Issue
Block a user