USB端口修补

MacOS 10.14.1以上版本暂时没有可用的USB端口限制补丁，这可能导致无法同时使用电脑上的所有USB端口。Rehabman已更新USBInjectAll.kext来包含用于排除端口组的启动标志。

使用方法

1、将用于端口识别的USBInjectAll.kext放入EFI/CLOVER/kexts/Other，并用四叶草编辑器在config.plist中对DSDT中以下名称重命名四叶草（有哪些就重命名哪些）：

◦XHCI -> XHC

◦XHC1 -> XHC

◦EHC1 -> EH01

◦EHC2 -> EH02

2、重启

3、运行Hackintool，进入“已安装”选项卡，检查USBInjectAll是否正确安装。

示例：USBInjectAll: Yes (Release-0.7.1)

4、进入“USB”选项卡查看USB控制器列表。基于USB控制器类型，可能需要安装其他驱动。如需要安装额外驱动，请安装该驱动，然后重新启动再次运行Hackintool。

以下是额外驱动列表：

◦8086:8CB1， macOS版本小于< 10.11.1 -> XHCI-9-series.kext

◦8086:8D31, 8086:A2AF, 8086:A36D, 8086:9DED -> XHCI-unsupported.kext

◦8086:1E31, 8086:8C31, 8086:8CB1, 8086:8D31, 8086:9C31, 8086:9CB1 -> FakePCIID.kext + FakePCIID_XHCIMux.kext

5、转到“USB”选项卡，选择USB端口列表中的所有项目，点击“删除”按钮，再点击“刷新”按钮。

6、在config.plist中添加 -uia_exclude_ss、uia_include=HS01,HS02启动选项后，重新启动，在HS01、HS02两端口连接鼠标和键盘。

7、运行Hackintool并转到“USB”选项卡，将USB 2.0设备依次插入到系统上所有USB端口，活动的端口将保持绿色高亮，所有未绿色高亮的端口则需要删除。

8、在config.plist中添加-uia_exclude_hs并删除-uia_exclude_ss 启动选项后重启，再次运行Hackintool进入“USB”选项卡，将一个USB 3.0设备与一个TypeC设备依次插入系统上的所有可用端口（TypeC为双向的），活动的端口将保持绿色高亮，删除那些未绿色高亮的端口。

9、接下来对于所有保留下来的端口，点击每一个的“类型”，在弹出的下拉列表里选择正确端口类型：

◦板载设备（如M2蓝牙卡）设置为“Internal”

◦USB3.0的HSXX端口设置为“USB3”。

◦内部集线器通常连接到PR11和PR21，设置为“Internal”

◦对于TypeC，如果它在2.0与3.0下使用相同的HSXX/SSXX，那么选择“TypeC+Sw”，否则选择 “TypeC”

10、使用“导出”按钮将文件生成到桌面，导出的文件有两种形式，你可以自由选择：

1.导出USBPorts.kext，并复制到EFI/CLOVER/kexts/Other

2.导出SSDT-UIAC.aml和SSDT-USBX.aml ，复制到EFI/CLOVER/ACPI/patched

11、如果生成了SSDT-EC.aml，将其复制到EFI/CLOVER/ACPI/patched

12、清理不必要的文件，删除启动标志-uia_exclude_ss -uia_exclude_hs uia_include=x，删除USBInjectAll.kext

13、重新启动，运行Hackintool，进入“USB”选项卡，选择USB端口列表中的所有项目，点击“删除”，然再点击“刷新”，查看所有端口是否正常工作。如果需要更改端口类型，则需要在更改完成后重新导出USBPorts.kext并复制替换；如果修补错误导致端口不正常，请删除USBPorts.kext然后从头再来。

关于USB相关的QAQ

Q:什么是USBPorts.kext？

A.这是一个用于注入USB端口的无代码驱动。

Q:我需要SSDT-UIAC.aml吗？

A.不，此方法使用了USBPorts.kext这个无代码驱动代替它。