From 95a3e918461bf6202d0360ca53340aba236bad57 Mon Sep 17 00:00:00 2001 From: Atanas Kirilov Date: Fri, 28 Sep 2018 20:16:49 +0000 Subject: RESTRICT AUTOMERGE: Revert "RESTRICT AUTOMERGE: Revoke permissions defined in a to-be removed package." This reverts commit fa69d725eb99b8c20a15135304bf5be4ea811573. Reason for revert: triggers other issue. Bug: 114365189 Change-Id: I746c74b00f4524575279cdaa831435d12425de20 --- .../android/server/pm/PackageManagerService.java | 57 ++-------------------- .../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 8c5f196a4f79..949307412a0b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -512,8 +512,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; @@ -4228,11 +4226,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; @@ -4253,6 +4246,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); } @@ -4369,8 +4364,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); @@ -9833,10 +9827,7 @@ public class PackageManagerService extends IPackageManager.Stub { if (DEBUG_REMOVE) Log.d(TAG, " Activities: " + r); } - final ArrayList allPackageNames = new ArrayList<>(mPackages.keySet()); - N = pkg.permissions.size(); - List bps = new ArrayList(N); r = null; for (i=0; i { - 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 530f7bcbcfc6..dfd6dfe1c775 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) { -- cgit v1.2.3-59-g8ed1b