SwitchResX and System Integrity Protection (SIP)
- if you are using any version of macOS between macOS 10.11 and macOS 10.15.1, you will need to disable SIP to install any custom resolution, and also to install any SwitchResX extension (including SwitchResX Contextual Menu)
- if you are using macOS version 10.15.2 and newer, there's no need to disable SIP any more to install custom resolutions, but you need to use SwitchResX version 4.10 at least. Disabling SIP is still only required to install the SwitchResX Contextual Menu.
macOS 10.11 « El Capitan » introduced a feature called « System Integrity Protection », aka « SIP ». All later versions of macOS use the same mechanism.
One of the most widely used features in SwitchResX is the ability to define new custom resolutions to your monitor. For doing this, SwitchResX modifies a System file.
Beginning with El Capitan, System Integrity Protection does not allow SwitchResX to create or modify this file. This is true for all versions of macOS between 10.11 and 10.15.1.
That means that if you want to use SwitchResX to add, modify, or create a new custom resolution, or a scaled Retina resolution, then you must temporarily disable System Integrity Protection before doing this.
Once the resolution has been created and activated, you can turn SIP on again.
You also need to disable SIP and leave it disabled to be able to install and use the SwitchResX Contextual Menu. This is the case and remains true for any version of macOS newer than 10.11 .
How to disable SIP
Disabling SIP requires booting into the recovery partition. You boot in recovery mode by pressing CMD + R when starting up your Mac.
Then open a Terminal window
and type the command below (don't type the "#" !).
# csrutil disable
that should confirm with the following message:
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
You can then reboot normally on your standard macOS system partition.
To re-enable SIP, boot back into the recovery partition and set state to enabled:
# csrutil enable
Let me just repeat:
If you just use SwitchResX for any other feature and don’t plan to alter your list of resolutions, then you can leave System Integrity Protection turned on. SwitchResX should then work flawlessly.
If you however want to activate a custom resolution, you have to turn SIP off, the time the resolution has to be saved in the System. Then you can turn it on again, if you want.