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

Commit 22d30e12 authored by Hai Zhang's avatar Hai Zhang Committed by android-build-merger
Browse files

DO NOT MERGE Set app op mode to allowed when granting permissions to reset state.

am: ac743cb5

Change-Id: Id4c6f686ffa75207b4aedcb74b3682a70ba9ed64
parents 20ad3e19 ac743cb5
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -19860,6 +19860,9 @@ public class PackageManagerService extends IPackageManager.Stub
            }
        };
        final AppOpsManager appOpsManager = mContext.getSystemService(AppOpsManager.class);
        final int uid = UserHandle.getUid(userId, ps.pkg.applicationInfo.uid);
        final int permissionCount = ps.pkg.requestedPermissions.size();
        for (int i = 0; i < permissionCount; i++) {
            final String permName = ps.pkg.requestedPermissions.get(i);
@@ -19919,6 +19922,14 @@ public class PackageManagerService extends IPackageManager.Stub
            if ((oldFlags & FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0) {
                mPermissionManager.grantRuntimePermission(permName, packageName, false,
                        Process.SYSTEM_UID, userId, delayingPermCallback);
                // Allow app op later as we are holding mPackages
                // PermissionPolicyService will handle the app op for foreground/background
                // permissions.
                String appOp = AppOpsManager.permissionToOp(permName);
                if (appOp != null) {
                    mHandler.post(() -> appOpsManager.setUidMode(appOp, uid,
                            AppOpsManager.MODE_ALLOWED));
                }
            // If permission review is enabled the permissions for a legacy apps
            // are represented as constantly granted runtime ones, so don't revoke.
            } else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) {