问题标签 [kernel-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
563 浏览

c - XCode:在 kext 中包含框架?

我正在编写的内核扩展需要包含一个框架(DirectIO),所以我在目标属性的“链接库”部分添加了框架。然后我将它包含在主源文件中。

问题是,每当我尝试构建它时,它都会出现此错误:

我在 Snow Leopard 上使用 XCode 3.2,为 OSX i386 构建。是否可以在 .kext 目标中包含 .framework ?

0 投票
1 回答
781 浏览

cocoa - 在 Cocoa 中的 Dock 图标上拖放 - 搞乱文件关联

我在我的应用程序中实现了拖放功能。该应用程序可让您打开.kext文件。

我已经使用-(void)application:openFiles:并设置了文档类型: 文档类型设置

一切正常,我的应用程序可以检测到 kext 何时被删除。但是,当一个 Kext 被删除时,我 Mac 上的所有 kext 都将图标更改为文件夹图标!我想这与我的应用程序弄乱了文件关联有关。

有没有办法解决?

0 投票
1 回答
251 浏览

macos - 尝试运行 .kext 时 system.log 中出现奇怪的错误

首先,我不知道这是否是提出这个问题的正确位置。Serverfault 或 Apple 会更好吗?

我正在阅读有关制作 Mac 内核扩展的教程。我加载了它,当我加载它时tail -1 /var/log/system.log,它没有告诉我“Hello World!”,它说......

一些事情......这是什么意思?我在看正确的日志文件吗?我可以看出这是parentalcontrolsd告诉我 ActivityTracker 发现某些应用程序是为用户 wolfram 启动的。有什么帮助吗?

这是我的代码...

0 投票
1 回答
233 浏览

macos - 什么时候打印我的报表的正确方法是什么?

我以以下方式编写代码,但仅在控制台中输出两次。请朋友帮帮我

0 投票
2 回答
4408 浏览

macos - 如何在终端中加载 i/o 套件驱动程序扩展?

现在我正在开发自己的驱动程序。我在 i/o kitDriver 模板中开发。我构建了我的代码,它成功执行但终端出现问题。我在头文件中以以下方式开发了代码

在.cpp

然后我在 IOKIT-info.plist 之后成功构建了上面的代码

IOKitPersonalities 字典我添加的以下五个内容

之后

在 OSBundleLibraries 字典中,我添加了两个条目

之后我再次成功构建它

来到终端加载我按照以下步骤

在终端之前,我找到 kext 文件路径并将该包复制到 /system/library/extension/

然后去终端

执行以下方式

嘿伙计们,请帮助我,重要的事情之一是每当我执行由通用驱动程序开发的 kext 文件时,它都会在终端中非常成功地执行。

我也是这个内核编程的初学者

0 投票
1 回答
833 浏览

macos - 我可以使用哪些命令在终端中加载 i/o 套件驱动程序?

我是新内核编程。我已经尝试加载此驱动程序 3 天。

我使用了很多命令来加载这个 kext 文件。但每次问题都是

终端。请任何人帮助我。

ensis-Mac-mini:~ ensis$ sudo su

sh-3.2# chown -R root:wheel /System/Library/Extensions/Driver.kext

sh-3.2# kextutil -n -t /System/Library/Extensions/Driver.kext 没有指定内核文件;

使用正在运行的内核进行链接。

/System/Library/Extensions/Driver.kext 无效;无法解决依赖关系。

/System/Library/Extensions/Driver.kext 无效;无法解决依赖关系。

/System/Library/Extensions/Driver.kext 无效;无法解决依赖关系。

/System/Library/Extensions/Driver.kext 的诊断:

验证失败:

警告:

发送到 IO 目录:

如何解决上述程序

更新: Info.plist:

0 投票
1 回答
546 浏览

osx-lion - 处理来自音频虚拟驱动程序的空闲睡眠 - Mac OSX

我们有一个类似于 Sound Flower 的虚拟音频设备驱动程序。此虚拟设备将列在声音系统首选项中。每当我们的设备在系统偏好设置中被选中时,它都会阻止空闲睡眠。如果我们将选择切换到默认输出设备,一切都会按预期工作。

如果我们在终端中执行“pmset -g assertions”命令,它会给出以下输出

任何人都可以建议我一些解决这个问题的建议。

0 投票
1 回答
276 浏览

macos - 哪一个我必须使用通用内核扩展或 I/O 驱动程序扩展来控制 MacOS 上的驱动程序?

想在mac上实现蓝牙、wifi、usb、firewire等通讯接口。我还想对蓝牙和 wifi 进行身份验证。我必须使用哪个内核扩展通用内核扩展或 I/O 驱动程序扩展?

0 投票
3 回答
3496 浏览

macos - 从 KEXT 与 Daemon 通信并阻塞直到从 Daemon 返回结果的最佳方式

在 KEXT 中,我正在通过 vnode 或文件范围侦听器侦听文件关闭。对于某些(非常少的)文件,我需要将文件路径发送到我的系统守护程序,它会进行一些处理(这必须在守护程序中发生)并将结果返回给 KEXT。在我得到守护进程的响应之前,需要阻止文件关闭调用。根据结果​​,我需要在近距离通话中进行一些操作并成功返回近距离通话。论坛上有很多关于KEXT通信相关话题的讨论。但它们不是决定性的,而且看起来很老(2002 年左右)。这个需求可以通过FtlSendMessage(...)Win32 API 来处理。我正在寻找 Mac 上的等价物

以下是我看过并想总结一下我的理解:

  1. Mach 消息:提供非常好的双向通信方式,使用发送者和回复端口以及队列机制。但是,mach 消息 API(例如mach_msgmach_port_allocatebootstrap_look_up)似乎不是 KPI。mach_msg_send_from_kernel可以使用mach API ,但仅此一项对双向通信没有帮助。我的理解对吗?
  2. IOUserClient:这似乎更多地与从用户空间到 KEXT 的通信有关,然后从 KEXT 进行一些回调。我没有找到一种方法来启动从 KEXT 到守护程序的通信,然后等待守护程序的结果。我错过了什么吗?
  3. 套接字:这可能是最后一个选项,因为我必须实现从 KEXT 到守护进程的整个双向通信通道。
  4. ioctl/ sysctl: 我对他们了解不多。根据我的阅读,它不推荐使用,特别是对于双向通信
  5. RPC-Mig:同样我对它们了解不多。从我所看到的看起来很复杂。不确定这是否是推荐的方式。
  6. KUNCUserNotification:这似乎只是从 KEXT 向用户提供通知。它不符合我的要求。

支持的平台是(10.5 起)。因此,查看要求,有人可以就该主题提出建议并提供一些指示吗?

提前致谢。

0 投票
1 回答
583 浏览

xcode - OSDictionary * Injection in IORegistry

I'm trying to create a new Dictionary and inject it in the IORegistry. I've managed to inject simple strings or data values but thats it.

My approach is via a modified IOPCIFamily.kext, and it's not for a specific purpose but just for learning.

My code for 1 line values is something like this

and another approach

propTable is the Parent Dictionary, so i must create a child Dictionary to which i can inject values with setObject parameter.

Does anyone have an idea on how to do this? I suspect it must be something like this:

but i didn't figure how to create the newTable for propTable to insert it in the existing one of what ever product == ids it finds.

Thank you very much, sorry if it's confusing. Not used to explain code related stuff in english.