我遵循了使用 Xcode教程创建通用内核扩展。
MyKext.c:
#include <sys/systm.h>
#include <mach/mach_types.h>
kern_return_t MyKext_start (kmod_info_t * ki, void * d)
{
printf("MyKext has started.\n");
return KERN_SUCCESS;
}
kern_return_t MyKext_stop (kmod_info_t * ki, void * d)
{
printf("MyKext has stopped.\n");
return KERN_SUCCESS;
}
我还禁用了 csrutil,它允许我加载自己的 kext。
# csrutil disable
当我将自己的 kext 加载到内核中时
$ sudo kextload -v /tmp/MyKext.kext
printf() 的结果没有写入 /var/log/system.log。
我还设置了 boot-args
$ sudo nvram boot-args="original_contents debug=0x4"
谁能帮我吗?