diff options
| author | 2017-12-02 03:06:41 +0000 | |
|---|---|---|
| committer | 2017-12-02 03:06:41 +0000 | |
| commit | 58a0809802cf4cd05de77bf44bcf937bdf27760d (patch) | |
| tree | 39f2160913de4de5f0e570058f529304f1add9f1 | |
| parent | cfa4bb4bf35d8d3729c44076659dc22dde83c1d4 (diff) | |
| parent | 5cac6ed047f674dbfef75bab4d9db63d3b07526b (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.java | 9 |
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); |