MacOS – How to use a kext that has just the info.plist changed without codesign or SIP disabled

bootkernel-extensionsmacos

Similar to How do I edit an info.plist file inside of a kext file?

There is a need to change how a kext works.

(Specifically /System/Library/Extensions/AMD6000Controller.kext/Contents/Info.plist needs a change in IOKitPersonalities > Controller > aty_config > CFG_FB_LIMIT from 0 to 3)

This can be achieved by manipulating the info.plist file inside the kext.

However, in newer versions of macOS, this requires either a certificate to re-codesign the kext or disabling SIP (at least partially with csrutil enable --without kext).

I am looking for alternative methods.

Loading the kext manually apparently doesn't offer the option to pass parameters.
Is there an nvram command to force this on boot?
Is using Clover the easiest way?

How to use a kext that has just the info.plist changed without codesign or SIP disabled?

Best Answer

If you have no problem in keeping SIP half-enabled like you mentioned, then you can proceed, but with caution. Unless you are really sure that this Info.plist change will work as expected, do the following:

  • Copy the modified kext into System/Library/Extensions after authenticating
  • Execute sudo chown -R root:wheel /sample_path_to_kext
  • Execute sudo chmod 644 /sample_path_to_kext
  • Execute sudo kextcache -i /
  • Restart

Alternatively you may use an app like Kext Wizard or Kext Drop and just perform sudo kextcache -i / at the end of their operation.

Lastly, I cannot stress enough how dangerous this is to your Mac. Please proceed only if you really know (or don't care) if something unexpected happens.