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:
Todd Kennedy
2016-04-08 13:33:37 -07:00
parent 347bb9a3cf
commit f7593344dd

View File

@@ -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