diff options
| author | 2018-09-28 20:33:45 +0000 | |
|---|---|---|
| committer | 2018-09-28 20:33:45 +0000 | |
| commit | 94e1a09bc6c0b83550bf7d8bc7d82cee77941efb (patch) | |
| tree | ed08dc65a0f8895a6dea2c55f39d74e0da85a9c1 | |
| parent | e58385ab65dccdf8f8b89ccd27915aa7649e8505 (diff) | |
| parent | 95a3e918461bf6202d0360ca53340aba236bad57 (diff) | |
[automerger] RESTRICT AUTOMERGE: Revert "RESTRICT AUTOMERGE: Revoke permissions defined in a to-be removed package." am: 95a3e91846
Change-Id: Ib9aa56a12fff0fb53848b9856fb89c6bb4de3793
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 57 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/Settings.java | 11 |
2 files changed, 3 insertions, 65 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 3a62088baf29..69861aae1d81 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -511,8 +511,6 @@ public class PackageManagerService extends IPackageManager.Stub { /** Special library name that skips shared libraries check during compilation. */ private static final String SKIP_SHARED_LIBRARY_CHECK = "&"; - private static final int PROTECTION_MASK_BASE = 0xf; - final ServiceThread mHandlerThread; final PackageHandler mHandler; @@ -4074,11 +4072,6 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public void revokeRuntimePermission(String packageName, String name, int userId) { - revokeRuntimePermission(packageName, name, userId, mSettings.getPermission(name)); - } - - private void revokeRuntimePermission(String packageName, String name, int userId, - BasePermission bp) { if (!sUserManager.exists(userId)) { Log.e(TAG, "No such user:" + userId); return; @@ -4099,6 +4092,8 @@ public class PackageManagerService extends IPackageManager.Stub { if (pkg == null) { throw new IllegalArgumentException("Unknown package: " + packageName); } + + final BasePermission bp = mSettings.mPermissions.get(name); if (bp == null) { throw new IllegalArgumentException("Unknown permission: " + name); } @@ -4215,8 +4210,7 @@ public class PackageManagerService extends IPackageManager.Stub { oldPermissionGroupName, "to", newPermissionGroupName); try { - revokeRuntimePermission(packageName, permissionName, userId, - mSettings.getPermission(permissionName)); + revokeRuntimePermission(packageName, permissionName, userId); } catch (IllegalArgumentException e) { Slog.e(TAG, "Could not revoke " + permissionName + " from " + packageName, e); @@ -9704,10 +9698,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); @@ -9716,10 +9707,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) { @@ -9737,44 +9724,6 @@ public class PackageManagerService extends IPackageManager.Stub { } } } - - AsyncTask.execute(() -> { - final int numRemovedPermissions = bps.size(); - for (int permissionNum = 0; permissionNum < numRemovedPermissions; permissionNum++) { - final int[] userIds = sUserManager.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, 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, - 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); } diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index dd384c6992df..5126305dd0d1 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -454,17 +454,6 @@ final class Settings { return mPackages.get(name); } - public BasePermission getPermission(@NonNull String permName) { - synchronized (mLock) { - return getPermissionLocked(permName); - } - } - - @GuardedBy("mLock") - BasePermission getPermissionLocked(@NonNull String permName) { - return mPermissions.get(permName); - } - void setInstallStatus(String pkgName, final int status) { PackageSetting p = mPackages.get(pkgName); if(p != null) { |