I believe the symbols in BSDKernel.exports
end up in the com.apple.kpi.bsd
KPI, so you need to add that to your OSBundleLibraries
dictionary in the kext's info.plist. I'm not 100% sure that's all you need to do, so let us know if that doesn't work.
Update:
The built-in KPIs are actually represented by pseudo-kexts within the "Plugins" directory of System.kext. So for the BSDKernel KPI, that's /System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext/
Perhaps that needs to be updated in kind?
make all
doesn't seem to automatically build a new System.kext
. There is a large section dedicated to System.kext in config/Makefile
, however, and it seems to be part of the install targets. make install
might do the trick. Or, if you're wary of that (as I am), this seems to be the crucial line:
install $(INSTALL_FLAGS) $(OBJROOT)/BSDKernel.symbolset $(DSTROOT)/$(INSTALL_KEXT_DIR)/System.kext/PlugIns/BSDKernel.kext/BSDKernel; \
In other words, make a backup of your System.kext, then copy BUILD/obj/RELEASE_X86_64/BSDKernel.symbolset
over /System/Library/Extensions/System.kext/PlugIns/BSDKernel.kext/BSDKernel
and try booting.
Best of luck!