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

am: df084360ce

Change-Id: Icf1ef92588e711c599409554830125e7c30cfcbd
This commit is contained in:
android-build-team Robot
2018-05-07 19:24:37 -07:00
committed by android-build-merger

View File

@@ -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.