如何在IOKit内核扩展中使用来自TrustedBSD的MAC策略?IOKit和TrustedBSD策略
我已经有一个工作IOKit扩展,我想添加一些策略。
为了测试,我写了两个虚拟扩展,一个使用IOKit和一个通用扩展。
通用扩展工作完美,同时由于IOKit之一被生成链路错误的符号和mac_policy_register
mac_policy_unregister
。
$ sudo kextutil -tn /tmp/MACPolicy.kext
kxld[com.Test.MACPolicy]: The following symbols are unresolved for this kext:
kxld[com.Test.MACPolicy]: mac_policy_register(mac_policy_conf*, unsigned int*, void*)
kxld[com.Test.MACPolicy]: mac_policy_unregister(unsigned int)
Link failed (error code 5).
Check library declarations for your kext with kextlibs(8).
$ sudo kextlibs -v 6 -undef-symbols /tmp/MACPolicy.kext
Kext user-space log filter changed from 0xff2 to 0xfff.
Kext kernel-space log filter changed from 0xff2 to 0xfff.
Kext library architecture set to x86_64.
Kext library architecture is x86_64 (unchanged).
For all architectures:
com.apple.kpi.iokit = 15.4
com.apple.kpi.libkern = 15.4
For x86_64:
2 symbols not found in any library kext:
__Z21mac_policy_unregisterj
__Z19mac_policy_registerP15mac_policy_confPjPv
我已经添加了指定的库我Info.plist
,以及com.apple.kpi.dsep
,com.apple.kpi.unsupported
,com.apple.kpi.mach
或其任意组合,没有成功。
所有我能找到这个信息是这样的thread on the darwin-kernel讨论列表。
我针对OS X 10.11现在。
我现在还在这个[注释]上发现了这个问题(http://stackoverflow.com/questions/27702967/mount-approval-callback-on-mac-os-x#comment53763572_27754917) – MathPlayer