Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40cda8ef authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Inherit ABI when moving existing install.

Previously installed apps are moved between volumes as an complete
package, including any previously unpacked native libraries.  This
means we need to inherit any previously derived ABI when moving.

Bug: 22093837
Change-Id: I7656e338affa44e7f997fe4aa95bb297c0acc165
parent 4fa85b7c
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -12271,6 +12271,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;