Merge "Update the BroadcastQueue logic for runtime permissions"
This commit is contained in:
@@ -1568,17 +1568,23 @@ public final class BroadcastQueue {
|
||||
perm = PackageManager.PERMISSION_DENIED;
|
||||
}
|
||||
|
||||
if (perm == PackageManager.PERMISSION_GRANTED) {
|
||||
skip = true;
|
||||
break;
|
||||
}
|
||||
|
||||
int appOp = AppOpsManager.permissionToOpCode(excludedPermission);
|
||||
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.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;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user