MacOS – Disable System Integrity Protection on OS X running on VMware

macosSecurityvirtualizationvmware

I have an instance of OS X El Capitan running on VMWare Workstation 10. I need to make changes to /System and therefor have to disable System Integrity Protection. How do I access recovery mode on this VM so I can disable SIP?

Best Answer

I know this is an older question but I came across it looking for a solution to this problem so I figured I would submit an answer that contains all of the info I came across in one place.

Background

My environment

Host

  • Windows 10
  • VMWare Workstation 12 (patched to run macOS)

Guest

  • macOS High Sierra 10.13.4

I originally tried adding macosguest.forceRecoveryModeInstall = "TRUE" to my .vmx config. This allowed me to boot into recovery and could disable SIP but then I couldn't get the VM to boot normally, even after removing that line.

The solution to this problem I found was to just delete the .nvram file. Unfortunately, that's where the flag to disable SIP is stored so when my VM came back up SIP was enabled again.

My Solution

  1. From the Terminal, run the following commands (thanks to G5tube for this suggestion)

     sudo nvram "recovery-boot-mode=unused"
     sudo reboot recovery
    

    The second command will reboot your Mac instantly, so better save any unfinished work first.

  2. Once the Mac has rebooted into the Recovery / Installer system (you may have to choose your language first): From the menu bar, click Utilities > Terminal

  3. Run csrutil disable from the terminal, followed by reboot

  4. Once your VM has rebooted normally you can verify that SIP was disabled by opening a terminal and running csrutil status

To turn SIP back on, follow the same steps as above but run csrutil enable at the recovery terminal instead.