summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-07-20 20:44:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-20 20:44:56 +0000
commit35ba2cdbf8654d708e57d209131dd498705d0e18 (patch)
tree83a4dbc27b75040ff4dcf55aa24304e202f6eb0e /services
parent9bdb7bfd35a4b1faa5cbafeb3f1e20ff34e7b0e1 (diff)
parent40cda8ef7c2e91fe1557a8cc35e01b91acf1def8 (diff)
downloadframeworks_base-35ba2cdbf8654d708e57d209131dd498705d0e18.zip
frameworks_base-35ba2cdbf8654d708e57d209131dd498705d0e18.tar.gz
frameworks_base-35ba2cdbf8654d708e57d209131dd498705d0e18.tar.bz2
Merge "Inherit ABI when moving existing install." into mnc-dev
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java14
1 files changed, 14 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 c763315..c139389 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -12275,6 +12275,20 @@ public class PackageManagerService extends IPackageManager.Stub {
// We did an in-place move, so dex is ready to roll
scanFlags |= SCAN_NO_DEX;
scanFlags |= SCAN_MOVE;
+
+ synchronized (mPackages) {
+ final PackageSetting ps = mSettings.mPackages.get(pkgName);
+ if (ps == null) {
+ res.setError(INSTALL_FAILED_INTERNAL_ERROR,
+ "Missing settings for moved package " + pkgName);
+ }
+
+ // We moved the entire application as-is, so bring over the
+ // previously derived ABI information.
+ pkg.applicationInfo.primaryCpuAbi = ps.primaryCpuAbiString;
+ pkg.applicationInfo.secondaryCpuAbi = ps.secondaryCpuAbiString;
+ }
+
} else if (!forwardLocked && !pkg.applicationInfo.isExternalAsec()) {
// Enable SCAN_NO_DEX flag to skip dexopt at a later stage
scanFlags |= SCAN_NO_DEX;