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

Commit db348dd7 authored by android-build-team Robot's avatar android-build-team Robot Committed by android-build-merger
Browse files

Merge "Reset the profile when system application change version." into pi-dev am: d24c5de8

am: df084360

Change-Id: Icf1ef92588e711c599409554830125e7c30cfcbd
parents 4d11d49a df084360
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -8515,6 +8515,29 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    /**
     * Clear the package profile if this was an upgrade and the package
     * version was updated.
     */
    private void maybeClearProfilesForUpgradesLI(
            @Nullable PackageSetting originalPkgSetting,
            @NonNull PackageParser.Package currentPkg) {
        if (originalPkgSetting == null || !isUpgrade()) {
          return;
        }
        if (originalPkgSetting.versionCode == currentPkg.mVersionCode) {
          return;
        }
        clearAppProfilesLIF(currentPkg, UserHandle.USER_ALL);
        if (DEBUG_INSTALL) {
            Slog.d(TAG, originalPkgSetting.name
                  + " clear profile due to version change "
                  + originalPkgSetting.versionCode + " != "
                  + currentPkg.mVersionCode);
        }
    }
    /**
     *  Traces a package scan.
     *  @see #scanPackageLI(File, int, int, long, UserHandle)
@@ -8797,6 +8820,13 @@ public class PackageManagerService extends IPackageManager.Stub
                (forceCollect && canSkipFullPackageVerification(pkg));
        collectCertificatesLI(pkgSetting, pkg, forceCollect, skipVerify);
        // Reset profile if the application version is changed
        maybeClearProfilesForUpgradesLI(pkgSetting, pkg);
        /*
         * A new system app appeared, but we already had a non-system one of the
         * same name installed earlier.
         */
        boolean shouldHideSystemApp = false;
        // A new application appeared on /system, but, we already have a copy of
        // the application installed on /data.