FakePCIID.kext是黑苹果屋搜集到与IOPCIDevice设备建立连接,以便当另一个驱动程序连接到同一设备时,它可以提供备用的PCI ID。也就是说,如果用到FakePCIID开头的任何kext的话,此驱动都是必要的。
附件中所包含的驱动
- FakePCIID_AR9280_as_AR946x.kext
FakePCIID_BCM57XX_as_BCM57765.kext
FakePCIID_Broadcom_WiFi.kext
FakePCIID_Intel_GbX.kext
FakePCIID_Intel_HD_Graphics.kext
FakePCIID_Intel_HDMI_Audio.kext
FakePCIID_XHCIMux.kext
FakePCIID.kext
AppleIntelKBLGraphicsFramebufferInjector_3e9x.kext
BroadcomWiFiInjector.kext
为了将FakePCIID附加到给定的IOPCIDevice,必须构建IOKit可以用来匹配的kext注入器。驱动的Info.plist没有内置的IOKitPersonalities,因为它是通用的,并且并非为特定目的而构建。压缩包中提供的发行版具有四个这样的kext注入器,也可以为其他设备创建自定义kext注入器。
在任何情况下,注入器的Info.plist中的DSDT补丁,FakeID配置(Clover)或FakeProperties字典都将需要注入FakePCIID可以在IOPCIDevice上读取的属性。FakePCIID使用的属性将在本文后面描述。这些属性必须存在于被挂接的PCIDevice(FakePCIID的直接父级)上。
- 在较新的硬件平台上,Hackintool、Clover Configurator比这个驱动更能解决仿冒设备ID的问题,如果二者都不能解决你的仿冒ID问题时,再尝试本驱动;
- FakePCIID_Intel_HD_Graphics.kext适用于HD4400移动版,HD4600移动版,HD4200移动版和HD4600桌面版。
安装&使用
- 和 Lilu/AppleALC/WhateverGreen 不同,FakePCIID.kext 需要使用 Kext 安装器(例如KextWizard)安装;
- 通常情况下,请使用 Release 发行版,如果出现问题,可使用 debug 进行排错;
- 为了使kext加载到特定设备上,还必须安装适当的进样器kext。当前,提供了四个注射器:
- FakePCIID_Intel_HD_Graphics.kext (formerly FakePCIID_HD4600_HD4400.kext):此kext将附加到 8086:0412、8086:0416、8086:0a1e,8086:041e,8086:0a16、8086:041a,8086:016a,8086:191d 或 8086:162a
- 8086:0412 是 HD4600 桌面端
- 8086:0a16 是 HD4400 移动端
- 8086:0416 是 HD4600 移动端
- 8086:0a1e 是 HD4200 移动端
- 8086:041e 是 HD4400 桌面端
- 8086:041a 是 P4600 服务器端
- 8086:016a 是 P4000 服务器端
- 8086:191d 是 P530 服务器端
- 8086:162a 是 P6300 服务器端
- 通常,注入一个虚假的设备ID 8086:0412 是针对 macOS Yosemite,因为 Yosemite 本身无法识别8086:0416。8086:0412是HD4600(桌面端)的设备ID。通过注入0412,将加载 AppleIntelFramebufferAzul 和 AppleIntelHD5000Graphics。而且,由于FakePCIID也将连接到这些设备,因此它将成功地使该设备的两个kext 欺骗 Intel HD4600 桌面端 iGPU(0412)。要获得P4000支持,请注入设备ID 0166(HD4000)。要获得P530支持,请注入设备ID 1912(HD530)。要支持P6300,请注入设备ID 1622(HD6200)
- FakePCIID_Intel_HDMI_Audio.kext:此kext将附加到 8086:0c0c 或 8086:9d70 或 8086:a170
- 目的是为在 Haswell 及更高版本硬件上提供 HDMI 音频的不受支持的HDAU(通常称为B0D3,但已重命名为 HDAU 以符合Apple的期望)提供支持。8086:0c0c是不受支持的ID。支持其他两个 8086:0d0c 和 8086:0a0c。这个kext AppleHDAController 按 PCI 类加载,因此通常不会为此注入device-id,但是为了使 FakePCIID 正常工作,您可能需要注入RM,受支持的 device-id。默认情况下,kext注入RM,device-id = <0c 0a 00 00>(0x0a0c),可以使用DSDT编辑覆盖它。
- 例如,_DSM修补程序,用于HDAU设备,用于FakePCIID和HDMI音频,如果要 0x0d0c 而不是 0x0a0c。
- FakePCIID_Intel_HD_Graphics.kext (formerly FakePCIID_HD4600_HD4400.kext):此kext将附加到 8086:0412、8086:0416、8086:0a1e,8086:041e,8086:0a16、8086:041a,8086:016a,8086:191d 或 8086:162a
-
- 对于Skylake 8086:9d70 或 8086:1a70,它连接到 HDEF 设备(通常称为HDAS,但已重命名为HDEF以符合Aple的期望)。Skylake HDMI / DP音频编解码器与板载音频一起位于HDEF上。它为 0x9d70注入RM,device-id = <70 a1 00 00>,为 0xa170 注入RM,device-id = <70 9d 00 00>。换句话说,这两个设备ID将调换它们。如果已正确设置HDMI / DP音频的所有设置,但是不起作用,请尝试一下上面的方法。这是通过注意到Skylake HDMI音频可在NUC6i7KYK上运行而在其他NUC6设备上无法运行而发现的,这完全取决于系统。有些计算机需要交换它们,而其他计算机则不需要。
- 该扩展程序无法解决在HDMI / DP设置中可能遇到的其他问题/错误(例如,缺少“ hda-gfx”,不匹配的“ layout-id”注入,不正确或错误的帧缓冲区补丁或缺少ACPI重命名)。
- FakePCIID_AR9280_as_AR946x:此kext将附加到168c:0034或168c:002a。
- FakePCIID.kext的此特定应用程序用于将AR9280重命名为其他设备的情况。例如,对于Lenovo u430,将AR9280重命名为AR946x是很有用的,因为该设备被BIOS白名单允许,而AR9280则不允许。通过使用FakePCIID,即使设备本身正在报告168c:0034,我们也可以将PCI ID重新映射回AR9280(168c:002a)。
- FakePCIID_Broadcom_WiFi.kext(以前称为FakePCIID_BCM94352Z_as_BCM94360CS2.kext)。此kext将附加到14e4:43b1、14e4:4357、14e4:4331、14e4:4353、14e4:432b,14e4:43ba,14e4:43a3、14e4:43a3、106b:4e,14e4:4312、14e4:4313、14e4:4318、14e4:4319、14e4:431a,14e4:4320、14e4:4324、14e4:4325、14e4:4328、14e4:432c,14e4:432d。
- FakePCIID.kext最初是为BCM94352Z创建的,此特定应用程序用于在使用各种受支持的Broadcom WiFi设备时模拟真实的Apple Airport Extreme。
- FakePCIID_BCM57XX_as_BCM57765.kext:此kext将连接到许多不受支持的BCM57XX以太网设备,以使本机驱动程序可兼容更广泛的BCM以太网芯片组,但由于对PCI设备ID /子设备ID的探针测试而不受支持。
- FakePCIID_Intel_GbX.kext:此kext将连接到许多Intel以太网设备,以尝试使基于Intel芯片组的卡的Small Tree驱动程序正常工作。
- FakePCIID_XHCIMux.kext此kext将附加到8086:1e31、8086:9c31、8086:9cb1、8086:9c31和8086:8cb1。此注入器是对常规FakePCIID的扩展。它实际上并没有仿冒任何PCI-ID。而是将某些值强制设置为Intel XHCI USB3控制器上的XUSB2PR(PCI配置偏移0xD0)。效果是将连接到XHC端口上USB2引脚的任何USB2设备路由到EHC1。换句话说,使用USB2驱动程序而不是USB3驱动程序(AppleUSBEHCI与AppleUSBXHCI)处理USB2设备。
- 配置属性及其默认值:RM,pr2-force <00 00 00 00>。默认情况下,强制所有XHCI端口将USB2设备路由到EHC1。RM,pr2-init <01>。如果非零,将在启动时写入RM,pr2-force值。RM,pr2-嵌段<01>。如果非零,将阻止对XUSB2PR的写入。RM,pr2m块<01>。没有证据表明OS X驱动程序尝试写入XUSB2PRM(偏移量0xD4),但是由于此kext依赖此处的有效值(由BIOS提供),因此如果非零,则阻止对其写入。RM,pr2-honor-pr2m <01>:如果XUSB2PR非零,对XUSB2PR的更改将被XUSB2PRM屏蔽。RM,pr2-chipset-mask:使用此值屏蔽对XUSB2PR的写入。这由芯片组文档定义,默认值取决于芯片组。
- FakePCIID_AR9280_as_AR946x:此kext将附加到168c:0034或168c:002a。
- 有关更多信息,请参阅英特尔7/8/9系列芯片组数据表。
- 为了创建自己的注入器,您应该熟悉 IOKit 匹配和 kext Info.plist 文件。在 developer.apple.com 上有足够的文档,使用现有的注入器作为模板来构建自己的注入器。
DSDT 补丁
- FakePCIID.kext将返回在关联的IOPCIDevice下的IO注册表中找到的供应商ID,设备ID,子系统供应商ID和子系统ID。为了提供正确/受支持的值,采用_DSM注入(或带有Clover的FakeID)。例如,这是一个用于HD4600的补丁:
- 请注意,以上补丁中FakePCIID读取的唯一属性是“ device-id”。Clover的config.plist(FakeID)或(例如)Chimera的IGPDeviceID标志也可以提供“ device-id”注入。FakePCIID和IOKit匹配都使用“ device-id”属性。通常这是可以的,但是为了灵活性,也可以使用前缀属性“ RM”来指定FakePCIID使用的其他ID。因此,简化补丁如下所示:
- 当然,必须注入“ device-id”和“ ig-platform-id”,才能使用其他某种机制运行HD4600。但是FakePCIID.kext只能使用“ RM,device-id”来完成其工作。下面是AR9280中用作AR946x场景的补丁:
- 对于BCM94352CS2作为BCM94352Z,使用以下DSDT补丁:
- 请注意,节点PXSX和RP03特定于从属的DSDT,在这种情况下是Lenovo u430笔记本电脑,同样,针对WiFi场景的简化补丁看起来像这样:
- 假设原始示例中提供的“兼容”功能与某些其他机制(注入器kext或Clover配置)一起使用。下面列出了FakePCIID支持的属性及其对应的PCI配置空间偏移:
- Offset 0x00: "vendor-id", "RM,vendor-id"
- Offset 0x02: "device-id", "RM,device-id"
- Offset 0x2c: "subsystem-vendor-id", "RM,subsystem-vendor-id"
- Offset 0x2e: "subsystem-id", "RM,subsystem-id"
- 更多信息,参考:http://en.wikipedia.org/wiki/PCI_configuration_space
下载地址
此内容仅限VIP查看,请先登录
客服QQ271638927,网站统一解压密码imacos.top
原文链接:https://imacos.top/2019/09/16/fakepciid-kext/,转载请注明出处。
评论250