From a23b25cd1a99d2ae4bd4a229b8a9ce3715712bc0 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Thu, 3 Dec 2020 16:32:20 -0800 Subject: [PATCH] Remove obsolete is/setPermissionEnforced(). isPermissionEnforced() always returns true and is only exposed on AIDL and there is actually no API, so it is directly removed. setPermissionEnforced() currently doesn't affect anything so its remaining implementation is removed as well, and we consider all permissions enforced when needed for compatibility of dumping. Bug: 158736025 Test: presubmit Change-Id: I0584553ac0171147b6f131b5359ddb2964113a1d --- .../permission/IPermissionManager.aidl | 4 --- .../content/pm/PackageManagerInternal.java | 3 -- .../server/pm/PackageManagerService.java | 12 ------- .../server/pm/PackageManagerShellCommand.java | 2 +- .../java/com/android/server/pm/Settings.java | 16 ++-------- .../permission/PermissionManagerService.java | 32 ------------------- 6 files changed, 3 insertions(+), 66 deletions(-) diff --git a/core/java/android/permission/IPermissionManager.aidl b/core/java/android/permission/IPermissionManager.aidl index 9855a9a98cfb7..a94077dd7ad67 100644 --- a/core/java/android/permission/IPermissionManager.aidl +++ b/core/java/android/permission/IPermissionManager.aidl @@ -87,10 +87,6 @@ interface IPermissionManager { void revokeDefaultPermissionsFromLuiApps(in String[] packageNames, int userId); - void setPermissionEnforced(String permName, boolean enforced); - - boolean isPermissionEnforced(String permName); - boolean shouldShowRequestPermissionRationale(String permName, String packageName, int userId); diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java index 6989e320f4653..53bfcec11a60c 100644 --- a/services/core/java/android/content/pm/PackageManagerInternal.java +++ b/services/core/java/android/content/pm/PackageManagerInternal.java @@ -949,9 +949,6 @@ public abstract class PackageManagerInternal { /** Returns whether or not permissions need to be upgraded for the given user */ public abstract boolean isPermissionUpgradeNeeded(@UserIdInt int userId); - /** Sets the enforcement of reading external storage */ - public abstract void setReadExternalStorageEnforced(boolean enforced); - /** * Allows the integrity component to respond to the * {@link Intent#ACTION_PACKAGE_NEEDS_INTEGRITY_VERIFICATION package verification diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 91b41f87c0ad2..b13de35df7f3a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -25884,18 +25884,6 @@ public class PackageManagerService extends IPackageManager.Stub } } - @Override - public void setReadExternalStorageEnforced(boolean enforced) { - synchronized (mLock) { - if (mSettings.mReadExternalStorageEnforced != null - && mSettings.mReadExternalStorageEnforced == enforced) { - return; - } - mSettings.mReadExternalStorageEnforced = enforced ? Boolean.TRUE : Boolean.FALSE; - writeSettingsLPrTEMP(); - } - } - @Override public void setIntegrityVerificationResult(int verificationId, int verificationResult) { final Message msg = mHandler.obtainMessage(INTEGRITY_VERIFICATION_COMPLETE); diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index fa100dca0efab..318b2293a13a8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -2324,7 +2324,7 @@ class PackageManagerShellCommand extends ShellCommand { getErrPrintWriter().println("Error: no enforcement specified"); return 1; } - mPermissionManager.setPermissionEnforced(permission, Boolean.parseBoolean(enforcedRaw)); + // Permissions are always enforced now. return 0; } diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index cb4c6a9fd564f..2d5034e624cd8 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -362,8 +362,6 @@ public final class Settings { } } - Boolean mReadExternalStorageEnforced; - /** Device identity for the purpose of package verification. */ private VerifierDeviceIdentity mVerifierDeviceIdentity; @@ -2342,13 +2340,6 @@ public final class Settings { serializer.endTag(null, "verifier"); } - if (mReadExternalStorageEnforced != null) { - serializer.startTag(null, TAG_READ_EXTERNAL_STORAGE); - serializer.attribute( - null, ATTR_ENFORCEMENT, mReadExternalStorageEnforced ? "1" : "0"); - serializer.endTag(null, TAG_READ_EXTERNAL_STORAGE); - } - serializer.startTag(null, "permission-trees"); mPermissions.writePermissionTrees(serializer); serializer.endTag(null, "permission-trees"); @@ -2959,9 +2950,7 @@ public final class Settings { + e.getMessage()); } } else if (TAG_READ_EXTERNAL_STORAGE.equals(tagName)) { - final String enforcement = parser.getAttributeValue(null, ATTR_ENFORCEMENT); - mReadExternalStorageEnforced = - "1".equals(enforcement) ? Boolean.TRUE : Boolean.FALSE; + // No longer used. } else if (tagName.equals("keyset-settings")) { mKeySetManagerService.readKeySetsLPw(parser, mKeySetRefs); } else if (TAG_VERSION.equals(tagName)) { @@ -4900,8 +4889,7 @@ public final class Settings { DumpState dumpState) { LegacyPermissionSettings.dumpPermissions(pw, packageName, permissionNames, mPermissionDataProvider.getLegacyPermissions(), - mPermissionDataProvider.getAllAppOpPermissionPackages(), - (mReadExternalStorageEnforced == Boolean.TRUE), dumpState); + mPermissionDataProvider.getAllAppOpPermissionPackages(), true, dumpState); } void dumpSharedUsersLPr(PrintWriter pw, String packageName, ArraySet permissionNames, diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 4847504abd417..fe461b2147a55 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -2061,38 +2061,6 @@ public class PermissionManagerService extends IPermissionManager.Stub { .revokeDefaultPermissionsFromLuiApps(packageNames, userId)); } - @Override - public void setPermissionEnforced(String permName, boolean enforced) { - // TODO: Now that we no longer change GID for storage, this should to away. - mContext.enforceCallingOrSelfPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS, - "setPermissionEnforced"); - if (READ_EXTERNAL_STORAGE.equals(permName)) { - mPackageManagerInt.setReadExternalStorageEnforced(enforced); - // kill any non-foreground processes so we restart them and - // grant/revoke the GID. - final IActivityManager am = ActivityManager.getService(); - if (am != null) { - final long token = Binder.clearCallingIdentity(); - try { - am.killProcessesBelowForeground("setPermissionEnforcement"); - } catch (RemoteException e) { - } finally { - Binder.restoreCallingIdentity(token); - } - } - } else { - throw new IllegalArgumentException("No selective enforcement for " + permName); - } - } - - /** @deprecated */ - @Override - @Deprecated - public boolean isPermissionEnforced(String permName) { - // allow instant applications - return true; - } - /** * This change makes it so that apps are told to show rationale for asking for background * location access every time they request.