Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58c6e7f1 authored by Hui Wang's avatar Hui Wang Committed by Automerger Merge Worker
Browse files

Merge "Update the BroadcastQueue logic for runtime permissions" am: 1465700c

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1858818

Change-Id: I392126446bcc62a8f5d05d54cd1ed94c708ad2f7
parents 615b90f0 1465700c
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -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;
                    }