I'm trying to reload a kext in an Objective-C OSX application I'm writing. The KextManager API seems to be what I should use (docs here)
Calling KextManagerUnloadKextWithIdentifier()
works flawlessly, but when I go to load the same kext shortly after using KextManagerLoadKextWithIdentifier()
I get this console error:
com.apple.kextd[12]: Request from non-root process 'App Name' (euid 501) to load /path/to/kext - not allowed.
The docs for both methods both state "The calling process must have an effective user id of 0 (superuser)", yet unload works and load does not? Surely they should both behave the same?