Renaming Kexts?

Does anyone know if it is still possible to delete or rename unwanted kexts in system/library/extensions?


For the last few years theres been a bug in AppleGraphicsPowerManagement.kext that ruins gaming performance on my Macbook Pro 5,2 (Early 2009 17"). With Yosemite and earlier I work round it simply by renaming the file to AppleGraphicsPowerManagement.disable and rebooting.


Before I try El Capitain I'd like to find out if this is still possible - anyone know?

I'm also curious about this. My Macbook Pro has a hardware problem with its FireWire port which prevents OS X from starting up if the FireWire drivers are present (it hangs indefinitely waiting for the FireWire port to respond.) The only way for me to run OS X on my laptop is to remove Apple's FireWire kernel extensions.

You would have to

a) access System partion of the 10.11 install from 10.10 or earlier

b) provide rootless=0 boot argument

c) When you boot in 10.11 installation, go to Utilites - Configure Security (or simillar) and disable it from there.


This is needed because, as rumored, system files are not modifiable even by root due to the new security model.

Thanks for replying.


" b) provide rootless=0 boot arguments"


That sound promising. So does that mean I can type 'sudo nvram boot-args="rootless=0"' any time to turn it off, delete the file, then set it back to "1 again to turn it back on again? Or does sudo not even work with rootless?


" c) ... Utilities - Security"


That sounds even easier - like I can go there, turn it off, delete the file and turn it back on.


Or am I missing a trick(!)


Sorry if these questions sound a bit basic...

Ok - I installed El Capitain on a partition and tried it.


* With finder I went to AppleGraphicsPowerManagement.kext, did 'Get Info', expanded the 'Name & Extension' thing. The name and extension is greyed out - so I couldn't change it there.


* Next I went to terminal, went to /System/Library/Extensions and tried to rename it with mv. That didn't work either - it gave an "Operation not permitted" error.


So 'rootless' is definately preventing me from doing what I want here - so I turned it off with sudo nvram boot-args="rootless=0". That seemed to work, so I rebooted.


* With finder I want back to the file and did Get Info. This time the name and extension were not grayed out and I was able to change the extension from .kext to .disable

* I rebooted. The file was still called '.disable' - it hadn't magically changed back to .kext or anything. So I turned rootless back on by removing the boot argument with sudo nvram -d boot-args, and rebooted.

* Back in finder the file was still called '.disable' even though rootless was now back on (eg. the names/extensions in Get Info were once again grayed out.

* I verified that it really hadn't loaded the extension in the 'Extensions' area in System Report.


So, at least at the moment, it is still possible to disable unwanted kernel extensions 🙂

Accepted Answer

The supported way to disable System Integrity Protection in those cases where it's truly necessary is to boot into the Recovery partition and turn System Integrity Protection off from there with the csrutil tool.


$ csrutil

usage: csrutil <command>

Modify the System Integrity Protection configuration. All configuration changes apply to the entire machine.

Available commands:

disable

Disable the protection on the machine. Requires a reboot.

enable

Enable the protection on the machine. Requires a reboot.

status

Display the current configuration.


The kext-dev-mode and rootless boot-args are being removed from OS X El Capitan and will no longer work.


--gc

Renaming Kexts?
 
 
Q