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

Commit 03f23572 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix system server crash during movePackage"

parents f8697317 f958fee2
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ import android.content.pm.VersionedPackage;
import android.content.pm.dex.ArtManager;
import android.content.pm.dex.DexMetadataHelper;
import android.content.pm.dex.IArtManager;
import android.content.pm.parsing.ApkLiteParseUtils;
import android.content.pm.parsing.ParsingPackageUtils;
import android.content.pm.parsing.component.ParsedActivity;
import android.content.pm.parsing.component.ParsedInstrumentation;
@@ -248,6 +249,8 @@ import android.content.pm.parsing.component.ParsedPermissionGroup;
import android.content.pm.parsing.component.ParsedProcess;
import android.content.pm.parsing.component.ParsedProvider;
import android.content.pm.parsing.component.ParsedService;
import android.content.pm.parsing.result.ParseResult;
import android.content.pm.parsing.result.ParseTypeImpl;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.graphics.Bitmap;
@@ -15322,7 +15325,7 @@ public class PackageManagerService extends IPackageManager.Stub
        InstallParams(OriginInfo origin, MoveInfo move, IPackageInstallObserver2 observer,
                int installFlags, InstallSource installSource, String volumeUuid,
                UserHandle user, String packageAbiOverride) {
                UserHandle user, String packageAbiOverride, PackageLite packageLite) {
            super(user);
            this.origin = origin;
            this.move = move;
@@ -15341,7 +15344,7 @@ public class PackageManagerService extends IPackageManager.Stub
            this.forceQueryableOverride = false;
            this.mDataLoaderType = DataLoaderType.NONE;
            this.requiredInstalledVersionCode = PackageManager.VERSION_CODE_HIGHEST;
            this.mPackageLite = null;
            this.mPackageLite = packageLite;
        }
        InstallParams(File stagedDir, IPackageInstallObserver2 observer,
@@ -24182,8 +24185,12 @@ public class PackageManagerService extends IPackageManager.Stub
        final Message msg = mHandler.obtainMessage(INIT_COPY);
        final OriginInfo origin = OriginInfo.fromExistingFile(codeFile);
        final ParseTypeImpl input = ParseTypeImpl.forDefaultParsing();
        final ParseResult<PackageLite> ret = ApkLiteParseUtils.parsePackageLite(input,
                new File(origin.resolvedPath), /* flags */ 0);
        final PackageLite lite = ret.isSuccess() ? ret.getResult() : null;
        final InstallParams params = new InstallParams(origin, move, installObserver, installFlags,
                installSource, volumeUuid, user, packageAbiOverride);
                installSource, volumeUuid, user, packageAbiOverride, lite);
        params.setTraceMethod("movePackage").setTraceCookie(System.identityHashCode(params));
        msg.obj = params;
+1 −1
Original line number Diff line number Diff line
@@ -822,7 +822,7 @@ public class PackageManagerServiceUtils {
    public static PackageInfoLite getMinimalPackageInfo(Context context,
            PackageParser.PackageLite pkg, String packagePath, int flags, String abiOverride) {
        final PackageInfoLite ret = new PackageInfoLite();
        if (packagePath == null) {
        if (packagePath == null || pkg == null) {
            Slog.i(TAG, "Invalid package file " + packagePath);
            ret.recommendedInstallLocation = PackageHelper.RECOMMEND_FAILED_INVALID_APK;
            return ret;