Merge "Update the BroadcastQueue logic for runtime permissions" am: 1465700c00
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1858818 Change-Id: I392126446bcc62a8f5d05d54cd1ed94c708ad2f7
This commit is contained in:
@@ -1568,17 +1568,23 @@ public final class BroadcastQueue {
|
|||||||
perm = PackageManager.PERMISSION_DENIED;
|
perm = PackageManager.PERMISSION_DENIED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (perm == PackageManager.PERMISSION_GRANTED) {
|
|
||||||
skip = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
|
int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
|
||||||
if (appOp != AppOpsManager.OP_NONE) {
|
if (appOp != AppOpsManager.OP_NONE) {
|
||||||
if (mService.getAppOpsManager().checkOpNoThrow(appOp,
|
// 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.applicationInfo.uid,
|
||||||
info.activityInfo.packageName)
|
info.activityInfo.packageName)
|
||||||
== AppOpsManager.MODE_ALLOWED) {
|
== AppOpsManager.MODE_ALLOWED)) {
|
||||||
|
skip = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// When there is no app op associated with the permission,
|
||||||
|
// skip when permission is granted.
|
||||||
|
if (perm == PackageManager.PERMISSION_GRANTED) {
|
||||||
skip = true;
|
skip = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user