Как использовать политики MAC из TrustedBSD внутри расширения ядра IOKit?Политика 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