kernel-extension相关内容

在kextLoad过程中,使用启用了kext的证书来设计kext失败,代码签名无效";

因此,我们有一个允许我们签署kext的证书, 但是当我们运行>sudo kextLoad Friendly.kext时,它失败了 我们签署了我们想要的kext,为了证明它已经签署,下面是一些诊断输出: 👉协同设计--VERIFY-vvvv Friendly.kext friendly.kext: valid on disk friendly.kext: satisfies its D ..
发布时间:2022-09-04 19:52:38 其他开发

用于USB存储设备的无码kext

在最近的一个项目中,我试图在OSX 10.9.5上通过libusb访问USB存储设备。但很明显,某个默认驱动程序认领了这个设备,我无法访问它。当我尝试通过libusb访问它时,它返回“权限不足”。 当我在Ubuntu中执行(Java)应用程序时,一切都正常工作。 我在Internet上的研究表明,提供一个在较高探测内核上与设备匹配的无码kext将阻止默认驱动程序声明该设备。这将完全解决 ..
发布时间:2022-03-13 11:51:12 其他开发

线程应该等待完成 kext 编程中的设备请求

我正在 mac 上开发设备驱动程序.我的问题是我们如何使设备请求异步到同步.就像我向设备发送一个发送封装的命令,并在收到中断管道的通知后使用获取封装的命令得到它的响应.所以我怎样才能让我的线程等到上述所有请求都没有完成(发送和获取). 解决方案 你可能需要比这更具体一点.但一般来说,如果你需要一个线程休眠,直到你的某个函数在另一个线程上被调用,你可以使用 xnu 的事件系统.由于这是一个设 ..

如何从 Kext 访问未导出的符号?

我尝试在运行 11.4 Beta (20F5046g) Big Sur 的 M1 机器上加载 kext 模块,但在加载 kext 模块时遇到一些绑定错误消息. 访问从 Apple kext 模块导出的内核符号 首先,为了访问从苹果的 kext 模块 com.apple.kpi.unsupported 导出的内核函数,我使用了下面的 extern 声明. extern int cpu_ ..
发布时间:2021-11-16 20:34:08 其他开发

在 Kexts 中链接 Dylib?

我为 OS X 编写了一个 kext,它使用 (IOKit) libusb 和 jpeglib 实现了基于 USB 的帧缓冲区.这两个都是 dylib,由于某种原因,它们无法在 XCode 中正确链接,并且操作系统在尝试加载 kext 时不会解析依赖项. 这一切的背景是三星制造了一个可以作为第二台显示器的液晶相框;唯一的问题是它不是 DisplayLink 或任何其他已知协议——仅适用于 W ..
发布时间:2021-09-30 19:23:08 其他开发

安装 VirtualBox 4.3.6 时无法卸载 kext

下载了 VirtualBox 4.3.6,在尝试在 Mavericks (OSX 10.9.1) 中安装后,我收到一般错误“安装失败". 查看日志并运行卸载工具后,我得出的结论是 VirtualBox 无法卸载特定的内核扩展:org.virtualbox.kext.VBoxUSB 和 org.virtualbox.kext.VBoxDrv. 确切的错误是: (kernel) 无法卸载 ..
发布时间:2021-09-18 18:35:29 其他开发

USBInterfaceOpen 总是报 kIOReturnExclusiveAccess 错误

最近遇到这个问题很头疼,我已经在这个问题上花了一个星期,但还是失败了.希望你能帮我把这块石头踢开,非常感谢. 我的问题:我们公司为iPhone生产USB存储设备,这个存储设备实际上有一个SDCard.现在,我们要开发一个 Mac 应用程序来更新此存储设备的固件.但是每次我将存储设备连接到 Mac 时,Mac 都会自动挂载它,并且在调用 USBInterfaceOpen 时总是以 kIORet ..
发布时间:2021-09-15 18:52:08 其他开发

重新启动后必须卸载/重新加载修补的 FTDIUSBSerialDriver kext (OSX 10.10).有任何想法吗?

我正在通过串行 UART FTDI 连接在裸机 Arduino 和 openFrameworks 之间交换数据.我正在使用修补的 FTDI 驱动程序在 OSX 上实现更高的波特率.FTDIChip 称之为“别名 VCP 波特率". 见: http://spin.atomicobject.com/2013/06/23/baud-rates-ftdi-driver-mac/ https: ..

在 Yosemite 和 Xcode 安装后缺少/usr/include?

发现另外两个工作站上没有发生的奇怪问题.最近使用 Xcode 和命令行工具重新安装了 Yosemite 之后,我发现我的 /usr/include 不在这个特定的工作站上.我现在可以用 Homebrew 构建软件包,其他各种任务看起来都很好,但是当我开始构建一些内核扩展时,令我震惊的是,我发现这个文件夹完全没有.对这里可能发生的事情有什么想法吗? 解决方案 有趣的是,这个问题的答案只是带有 ..
发布时间:2021-06-13 19:14:41 其他开发

删除驱动程序启动的plist文件后,使kextcache无效

我已经为我的驱动程序创建了卸载程序,该卸载程序从/Library/LaunchDaemons 中删除了与其匹配的plist文件,因此在下一个引导周期中不会再次加载该文件.但是,它似乎对引导计算机后仍在正常加载的驱动程序没有任何影响. 在对此事进行了一些研究之后,我发现 kextcache 是此行为的原因,为了清除/使之失效,我需要 touch 安装目标卷所在的文件夹.但是,它没有任何作用. ..
发布时间:2021-05-31 19:25:16 其他开发

激活无代码DEXT后,获取OSSystemExtensionErrorCodeSignatureInvalid

我构建了一个无代码的DEXT来代替一个有效的无代码的KEXT-将无代码的KEXT迁移到无代码的DEXT .我引用了一些站点和GitHub存储库将它们放在一起,并得到了其他SO用户的帮助. 我正在关闭SIP的情况下运行,开发人员模式已打开(systemextensionsctl开发人员已打开).我正在遵循此处概述的建议 https://github.com/knightsc/USBApp/is ..

如何从Kext访问未导出的符号?

我试图在运行11.4 Beta(20F5046g)Big Sur的M1机器上加载kext模块,并在kext模块加载时遇到一些关于绑定的错误消息. 访问从Apple kext模块导出的内核符号 首先,要访问从苹果的kext模块com.apple.kpi.unsupported导出的内核函数,我使用了以下extern声明. extern int cpu_number(void); ..
发布时间:2021-05-31 19:05:09 其他开发

如何在MacOS上实现虚拟文件系统?

我已经看到某些应用程序能够将自己表示为MacOS上Finder中的外部磁盘.通常,这些是云存储应用程序,例如 PCloud Drive 和 WD Discovery .我想知道他们是如何做到的. 我意识到云存储可能只是实现一些远程文件系统协议,例如Samba或AFP.但是我仍然不太了解应用程序如何将文件系统直接安装到Finder中.另外,如果不依赖网络存储,是否有更有效的方式挂载虚拟文件系统 ..
发布时间:2021-05-31 18:58:03 其他开发

将无代码的KEXT迁移到无代码的DEXT

我正在将无代码的KEXT迁移到无代码的DEXT.我观看了 WWDC 视频并阅读了 Apple Developer 网站上的许多信息.我遇到的困难不是找到要做什么,而是如何开始.一个很好的示例项目教程会有所帮助. 在我的无代码KEXT中,对于4个单独的设备,我对每个设备都有IOUSBDevice和IOUSBInterface的IOKitPersonalities.KEXT允许我将设备与我的“驱 ..
发布时间:2021-05-31 18:48:50 其他开发

xnu中的vnode和文件描述符,文件操作向量存储在哪里

在xnu中,我们有 vnode_t 实体,该实体全局表示文件。 每个进程都可以访问文件(假设它具有正确的权限),方法是设置新的文件描述符并在vg_data下设置vnode fp-> f_fglob-> fg_data = vp; vnode包含所有相关操作的基本操作列表,并根据文件的FS进行设置。即HFS +驱动程序实现此向量并相应地设置其vnode。 ..
发布时间:2020-10-26 19:28:53 其他开发

如何在OS X 10.9中编写USB触摸屏驱动程序Kext?

我想为USB触摸屏编写一个USB触摸屏小工具。 我已经阅读了内核扩展编程主题和I / O Kit基础知识等, 我的问题是, 1。如何从触摸屏获取输入的报告消息? 2。如何将坐标信息发布到系统? 我不知道,有人帮助吗? 解决方案 这取决于硬件;此外,这个问题涉及面很广-您需要在问题中更加具体才能获得更具体的答案。我将尝试提供一个广泛的概述: 触摸屏有两个部分: 输出 ..
发布时间:2020-10-26 19:19:45 其他开发

在KEXT MAC环境中未指定内核文件错误

我尝试为USBHID设备实现KEXT。如果我正在检查Terminal是否能够加载KEXT,即 Newtok:Desktop Rasheed $ kextutil -nt SampleKextDriver.kext 没有指定内核文件;使用正在运行的内核进行链接。 SampleKextDriver.kext似乎是可加载的(包括磁盘库的链接)。 但不幸的是,我收到了上述消息。我的plis ..
发布时间:2020-10-21 19:23:22 移动开发

从kext阅读plist

我想在操作系统重启之间保存一个kext设置.因为在立即加载kext之后需要设置,所以我等不及管理守护程序启动了.是从kext读取/写入kext plist文件的一种方法还是其他方法? 解决方案 基本上,不-您应该将设置存储在用户空间中,并使用启动的服务在kext中进行设置.在您的kext接收到设置之前,它应该只使用一些合理的默认值. 真正在kext启动时包含设置的一种方法是在kext ..
发布时间:2020-08-14 23:56:50 其他开发

通过IOKIt命令传递CFDictionary

我正在寻找一种从用户空间代理到内核配置参数的通用方法,因为没有Mac等效于Windows注册表,在Windows注册表中,驱动程序可以使用ZwQueryValueKey命令直接访问此表中的任何键. 因此,我想通过CFDictionary传递动态变量列表. 在IOConnectCallMethod中有一种传递输入指针的方法,但是问题是我是否可以传递CFDictionary或CFDicti ..
发布时间:2020-08-14 23:20:29 其他开发