首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOKit和TrustedBSD政策

IOKit和TrustedBSD政策
EN

Stack Overflow用户
提问于 2016-05-13 12:28:17
回答 2查看 715关注 0票数 1

如何在TrustedBSD内核扩展中使用来自IOKit的MAC策略?

我已经有了一个可以工作的IOKit扩展,我想在其中添加一些策略。

为了进行测试,我编写了两个虚拟扩展,一个使用IOKit,另一个使用通用扩展。

泛型扩展工作得完美无缺,而IOKit one正在为符号mac_policy_registermac_policy_unregister生成链接错误。

代码语言:javascript
复制
$ 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.dsepcom.apple.kpi.unsupportedcom.apple.kpi.mach或这些库的任何组合中,但都没有成功。

我能找到的所有有关这方面的信息都是这个达尔文内核上的线程讨论列表。

我现在的目标是OSX10.11。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-16 10:03:20

注意缺失的符号是如何被破坏的,就好像它们是C++函数一样,但是问题中的函数实际上是普通的C函数。这意味着当您从C++调用它们时,它们使用的是缺少extern "C"链接说明符的声明。MAC头没有考虑到C++,所以当从.cpp文件中包含它们时,需要显式地将它们封装在extern "C"块中,如下所示:

代码语言:javascript
复制
extern "C" {
#include <security/mac_policy.h>
}

如果您的#include位于混合的C/C++头文件中,那么您需要像往常一样使用#ifdef __cplusplus将其作为C++编译的条件。

票数 1
EN

Stack Overflow用户

发布于 2017-06-13 11:49:57

您应该知道,尽管这个功能是官方添加的,基于OSXv10.11api的差异目标C的内核更改

Unfortunately,从高塞拉利昂(10.13) MAC策略API开始,对第三方开发人员完全关闭。苹果从自己的文档中删除了对mac_policy_registermac_policy_unregistermac_policy_confmac_policy_ops和其他主要MAC策略部分的所有引用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37210080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档