summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android Build Merger (Role) <noreply-android-build-merger@google.com> 2018-09-28 20:33:45 +0000
committer Android Build Merger (Role) <noreply-android-build-merger@google.com> 2018-09-28 20:33:45 +0000
commit94e1a09bc6c0b83550bf7d8bc7d82cee77941efb (patch)
treeed08dc65a0f8895a6dea2c55f39d74e0da85a9c1
parente58385ab65dccdf8f8b89ccd27915aa7649e8505 (diff)
parent95a3e918461bf6202d0360ca53340aba236bad57 (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.java57
-rw-r--r--services/core/java/com/android/server/pm/Settings.java11
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) {