我知道如何在KEXT中加载驱动程序,我知道如何使用xcode。问题是,如何创建无代码kext?
假设我已经有了一个文本文件,并且可以将它保存为PLIST文件?然后呢?如何将它(PLIST文件)转换为.KEXT文件?使用Xcode?还是命令行?我正在寻找一步一步的指导。
发布于 2016-08-03 09:58:02
一个无代码的kext几乎就是一堆包含Info.plist的目录,从OSX10.9开始,这是一个加密签名。
YourKextName.kext/
+ Contents/
+ Info.plist - Your plist file
+ _CodeSignature/ - The 'codesign' tool will create and fill this appropriately您可能也有一些本地化数据,但我不知道这在没有代码的kext中有什么用处。
要创建它,您有两个选项:
手动创建无代码kext
mkdir -p "$BUILD_DIR/YourKextName.kext/Contents")cp "$SOURCE_DIR/Info.plist" "$BUILD_DIR/YourKextName.kext/Contents/")codesign -fs "Developer Id" "$BUILD_DIR/YourKextName.kext")您可以在Xcode中创建一个“聚合”目标,并将所有这些命令(除了第一个命令)放在目标的"Run Script“构建阶段,如果您希望将它作为Xcode构建的一部分。
Xcode方式
如果希望Xcode像常规kext那样对Info.plist进行预处理,还可以让Xcode为您完成全部工作,不需要定制脚本:
无代码kext Info.plist技巧
您的Info.plist与任何其他I/O Kit kext的Info.plist相似,除了:
CFBundleExecutable属性必须不存在。OSBundleLibraries属性,因为没有需要链接的可执行文件。IOKitPersonalities字典中的每个字符都必须有一个标识另一个kext的CFBundleIdentifier属性,该属性包含提供您指定的任何IOClass的可执行文件。https://stackoverflow.com/questions/38083786
复制相似问题