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

Commit 28385ab9 authored by Faye Yan's avatar Faye Yan
Browse files

Do not override user set app op permission state when handling installer permission change. 

Change-Id: Ia3fa318d6ae37b4350592beca7a79fec9b78fb55
Merged-in: Ia3fa318d6ae37b4350592beca7a79fec9b78fb55
Test: presubmit
Bug: 268092291
parent 79d1135c
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -3673,9 +3673,9 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
                isAppOpPermission = bp.isAppOp();
            }

            if (shouldGrantRuntimePermission) {
            final int flags = getPermissionFlagsInternal(pkg.getPackageName(), permission,
                    myUid, userId);
            if (shouldGrantRuntimePermission) {
                if (supportsRuntimePermissions) {
                    // Installer cannot change immutable permissions.
                    if ((flags & immutableFlags) == 0) {
@@ -3693,6 +3693,9 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
            } else if (isAppOpPermission
                    && PackageInstallerService.INSTALLER_CHANGEABLE_APP_OP_PERMISSIONS
                    .contains(permission)) {
                if ((flags & PackageManager.FLAG_PERMISSION_USER_SET) != 0) {
                    continue;
                }
                int mode =
                        permissionState == PERMISSION_STATE_GRANTED ? MODE_ALLOWED : MODE_ERRORED;
                int uid = UserHandle.getUid(userId, pkg.getUid());