Merge "Update the BroadcastQueue logic for runtime permissions" into sc-qpr1-dev

This commit is contained in:
TreeHugger Robot
2021-10-15 17:14:01 +00:00
committed by Android (Google) Code Review

View File

@@ -1568,17 +1568,23 @@ public final class BroadcastQueue {
perm = PackageManager.PERMISSION_DENIED; perm = PackageManager.PERMISSION_DENIED;
} }
if (perm == PackageManager.PERMISSION_GRANTED) { int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
if (appOp != AppOpsManager.OP_NONE) {
// When there is an app op associated with the permission,
// skip when both the permission and the app op are
// granted.
if ((perm == PackageManager.PERMISSION_GRANTED) && (
mService.getAppOpsManager().checkOpNoThrow(appOp,
info.activityInfo.applicationInfo.uid,
info.activityInfo.packageName)
== AppOpsManager.MODE_ALLOWED)) {
skip = true; skip = true;
break; break;
} }
} else {
int appOp = AppOpsManager.permissionToOpCode(excludedPermission); // When there is no app op associated with the permission,
if (appOp != AppOpsManager.OP_NONE) { // skip when permission is granted.
if (mService.getAppOpsManager().checkOpNoThrow(appOp, if (perm == PackageManager.PERMISSION_GRANTED) {
info.activityInfo.applicationInfo.uid,
info.activityInfo.packageName)
== AppOpsManager.MODE_ALLOWED) {
skip = true; skip = true;
break; break;
} }