Merge "Reset the profile when system application change version."
This commit is contained in:
@@ -9206,6 +9206,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)
|
||||
@@ -9491,6 +9514,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
// Verify certificates against what was last scanned
|
||||
collectCertificatesLI(ps, pkg, scanFile, policyFlags);
|
||||
|
||||
// Reset profile if the application version is changed
|
||||
maybeClearProfilesForUpgradesLI(ps, pkg);
|
||||
|
||||
/*
|
||||
* A new system app appeared, but we already had a non-system one of the
|
||||
* same name installed earlier.
|
||||
|
||||
Reference in New Issue
Block a user