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

来源:互联网 发布:linux的trace命令 编辑:程序博客网 时间:2024/05/14 09:10
随系统启动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调用起来了。


原创粉丝点击