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

Commit fa2026c5 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refactor scanInstallPackages" into main

parents 1bc8ac38 f13bcca8
Loading
Loading
Loading
Loading
+63 −69
Original line number Diff line number Diff line
@@ -1205,8 +1205,6 @@ final class InstallPackageHelper {

    private boolean scanInstallPackages(List<InstallRequest> requests,
            Map<String, Boolean> createdAppId, Map<String, Settings.VersionInfo> versionInfos) {
        // TODO(b/362840929): remove locker
        try (PackageManagerTracedLock installLock = mPm.mInstallLock.acquireLock()) {
        final Set<String> scannedPackages = new ArraySet<>(requests.size());
        for (InstallRequest request : requests) {
            final ParsedPackage packageToScan = request.getParsedPackage();
@@ -1219,7 +1217,7 @@ final class InstallPackageHelper {
            final String packageName = packageToScan.getPackageName();
            try {
                request.onScanStarted();
                    final ScanResult scanResult = scanPackageTracedLI(request.getParsedPackage(),
                final ScanResult scanResult = scanPackageTraced(request.getParsedPackage(),
                        request.getParseFlags(), request.getScanFlags(),
                        System.currentTimeMillis(), request.getUser(),
                        request.getAbiOverride());
@@ -1271,7 +1269,6 @@ final class InstallPackageHelper {
                request.setResponsibleInstallerTitles(responsibleInstallerTitles);
            }
        }
        }
        return true;
    }

@@ -1366,7 +1363,6 @@ final class InstallPackageHelper {
        }
    }

    @GuardedBy("mPm.mInstallLock")
    private boolean checkNoAppStorageIsConsistent(AndroidPackage oldPkg, AndroidPackage newPkg) {
        if (oldPkg == null) {
            // New install, nothing to check against.
@@ -4119,14 +4115,13 @@ final class InstallPackageHelper {
        }
    }

    @GuardedBy("mPm.mInstallLock")
    private ScanResult scanPackageTracedLI(ParsedPackage parsedPackage,
    private ScanResult scanPackageTraced(ParsedPackage parsedPackage,
            final @ParsingPackageUtils.ParseFlags int parseFlags,
            @PackageManagerService.ScanFlags int scanFlags, long currentTime,
            @Nullable UserHandle user, String cpuAbiOverride) throws PackageManagerException {
        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "scanPackage");
        try {
            return scanPackageNewLI(parsedPackage, parseFlags, scanFlags, currentTime, user,
            return scanPackageNew(parsedPackage, parseFlags, scanFlags, currentTime, user,
                    cpuAbiOverride);
        } finally {
            Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
@@ -4203,8 +4198,7 @@ final class InstallPackageHelper {
                realPkgName, parseFlags, scanFlags, isPlatformPackage, user, cpuAbiOverride);
    }

    @GuardedBy("mPm.mInstallLock")
    private ScanResult scanPackageNewLI(@NonNull ParsedPackage parsedPackage,
    private ScanResult scanPackageNew(@NonNull ParsedPackage parsedPackage,
            final @ParsingPackageUtils.ParseFlags int parseFlags,
            @PackageManagerService.ScanFlags int scanFlags, long currentTime,
            @Nullable UserHandle user, String cpuAbiOverride)
@@ -4235,7 +4229,7 @@ final class InstallPackageHelper {
                    initialScanRequest.mOriginalPkgSetting, initialScanRequest.mRealPkgName,
                    parseFlags, scanFlags, initialScanRequest.mIsPlatformPackage, user,
                    cpuAbiOverride);
            return ScanPackageUtils.scanPackageOnlyLI(request, mPm.mInjector, mPm.mFactoryTest,
            return ScanPackageUtils.scanPackageOnly(request, mPm.mInjector, mPm.mFactoryTest,
                    currentTime);
        }
    }
@@ -4289,7 +4283,7 @@ final class InstallPackageHelper {
                ScanPackageUtils.applyPolicy(parsedPackage, scanFlags,
                        mPm.getPlatformPackage(), true);
                final ScanResult scanResult =
                        ScanPackageUtils.scanPackageOnlyLI(request, mPm.mInjector,
                        ScanPackageUtils.scanPackageOnly(request, mPm.mInjector,
                                mPm.mFactoryTest, -1L);
                if (scanResult.mExistingSettingCopied
                        && scanResult.mRequest.mPkgSetting != null) {
@@ -4481,7 +4475,7 @@ final class InstallPackageHelper {

        final long firstInstallTime = Flags.fixSystemAppsFirstInstallTime()
                ? System.currentTimeMillis() : 0;
        final ScanResult scanResult = scanPackageNewLI(parsedPackage, parseFlags,
        final ScanResult scanResult = scanPackageNew(parsedPackage, parseFlags,
                scanFlags | SCAN_UPDATE_SIGNATURE, firstInstallTime, user, null);
        return new Pair<>(scanResult, shouldHideSystemApp);
    }
+1 −3
Original line number Diff line number Diff line
@@ -75,7 +75,6 @@ import android.util.Slog;
import android.util.apk.ApkSignatureVerifier;
import android.util.jar.StrictJarFile;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.pm.parsing.pkg.ParsedPackage;
import com.android.internal.pm.pkg.component.ComponentMutateUtils;
@@ -120,10 +119,9 @@ final class ScanPackageUtils {
     * @param currentTime The current time, in millis
     * @return The results of the scan
     */
    @GuardedBy("mPm.mInstallLock")
    @VisibleForTesting
    @NonNull
    public static ScanResult scanPackageOnlyLI(@NonNull ScanRequest request,
    public static ScanResult scanPackageOnly(@NonNull ScanRequest request,
            PackageManagerServiceInjector injector,
            boolean isUnderFactoryTest, long currentTime)
            throws PackageManagerException {
+2 −2
Original line number Diff line number Diff line
@@ -511,7 +511,7 @@ public class ScanTests {
                .addUsesPermission(
                        new ParsedUsesPermissionImpl(Manifest.permission.FACTORY_TEST, 0));

        final ScanResult scanResult = ScanPackageUtils.scanPackageOnlyLI(
        final ScanResult scanResult = ScanPackageUtils.scanPackageOnly(
                createBasicScanRequestBuilder(basicPackage).build(),
                mMockInjector,
                true /*isUnderFactoryTest*/,
@@ -559,7 +559,7 @@ public class ScanTests {

    private ScanResult executeScan(
            ScanRequest scanRequest) throws PackageManagerException {
        ScanResult result = ScanPackageUtils.scanPackageOnlyLI(
        ScanResult result = ScanPackageUtils.scanPackageOnly(
                scanRequest,
                mMockInjector,
                false /*isUnderFactoryTest*/,