Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c935d1f1 authored by Christopher Tate's avatar Christopher Tate
Browse files

Refuse update of a system app if it changes its shared uid

Bug 13657183

Change-Id: I6d8fb9c8810ca896d2d10e5a80a3c4a50c9e4fed
parent f4824a06
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -9214,10 +9214,21 @@ public class PackageManagerService extends IPackageManager.Stub {
                final PackageSetting newPkgSetting = (PackageSetting)newPackage.mExtras;
                newPkgSetting.firstInstallTime = oldPkgSetting.firstInstallTime;
                newPkgSetting.lastUpdateTime = System.currentTimeMillis();
                // is the update attempting to change shared user? that isn't going to work...
                if (oldPkgSetting.sharedUser != newPkgSetting.sharedUser) {
                    Slog.w(TAG, "Forbidding shared user change from " + oldPkgSetting.sharedUser
                            + " to " + newPkgSetting.sharedUser);
                    res.returnCode = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE;
                    updatedSettings = true;
                }
            }
            if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) {
                updateSettingsLI(newPackage, installerPackageName, allUsers, perUserInstalled, res);
                updatedSettings = true;
            }
        }
        if (res.returnCode != PackageManager.INSTALL_SUCCEEDED) {
            // Re installation failed. Restore old information