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

Commit 21de89cc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Set app op mode to allowed when granting permissions to...

Merge "DO NOT MERGE Set app op mode to allowed when granting permissions to reset state." into qt-r1-dev
parents 9b5cfc03 ac743cb5
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line 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();
        final int permissionCount = ps.pkg.requestedPermissions.size();
        for (int i = 0; i < permissionCount; i++) {
        for (int i = 0; i < permissionCount; i++) {
            final String permName = ps.pkg.requestedPermissions.get(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) {
            if ((oldFlags & FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0) {
                mPermissionManager.grantRuntimePermission(permName, packageName, false,
                mPermissionManager.grantRuntimePermission(permName, packageName, false,
                        Process.SYSTEM_UID, userId, delayingPermCallback);
                        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
            // If permission review is enabled the permissions for a legacy apps
            // are represented as constantly granted runtime ones, so don't revoke.
            // are represented as constantly granted runtime ones, so don't revoke.
            } else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) {
            } else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) {