Loading services/core/java/com/android/server/pm/PackageManagerService.java +5 −53 Original line number Diff line number Diff line Loading @@ -624,8 +624,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; Loading Loading @@ -5787,12 +5785,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; Loading @@ -5818,6 +5815,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); } Loading Loading @@ -5939,7 +5937,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); Loading Loading @@ -12825,10 +12823,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); Loading @@ -12837,10 +12832,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) { Loading @@ -12858,45 +12849,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); } Loading Loading @@ -25604,7 +25556,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 services/core/java/com/android/server/pm/Settings.java +0 −11 Original line number Diff line number Diff line Loading @@ -449,17 +449,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); } Loading Loading
services/core/java/com/android/server/pm/PackageManagerService.java +5 −53 Original line number Diff line number Diff line Loading @@ -624,8 +624,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; Loading Loading @@ -5787,12 +5785,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; Loading @@ -5818,6 +5815,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); } Loading Loading @@ -5939,7 +5937,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); Loading Loading @@ -12825,10 +12823,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); Loading @@ -12837,10 +12832,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) { Loading @@ -12858,45 +12849,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); } Loading Loading @@ -25604,7 +25556,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
services/core/java/com/android/server/pm/Settings.java +0 −11 Original line number Diff line number Diff line Loading @@ -449,17 +449,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); } Loading