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
|
// or packages running under the shared user of the removed
|
||||||
// package if revoking the permissions requested only by the removed
|
// package if revoking the permissions requested only by the removed
|
||||||
// package is successful and this causes a change in gids.
|
// package is successful and this causes a change in gids.
|
||||||
|
boolean shouldKill = false;
|
||||||
for (int userId : UserManagerService.getInstance().getUserIds()) {
|
for (int userId : UserManagerService.getInstance().getUserIds()) {
|
||||||
final int userIdToKill = mSettings.updateSharedUserPermsLPw(deletedPs,
|
final int userIdToKill = mSettings.updateSharedUserPermsLPw(deletedPs,
|
||||||
userId);
|
userId);
|
||||||
if (userIdToKill == UserHandle.USER_ALL
|
shouldKill |= userIdToKill == UserHandle.USER_ALL
|
||||||
|| userIdToKill >= UserHandle.USER_SYSTEM) {
|
|| userIdToKill >= UserHandle.USER_SYSTEM;
|
||||||
// If gids changed for this user, kill all affected packages.
|
}
|
||||||
|
// If gids changed, kill all affected packages.
|
||||||
|
if (shouldKill) {
|
||||||
mHandler.post(() -> {
|
mHandler.post(() -> {
|
||||||
// This has to happen with no lock held.
|
// This has to happen with no lock held.
|
||||||
killApplication(deletedPs.name, deletedPs.appId,
|
killApplication(deletedPs.name, deletedPs.appId,
|
||||||
KILL_APP_REASON_GIDS_CHANGED);
|
KILL_APP_REASON_GIDS_CHANGED);
|
||||||
});
|
});
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clearPackagePreferredActivitiesLPw(
|
clearPackagePreferredActivitiesLPw(
|
||||||
|
|||||||
Reference in New Issue
Block a user