diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 58 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/Settings.java | 11 |
2 files changed, 5 insertions, 64 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 8606b3e94e49..4caebf441553 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -604,8 +604,6 @@ public class PackageManagerService extends IPackageManager.Stub */ private static final boolean DEFAULT_PACKAGE_PARSER_CACHE_ENABLED = true; - private static final int PROTECTION_MASK_BASE = 0xf; - final ServiceThread mHandlerThread; final PackageHandler mHandler; @@ -5497,12 +5495,11 @@ public class PackageManagerService extends IPackageManager.Stub @Override public void revokeRuntimePermission(String packageName, String name, int userId) { - revokeRuntimePermission(packageName, name, userId, false /* Only if not fixed by policy */, - mSettings.getPermission(name)); + revokeRuntimePermission(packageName, name, userId, false /* Only if not fixed by policy */); } private void revokeRuntimePermission(String packageName, String name, int userId, - boolean overridePolicy, BasePermission bp) { + boolean overridePolicy) { if (!sUserManager.exists(userId)) { Log.e(TAG, "No such user:" + userId); return; @@ -5528,6 +5525,7 @@ public class PackageManagerService extends IPackageManager.Stub || filterAppAccessLPr(ps, Binder.getCallingUid(), userId)) { throw new IllegalArgumentException("Unknown package: " + packageName); } + final BasePermission bp = mSettings.mPermissions.get(name); if (bp == null) { throw new IllegalArgumentException("Unknown permission: " + name); } @@ -5649,7 +5647,7 @@ public class PackageManagerService extends IPackageManager.Stub try { revokeRuntimePermission(packageName, permissionName, userId, - false, mSettings.getPermission(permissionName)); + false); } catch (IllegalArgumentException e) { Slog.e(TAG, "Could not revoke " + permissionName + " from " + packageName, e); @@ -12332,10 +12330,7 @@ public class PackageManagerService extends IPackageManager.Stub if (DEBUG_REMOVE) Log.d(TAG, " Activities: " + r); } - final ArrayList<String> allPackageNames = new ArrayList<>(mPackages.keySet()); - N = pkg.permissions.size(); - List<BasePermission> bps = new ArrayList<BasePermission>(N); r = null; for (i=0; i<N; i++) { PackageParser.Permission p = pkg.permissions.get(i); @@ -12344,10 +12339,6 @@ public class PackageManagerService extends IPackageManager.Stub bp = mSettings.mPermissionTrees.get(p.info.name); } if (bp != null && bp.perm == p) { - if (((p.info.protectionLevel & PROTECTION_MASK_BASE) & - PermissionInfo.PROTECTION_DANGEROUS) != 0) { - bps.add(bp); - } bp.perm = null; if (DEBUG_REMOVE && chatty) { if (r == null) { @@ -12365,45 +12356,6 @@ public class PackageManagerService extends IPackageManager.Stub } } } - - AsyncTask.execute(() -> { - final int numRemovedPermissions = bps.size(); - for (int permissionNum = 0; permissionNum < numRemovedPermissions; permissionNum++) { - final int[] userIds = mUserManagerInternal.getUserIds(); - final int numUserIds = userIds.length; - - final int numPackages = allPackageNames.size(); - for (int packageNum = 0; packageNum < numPackages; packageNum++) { - final String packageName = allPackageNames.get(packageNum); - final PackageManagerInternal packageManagerInt = - LocalServices.getService(PackageManagerInternal.class); - final ApplicationInfo applicationInfo = packageManagerInt.getApplicationInfo( - packageName, 0, Process.SYSTEM_UID, UserHandle.USER_SYSTEM); - if (applicationInfo != null - && applicationInfo.targetSdkVersion < Build.VERSION_CODES.M) { - continue; - } - for (int userIdNum = 0; userIdNum < numUserIds; userIdNum++) { - final int userId = userIds[userIdNum]; - final String permissionName = bps.get(permissionNum).name; - if (checkPermission(permissionName, packageName, - userId) == PackageManager.PERMISSION_GRANTED) { - try { - revokeRuntimePermission(packageName, - permissionName, - userId, - false, - bps.get(permissionNum)); - } catch (IllegalArgumentException e) { - Slog.e(TAG, "Could not revoke " + permissionName + " from " - + packageName, e); - } - } - } - } - } - }); - if (r != null) { if (DEBUG_REMOVE) Log.d(TAG, " Permissions: " + r); } @@ -24822,7 +24774,7 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); public void revokeRuntimePermission(String packageName, String name, int userId, boolean overridePolicy) { PackageManagerService.this.revokeRuntimePermission(packageName, name, userId, - overridePolicy, mSettings.getPermission(name)); + overridePolicy); } @Override diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 1f8990bd39e7..45d0c585627b 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -448,17 +448,6 @@ final class Settings { mBackupStoppedPackagesFilename = new File(mSystemDir, "packages-stopped-backup.xml"); } - public @Nullable BasePermission getPermission(@NonNull String permName) { - synchronized (mLock) { - return getPermissionLocked(permName); - } - } - - @GuardedBy("mLock") - @Nullable BasePermission getPermissionLocked(@NonNull String permName) { - return mPermissions.get(permName); - } - PackageSetting getPackageLPr(String pkgName) { return mPackages.get(pkgName); } |