summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wangmingming1 <wangmingming1@xiaomi.com> 2017-12-02 03:06:41 +0000
committer android-build-merger <android-build-merger@google.com> 2017-12-02 03:06:41 +0000
commit58a0809802cf4cd05de77bf44bcf937bdf27760d (patch)
tree39f2160913de4de5f0e570058f529304f1add9f1
parentcfa4bb4bf35d8d3729c44076659dc22dde83c1d4 (diff)
parent5cac6ed047f674dbfef75bab4d9db63d3b07526b (diff)
Merge "Prevent system app upgrading from multi-arch to single-arch"
am: 5cac6ed047 Change-Id: I0e7c6fbea14dcf401076994fa53b9ce66324bb4a
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index b462db285df9..6dcc0895ca71 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -17731,6 +17731,15 @@ public class PackageManagerService extends IPackageManager.Stub
return;
}
+ // check if the new package supports all of the abis which the old package supports
+ boolean oldPkgSupportMultiArch = oldPackage.applicationInfo.secondaryCpuAbi != null;
+ boolean newPkgSupportMultiArch = pkg.applicationInfo.secondaryCpuAbi != null;
+ if (isSystemApp(oldPackage) && oldPkgSupportMultiArch && !newPkgSupportMultiArch) {
+ res.setError(INSTALL_FAILED_UPDATE_INCOMPATIBLE,
+ "Update to package " + pkgName + " doesn't support multi arch");
+ return;
+ }
+
// In case of rollback, remember per-user/profile install state
allUsers = sUserManager.getUserIds();
installedUsers = ps.queryInstalledUsers(allUsers, true);