From 34d1db18ddfdb1fd709a9dae46959ed15d134d16 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Wed, 29 Jul 2020 20:08:26 -0700 Subject: [PATCH] Check permission via PermissionManagerService in PackageManagerService. As the first step towards moving PermissionsState out of package Setting. The usages for GIDs and installing a system package after uninstalling its update will be addressed in another change. Bug: 158736025 Test: presubmit Test: System boots Change-Id: Ic45a97eabb6957836d691ac1d3c9092648b0b523 --- .../server/pm/PackageManagerService.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2a59893aa9f5b..cd505e0c917fe 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4206,13 +4206,9 @@ public class PackageManagerService extends IPackageManager.Stub Iterator iter = matches.iterator(); while (iter.hasNext()) { final ResolveInfo rInfo = iter.next(); - final PackageSetting ps = mSettings.mPackages.get(rInfo.activityInfo.packageName); - if (ps != null) { - final PermissionsState permissionsState = ps.getPermissionsState(); - if (permissionsState.hasPermission(Manifest.permission.INSTALL_PACKAGES, 0) - || Build.IS_ENG) { - continue; - } + if (checkPermission(Manifest.permission.INSTALL_PACKAGES, + rInfo.activityInfo.packageName, 0) == PERMISSION_GRANTED || Build.IS_ENG) { + continue; } iter.remove(); } @@ -8592,10 +8588,9 @@ public class PackageManagerService extends IPackageManager.Stub private void addPackageHoldingPermissions(ArrayList list, PackageSetting ps, String[] permissions, boolean[] tmp, int flags, int userId) { int numMatch = 0; - final PermissionsState permissionsState = ps.getPermissionsState(); for (int i=0; i