diff options
| author | 2024-11-07 14:35:24 -0800 | |
|---|---|---|
| committer | 2024-11-08 22:21:41 +0000 | |
| commit | 97e36731250cfcf739f085360efad94e5cded07b (patch) | |
| tree | 3f80afa545e67a1388cda26cd08d2cd78b8115b3 | |
| parent | 6349ad595039ec4cb2fefa367031d72ee7da5130 (diff) | |
Cleanup usage of use_permission_manager_for_broadcast_delivery_check.
Bug: 315468967
Test: atest ./tests/tests/content/src/android/content/cts/ContextTest.java
Flag: EXEMPT removing com.android.server.am.use_permission_manager_for_broadcast_delivery_check
Change-Id: I88292be394956deab581aeb56cadb8f8a825131c
| -rw-r--r-- | services/core/java/com/android/server/am/BroadcastSkipPolicy.java | 100 |
1 files changed, 20 insertions, 80 deletions
diff --git a/services/core/java/com/android/server/am/BroadcastSkipPolicy.java b/services/core/java/com/android/server/am/BroadcastSkipPolicy.java index f4a931f89551..d2af84cf3d30 100644 --- a/services/core/java/com/android/server/am/BroadcastSkipPolicy.java +++ b/services/core/java/com/android/server/am/BroadcastSkipPolicy.java @@ -19,7 +19,6 @@ package com.android.server.am; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_PERMISSIONS_REVIEW; import static com.android.server.am.ActivityManagerService.checkComponentPermission; import static com.android.server.am.BroadcastQueue.TAG; -import static com.android.server.am.Flags.usePermissionManagerForBroadcastDeliveryCheck; import android.annotation.NonNull; import android.annotation.Nullable; @@ -289,33 +288,16 @@ public class BroadcastSkipPolicy { if (info.activityInfo.applicationInfo.uid != Process.SYSTEM_UID && r.requiredPermissions != null && r.requiredPermissions.length > 0) { - final AttributionSource[] attributionSources; - if (usePermissionManagerForBroadcastDeliveryCheck()) { - attributionSources = createAttributionSourcesForResolveInfo(info); - } else { - attributionSources = null; - } + final AttributionSource[] attributionSources = + createAttributionSourcesForResolveInfo(info); for (int i = 0; i < r.requiredPermissions.length; i++) { String requiredPermission = r.requiredPermissions[i]; - try { - if (usePermissionManagerForBroadcastDeliveryCheck()) { - perm = hasPermissionForDataDelivery( - requiredPermission, - "Broadcast delivered to " + info.activityInfo.name, - attributionSources) - ? PackageManager.PERMISSION_GRANTED - : PackageManager.PERMISSION_DENIED; - } else { - perm = AppGlobals.getPackageManager() - .checkPermission( - requiredPermission, - info.activityInfo.applicationInfo.packageName, - UserHandle - .getUserId(info.activityInfo.applicationInfo.uid)); - } - } catch (RemoteException e) { - perm = PackageManager.PERMISSION_DENIED; - } + perm = hasPermissionForDataDelivery( + requiredPermission, + "Broadcast delivered to " + info.activityInfo.name, + attributionSources) + ? PackageManager.PERMISSION_GRANTED + : PackageManager.PERMISSION_DENIED; if (perm != PackageManager.PERMISSION_GRANTED) { return "Permission Denial: receiving " + r.intent + " to " @@ -324,15 +306,6 @@ public class BroadcastSkipPolicy { + " due to sender " + r.callerPackage + " (uid " + r.callingUid + ")"; } - if (!usePermissionManagerForBroadcastDeliveryCheck()) { - int appOp = AppOpsManager.permissionToOpCode(requiredPermission); - if (appOp != AppOpsManager.OP_NONE && appOp != r.appOp) { - if (!noteOpForManifestReceiver(appOp, r, info, component)) { - return "Skipping delivery to " + info.activityInfo.packageName - + " due to required appop " + appOp; - } - } - } } } if (r.appOp != AppOpsManager.OP_NONE) { @@ -452,35 +425,20 @@ public class BroadcastSkipPolicy { // Check that the receiver has the required permission(s) to receive this broadcast. if (r.requiredPermissions != null && r.requiredPermissions.length > 0) { - final AttributionSource attributionSource; - if (usePermissionManagerForBroadcastDeliveryCheck()) { - attributionSource = - new AttributionSource.Builder(filter.receiverList.uid) - .setPid(filter.receiverList.pid) - .setPackageName(filter.packageName) - .setAttributionTag(filter.featureId) - .build(); - } else { - attributionSource = null; - } + final AttributionSource attributionSource = + new AttributionSource.Builder(filter.receiverList.uid) + .setPid(filter.receiverList.pid) + .setPackageName(filter.packageName) + .setAttributionTag(filter.featureId) + .build(); for (int i = 0; i < r.requiredPermissions.length; i++) { String requiredPermission = r.requiredPermissions[i]; - final int perm; - if (usePermissionManagerForBroadcastDeliveryCheck()) { - perm = hasPermissionForDataDelivery( - requiredPermission, - "Broadcast delivered to registered receiver " + filter.receiverId, - attributionSource) - ? PackageManager.PERMISSION_GRANTED - : PackageManager.PERMISSION_DENIED; - } else { - perm = checkComponentPermission( - requiredPermission, - filter.receiverList.pid, - filter.receiverList.uid, - -1 /* owningUid */, - true /* exported */); - } + final int perm = hasPermissionForDataDelivery( + requiredPermission, + "Broadcast delivered to registered receiver " + filter.receiverId, + attributionSource) + ? PackageManager.PERMISSION_GRANTED + : PackageManager.PERMISSION_DENIED; if (perm != PackageManager.PERMISSION_GRANTED) { return "Permission Denial: receiving " + r.intent.toString() @@ -491,24 +449,6 @@ public class BroadcastSkipPolicy { + " due to sender " + r.callerPackage + " (uid " + r.callingUid + ")"; } - if (!usePermissionManagerForBroadcastDeliveryCheck()) { - int appOp = AppOpsManager.permissionToOpCode(requiredPermission); - if (appOp != AppOpsManager.OP_NONE && appOp != r.appOp - && mService.getAppOpsManager().noteOpNoThrow(appOp, - filter.receiverList.uid, filter.packageName, filter.featureId, - "Broadcast delivered to registered receiver " + filter.receiverId) - != AppOpsManager.MODE_ALLOWED) { - return "Appop Denial: receiving " - + r.intent.toString() - + " to " + filter.receiverList.app - + " (pid=" + filter.receiverList.pid - + ", uid=" + filter.receiverList.uid + ")" - + " requires appop " + AppOpsManager.permissionToOp( - requiredPermission) - + " due to sender " + r.callerPackage - + " (uid " + r.callingUid + ")"; - } - } } } if ((r.requiredPermissions == null || r.requiredPermissions.length == 0)) { |