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这个无代码驱动代替它。