编写Mac Kernel extensions(Mac内核扩展)里出现Code Signing Failure 错误的解决办法

最近在看OS X 与IOS 内核编程

在第三章的例子中,编写内核扩展

写了一个HelloWorld.kext

在控制台中运行   sudo kextload HelloWorld.kext 

但是怎样都不成功

在mac 系统工具中,  找出控制台

在system.log那一栏中,发现了对应的错误:   Code Signing Failure: code signature is invalid  (签名错误)

在网上搜索,找到这篇 :  https://forums.developer.apple.com/thread/30703,   
上面说需要开权限去开发KEXT (Kernel extension)

点击红框


看到右下角那里,写Kernel extension(内核扩展), 原来要去申请的
点击红框,跳到  https://developer.apple.com//contact/kext/ (先要登录apple 开发者帐号)



选择了personal use (因为我只想自己学习下,没想过要发布出去), 发现personal use不用去申请的,  下面有提示,按提示去做吧



发现了Kernel extensions 相关的,  再点进去看
ok, 发现想用 unsigned (无签名)的 kernel extionsion ,  只能把系统的设置改掉, 再点后面的蓝色超链接 




原来要先进入mac 的 Recovery OS 模式再改 csrutil disable才可以,

ok, 重新启动系统,在刚要启动时,狂按 command + r  就可进入Recovery OS 模式。

一开始进去时,可能会有一个弹框让你选择一些恢复操作, 不用管它

用鼠标点上面的菜单,好像某个菜单里面有终端,把终端点出来

运行 sudo csrutil disable 

运行成功后,再重启进入原来正常的系统

命令行再运行先前写的 HelloWorld.kext

sudo kextload HelloWorld.kext 

Good, 没出错了。 ^_^ 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值