如何在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