Merge "Update the BroadcastQueue logic for runtime permissions" into sc-qpr1-dev am: 5f5ed92f58
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16060847 Change-Id: I5981cf157881084b97490a3cdf8b00c686662b84
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