Update for Utils.isSystemPackage()

And we also no longer need to load the PackageInfos with the deprecated
flag PackageManager.GET_SIGNATURES.

Bug: 235727273
Test: Manually with Settings App
Change-Id: Id80c40a309e91d4766582375d2c1e25a6f8cf441
This commit is contained in:
Chaohui Wang
2022-11-04 17:48:15 +08:00
parent d7194ad75d
commit dc46bc9077
9 changed files with 27 additions and 39 deletions

View File

@@ -352,7 +352,6 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
PackageManager.MATCH_DISABLED_COMPONENTS |
PackageManager.MATCH_ANY_USER |
PackageManager.GET_SIGNATURES |
PackageManager.GET_PERMISSIONS);
mPackageName = mAppEntry.info.packageName;
@@ -394,7 +393,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
// We don't allow uninstalling DO/PO on *any* users if it's a system app, because
// "uninstall" is actually "downgrade to the system version + disable", and "downgrade"
// will clear data on all users.
if (isSystemPackage(mActivity.getResources(), mPm, mPackageInfo)) {
if (isSystemPackage(mActivity.getResources(), mPm, mPackageInfo.applicationInfo)) {
if (Utils.isProfileOrDeviceOwner(mUserManager, mDpm, mPackageInfo.packageName)) {
enabled = false;
}
@@ -563,7 +562,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
// by not allowing disabling of apps signed with the
// system cert and any launcher app in the system.
if (mHomePackages.contains(mAppEntry.info.packageName)
|| isSystemPackage(mActivity.getResources(), mPm, mPackageInfo)) {
|| isSystemPackage(mActivity.getResources(), mPm, mPackageInfo.applicationInfo)) {
// Disable button for core system applications.
mButtonsPref.setButton2Text(R.string.disable_text)
.setButton2Icon(R.drawable.ic_settings_disable);
@@ -582,8 +581,8 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp
}
@VisibleForTesting
boolean isSystemPackage(Resources resources, PackageManager pm, PackageInfo packageInfo) {
return Utils.isSystemPackage(resources, pm, packageInfo);
boolean isSystemPackage(Resources resources, PackageManager pm, ApplicationInfo app) {
return Utils.isSystemPackage(resources, pm, app);
}
private boolean isDisabledUntilUsed() {