Don't allow userID changes on upgrade
Changing userID's on upgrade lead to all sorts of bad behaviour, so, don't allow it. Bug: 28075981 Change-Id: I4861603f4607d7bd85fa24951a62a00dadd6eeec
This commit is contained in:
@@ -13565,6 +13565,16 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
// Check for shared user id changes
|
||||
String invalidPackageName =
|
||||
getParentOrChildPackageChangedSharedUser(oldPackage, pkg);
|
||||
if (invalidPackageName != null) {
|
||||
res.setError(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE,
|
||||
"Package " + invalidPackageName + " tried to change user "
|
||||
+ oldPackage.mSharedUserId);
|
||||
return;
|
||||
}
|
||||
|
||||
// In case of rollback, remember per-user/profile install state
|
||||
allUsers = sUserManager.getUserIds();
|
||||
|
||||
@@ -13839,15 +13849,6 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
setInstallAndUpdateTime(newPackage, deletedPkgSetting.firstInstallTime,
|
||||
System.currentTimeMillis());
|
||||
|
||||
// Check for shared user id changes
|
||||
String invalidPackageName = getParentOrChildPackageChangedSharedUser(
|
||||
deletedPackage, newPackage);
|
||||
if (invalidPackageName != null) {
|
||||
res.setError(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE,
|
||||
"Forbidding shared user change from " + deletedPkgSetting.sharedUser
|
||||
+ " to " + invalidPackageName);
|
||||
}
|
||||
|
||||
// Update the package dynamic state if succeeded
|
||||
if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) {
|
||||
// Now that the install succeeded make sure we remove data
|
||||
|
||||
Reference in New Issue
Block a user