问题标签 [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.
c - XCode:在 kext 中包含框架?
我正在编写的内核扩展需要包含一个框架(DirectIO),所以我在目标属性的“链接库”部分添加了框架。然后我将它包含在主源文件中。
问题是,每当我尝试构建它时,它都会出现此错误:
我在 Snow Leopard 上使用 XCode 3.2,为 OSX i386 构建。是否可以在 .kext 目标中包含 .framework ?
cocoa - 在 Cocoa 中的 Dock 图标上拖放 - 搞乱文件关联
我在我的应用程序中实现了拖放功能。该应用程序可让您打开.kext
文件。
我已经使用-(void)application:openFiles:
并设置了文档类型:
一切正常,我的应用程序可以检测到 kext 何时被删除。但是,当一个 Kext 被删除时,我 Mac 上的所有 kext 都将图标更改为文件夹图标!我想这与我的应用程序弄乱了文件关联有关。
有没有办法解决?
macos - 尝试运行 .kext 时 system.log 中出现奇怪的错误
首先,我不知道这是否是提出这个问题的正确位置。Serverfault 或 Apple 会更好吗?
我正在阅读有关制作 Mac 内核扩展的教程。我加载了它,当我加载它时tail -1 /var/log/system.log
,它没有告诉我“Hello World!”,它说......
一些事情......这是什么意思?我在看正确的日志文件吗?我可以看出这是parentalcontrolsd
告诉我 ActivityTracker 发现某些应用程序是为用户 wolfram 启动的。有什么帮助吗?
这是我的代码...
macos - 什么时候打印我的报表的正确方法是什么?
我以以下方式编写代码,但仅在控制台中输出两次。请朋友帮帮我
macos - 如何在终端中加载 i/o 套件驱动程序扩展?
现在我正在开发自己的驱动程序。我在 i/o kitDriver 模板中开发。我构建了我的代码,它成功执行但终端出现问题。我在头文件中以以下方式开发了代码
在.cpp
然后我在 IOKIT-info.plist 之后成功构建了上面的代码
IOKitPersonalities 字典我添加的以下五个内容
之后
在 OSBundleLibraries 字典中,我添加了两个条目
之后我再次成功构建它
来到终端加载我按照以下步骤
在终端之前,我找到 kext 文件路径并将该包复制到 /system/library/extension/
然后去终端
执行以下方式
嘿伙计们,请帮助我,重要的事情之一是每当我执行由通用驱动程序开发的 kext 文件时,它都会在终端中非常成功地执行。
我也是这个内核编程的初学者
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:
osx-lion - 处理来自音频虚拟驱动程序的空闲睡眠 - Mac OSX
我们有一个类似于 Sound Flower 的虚拟音频设备驱动程序。此虚拟设备将列在声音系统首选项中。每当我们的设备在系统偏好设置中被选中时,它都会阻止空闲睡眠。如果我们将选择切换到默认输出设备,一切都会按预期工作。
如果我们在终端中执行“pmset -g assertions”命令,它会给出以下输出
任何人都可以建议我一些解决这个问题的建议。
macos - 哪一个我必须使用通用内核扩展或 I/O 驱动程序扩展来控制 MacOS 上的驱动程序?
想在mac上实现蓝牙、wifi、usb、firewire等通讯接口。我还想对蓝牙和 wifi 进行身份验证。我必须使用哪个内核扩展通用内核扩展或 I/O 驱动程序扩展?
macos - 从 KEXT 与 Daemon 通信并阻塞直到从 Daemon 返回结果的最佳方式
在 KEXT 中,我正在通过 vnode 或文件范围侦听器侦听文件关闭。对于某些(非常少的)文件,我需要将文件路径发送到我的系统守护程序,它会进行一些处理(这必须在守护程序中发生)并将结果返回给 KEXT。在我得到守护进程的响应之前,需要阻止文件关闭调用。根据结果,我需要在近距离通话中进行一些操作并成功返回近距离通话。论坛上有很多关于KEXT通信相关话题的讨论。但它们不是决定性的,而且看起来很老(2002 年左右)。这个需求可以通过FtlSendMessage(...)
Win32 API 来处理。我正在寻找 Mac 上的等价物
以下是我看过并想总结一下我的理解:
- Mach 消息:提供非常好的双向通信方式,使用发送者和回复端口以及队列机制。但是,mach 消息 API(例如
mach_msg
、mach_port_allocate
、bootstrap_look_up
)似乎不是 KPI。mach_msg_send_from_kernel
可以使用mach API ,但仅此一项对双向通信没有帮助。我的理解对吗? - IOUserClient:这似乎更多地与从用户空间到 KEXT 的通信有关,然后从 KEXT 进行一些回调。我没有找到一种方法来启动从 KEXT 到守护程序的通信,然后等待守护程序的结果。我错过了什么吗?
- 套接字:这可能是最后一个选项,因为我必须实现从 KEXT 到守护进程的整个双向通信通道。
ioct
l/sysctl
: 我对他们了解不多。根据我的阅读,它不推荐使用,特别是对于双向通信- RPC-Mig:同样我对它们了解不多。从我所看到的看起来很复杂。不确定这是否是推荐的方式。
- KUNCUserNotification:这似乎只是从 KEXT 向用户提供通知。它不符合我的要求。
支持的平台是(10.5 起)。因此,查看要求,有人可以就该主题提出建议并提供一些指示吗?
提前致谢。
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.