summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sudheer Shanka <sudheersai@google.com> 2024-11-07 14:35:24 -0800
committer Sudheer Shanka <sudheersai@google.com> 2024-11-08 22:21:41 +0000
commit97e36731250cfcf739f085360efad94e5cded07b (patch)
tree3f80afa545e67a1388cda26cd08d2cd78b8115b3
parent6349ad595039ec4cb2fefa367031d72ee7da5130 (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.java100
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)) {