diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/InstallPackageHelper.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 3816b07042dc..0de44bc5d6b3 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -3938,10 +3938,14 @@ final class InstallPackageHelper { deletePackageHelper.deletePackageLIF(parsedPackage.getPackageName(), null, true, mPm.mUserManager.getUserIds(), 0, null, false); } - } else if (newPkgVersionGreater) { + } else if (newPkgVersionGreater || newSharedUserSetting) { // The application on /system is newer than the application on /data. // Simply remove the application on /data [keeping application data] // and replace it with the version on /system. + // Also, if the sharedUserSetting of the application on /system is different + // from the sharedUserSetting on data, we should trust the sharedUserSetting + // on /system, even if the application version on /system is smaller than + // the version on /data. logCriticalInfo(Log.WARN, "System package enabled;" + " name: " + pkgSetting.getPackageName() |