diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index fa1b560c977e6..c10a7e83b92da 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -5805,6 +5805,18 @@ class PackageManagerService extends IPackageManager.Stub { } mSettings.writeLP(); } + } else { + // If this is an update to an existing update, setup + // to remove the existing update. + synchronized (mPackages) { + PackageSetting ps = mSettings.getDisabledSystemPkg(packageName); + if (ps != null && ps.codePathString != null && + !ps.codePathString.equals(oldPkgSetting.codePathString)) { + int installFlags = 0; + res.removedInfo.args = createInstallArgs(0, oldPkgSetting.codePathString, + oldPkgSetting.resourcePathString); + } + } } }