Xcode打包工具PackageMaker 自动装载驱动

随系统启动kext驱动安装注意问题:
驱动放到/System/Library/Extensions/目录下,安装时候选中权限为root:wheel,这个还不够,因为kext目录下的其他文件如Info.plist等权限为775,而该目录下的驱动是不允许group组修改的,所以必须将权限改为755,但是打包工具的复制功能很弱,所以必须写脚本来完成这个功能。
例如脚本叫chmod.sh,内容为:
#!/bin/sh
chmod 755 /System/Library/Extensions/xxxx.kext

然后在驱动的scripts标签下,Postinstall:填入该脚本chmod.sh,意思是驱动安装之后将执行这个脚本。

如果kext驱动能够正常随系统启动,恭喜,你成功了。
如果不能(非常不幸,我碰上了),继续下面的办法。

写一个plist,内如如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.apple.test</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/kextload</string>
<string>/System/Library/Extensions/xxxxx.kext</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>root</string>
</dict>
</plist>

保存为随便的名字,例如com.xxxx.xxxx.plist,一并拖入PackageMaker中,安装到/System/Library/LaunchDaemons或者/Library/LaunchDaemons/目录下(建议前者),注意权限设置为755。

最后在写一个sh脚本(也可以放到设置驱动权限的那个脚本里,不过脚本需要最后执行),内如如下:
#!/bin/sin
launchctl load -w /System/Library/LaunchDaemons/com.xxxx.xxxx.plist

OK,驱动在启动的时候就可以被这个plist调用起来了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值