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

Commit 6503e69d authored by Svetoslav's avatar Svetoslav
Browse files

Prevent modification of system fixed permissions

Change-Id: I061b993df305f27e52f08dad54f1bdbf162de4d9
parent 1705113e
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -3183,6 +3183,12 @@ public class PackageManagerService extends IPackageManager.Stub {
            final PermissionsState permissionsState = sb.getPermissionsState();
            final int flags = permissionsState.getPermissionFlags(name, userId);
            if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0) {
                throw new SecurityException("Cannot grant system fixed permission: "
                        + name + " for package: " + packageName);
            }
            final int result = permissionsState.grantRuntimePermission(bp, userId);
            switch (result) {
                case PermissionsState.PERMISSION_OPERATION_FAILURE: {
@@ -3240,6 +3246,12 @@ public class PackageManagerService extends IPackageManager.Stub {
            final PermissionsState permissionsState = sb.getPermissionsState();
            final int flags = permissionsState.getPermissionFlags(name, userId);
            if ((flags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0) {
                throw new SecurityException("Cannot revoke system fixed permission: "
                        + name + " for package: " + packageName);
            }
            if (permissionsState.revokeRuntimePermission(bp, userId) ==
                    PermissionsState.PERMISSION_OPERATION_FAILURE) {
                return;