使用 Hackintool 定制黑苹果 USB 端口,适用于 Clover & OpenCore

2020-03-06 / 4.61w / 教程 / 6.41k / 19分钟

本文最后修改时间:2020年7月18日

黑苹果安装好macOS后,定制USB端口也是一项必不可少的操作。

很多新手看到装好系统后插个U盘可以正常工作就再不管了,其实这是因为配置好的引导工具里包含了 USB-Inject-All 等驱动,默认开启十多个USB端口,但这样是不对的,因为自动开启可能没有正确识别你的主板/笔记本电脑上各个端口的类型,进一步还可能带来供电管理问题,长期使用有可能会损坏USB端口(可能性不高,但是有)。

本文将介绍一种目前较为简单通用的方法(兼顾OpenCore)进行USB端口定制,除特殊情况外,可解决大部分机型的USB定制需求。如果未能解决你的问题,请见谅。

 

准备工作

  • 一个USB3.0接口的U盘(必须是USB3.0
  • USBInjectAll.kext:调试/注入USB端口需要的驱动,@Rehabman更新到了0.7.1版,@Sniki的分支更新到了0.7.5版
  • Hackintool.app:堪称黑苹果里的瑞士军刀
  • Clover Configurator.app:针对Clover方法
  • OpenCore Configurator:针对OpenCore方法,和Plistedit Pro二选一
  • Plistedit Pro.app:针对OpenCore方法,和OpenCore Configurator二选一
  • 开始定制之前,把所有外置USB设备全部拔下,仅保留键盘鼠标(插在USB2.0接口)。

 

OpenCore引导的USB定制方式

下面这个部分将同时展示使用Plistedit Pro和OpenCore Configurator的USB定制方法,二选一即可,老手推荐Plistedit Pro,新手推荐OpenCore Configurator。默认你已经把USBInjectAll.kext放到了OpenCore引导的驱动目录:/EFI/OC/Kexts 。如果config.plist中没有启动驱动,参阅下图:

然后,开启所有USB端口,见图:

接下来,在NVRAM的Add下7C436110-AB2A-4BBB-A880-FE41995C9F82添加引导参数:-uia_exclude_ss

config.plist → NVRAM → Add → 7C436110-AB2A-4BBB-A880-FE41995C9F82 → boot-args

这是一个USBInjectAll的启动参数,意思是不启动USB3.0接口支持(HS=HighSpeed,这里指USB2.0,SS=SuperSpeed,这里指USB3.0)。

  • 「重要提示」演示机的主板除了USB2.0和USB3.0以外还有第三方USB3.1总线,为方便演示,采取分别屏蔽USB2.0和USB3.0的步骤,如果你的不是X99、X299系列等动不动就二十多个USB接口的主板,可以不用分别屏蔽,直接跳到下面Hackintool插拔U盘环节;

  • 「重要提示」如果不分别屏蔽,在插拔过程中可能出现以下情况:U盘插入USB2.0端口,Hackintool里HS和SS端口同时亮起,请先确认插入的是正确的USB2.0端口(见上图),确定是USB2.0的情况下删除Hackintool里亮起的SS端口;如果插入USB3.0端口,Hackintool里同时亮起HS和SS端口,先找纸笔记录下来,例如
    • 主板后置01(编号自定,你自己知道指的是哪个口就行):亮起 HS01 和 SS01;
    • 主板后置02:亮起 HS02 和 SS02;
    • 主板后置03:亮起 HS03 和 SS03;
    • ……以此类推
  • 这是因为 USB3.0 接口同时兼容 USB2.0,因此存在同一接口不同通道的情况。但是这样一来,中高端主板很容易出现 USB 端口总数超 15 个的情况,此时可根据你之前的端口笔记适当删除主板后置 USB2.0 的兼容通道。

然后保存退出,重启。

重启后,运行Hackintool开始插拔U盘步骤,切换到USB选项卡,见图:

这时应该出现类似下图的显示:

这个时候,所有显示的接口都是USB2.0,接下来拿出准备好的U盘,把主机所有的USB2.0接口都插拔一遍(包括键盘鼠标,机箱前面板和后挡板所有的USB2.0接口),速度不宜过快,最好插上去看一下系统有没有反应,如果系统挂载了U盘,弹出,再插下一个端口。全部插拔一遍以后,你会发现插拔过的接口会显示绿色。

超级会员免费 永久超级会员免费

已有452人查看

桌面上会生成以下三个文件,代表两种不同的打补丁方式,这里推荐使用kext。把生成的USBPorts.kext放到 /EFI/OC/Kexts 目录。

到这里基本上就完成了,现在需要回到 config.plist,删除上面添加的启动参数:

uia_include=HS01,HS02 -uia_exclude_hs

然后编辑 config.plist,主要是禁用 USBInjectAll,启用刚生成的 USBPorts。

保存 config.plist,重启。到这里USB端口定制完成。

 

Clover引导的USB定制方式

鉴于Clover Configurator已经成熟可靠,Clover定制方法采用 Clover Configurator + Hackintool。默认你已经把USBInjectAll.kext放到了该放的地方,如果没有,运行Clover Configurator,挂载EFI分区,并把USBInjectAll.kext 放到Clover的驱动文件夹:/EFI/Clover/kexts/other

接下来,需要开启Clover引导USB端口限制,运行Hackintool,见图:

图中由上往下第1-2是解锁USB端口限制补丁,剩下的是设备重命名补丁。如图所示 EHC 和 XHCI 重命名补丁根据自己的主板选择,演示主板是 Z370 可以只用 XHCI 重命名,但加上也没有影响。如上图所示,在第四步点击应用后,会导出 config.plist 文件,可直接覆盖 EFI 分区中 Clover 的配置文件(Hackintool会自动备份原文件)。重启系统,运行Clover Configurator,切换到引导参数一栏,添加引导参数:

-uia_exclude_ss

该参数的意思是关闭USB3.0支持(SS=SuperSpeed,指USB3.0;HS=HighSpeed,指USB2.0)

  • 「重要提示」小编的电脑主板和机箱除了USB2.0和USB3.0以外还有第三方USB3.1总线,为方便演示,采取分别屏蔽USB2.0和USB3.0的步骤,如果你的主板不是X99、X299系列,可以不用分别屏蔽,直接跳到下面Hackintool插拔U盘环节;

  • 「重要提示」如果不分别屏蔽,在插拔过程中可能出现以下情况:U盘插入USB2.0端口,Hackintool里HS和SS端口同时亮起,请先确认插入的是正确的USB2.0端口(见上图),确定是USB2.0的情况下删除Hackintool里亮起的SS端口;如果插入USB3.0端口,Hackintool里同时亮起HS和SS端口,先找纸笔记录下来,例如
    • 主板后置01(编号自定,你自己知道指的是哪个口就行):亮起 HS01 和 SS01;
    • 主板后置02:亮起 HS02 和 SS02;
    • 主板后置03:亮起 HS03 和 SS03;
    • ……以此类推
  • 这是因为 USB3.0 接口同时兼容 USB2.0,因此存在同一接口不同通道的情况。但是这样一来,中高端主板很容易出现 USB 端口总数超 15 个的情况,此时可根据你之前的端口笔记适当删除主板后置 USB2.0 的兼容通道。

然后保存退出,重启。

重启后,打开Hackintool,并切换到USB选项卡,删除所有端口并刷新,此时应该仅显示HS01..HS02..HS03等十多个端口,见图:

此时应该类似下图显示:

这个时候,所有显示的接口都是USB2.0,接下来拿出准备好的U盘,把主机所有的USB2.0接口都插拔一遍(包括键盘鼠标,机箱前面板和后挡板所有的USB2.0接口),速度不宜过快,最好插上去看一下系统有没有反应,如果系统挂载了U盘,弹出,再插下一个端口。全部插拔一遍以后,你会发现插拔过的接口会显示绿色。

超级会员免费 永久超级会员免费

已有452人查看

桌面上会生成以下三个文件,代表两种不同的打补丁方式,这里推荐使用kext。把生成的USBPorts.kext放到 /EFI/Clover/kexts/other 目录。

到这里基本上就完成了,现在需要启动Clover Configurator,切换到引导参数界面,删除上面添加的启动参数:

uia_include=HS01,HS02 -uia_exclude_hs

把 /EFI/Clover/kexts/other 目录中原来的 USBInjectAll.kext 删除,或备份到其它地方即可,定制完成。

 

解决休眠/唤醒USB供电方法参考

  • 如果你的USB端口定制正确,Hackintool 生成的最终文件中应该已经已经包含解决休眠供电的补丁。如果无效,则参考以下部分。
  • 为了节省电池,笔记本电脑多数都要经历解决休眠问题的痛苦,而台式机黑苹果不建议使用休眠功能,休眠后大概率会遇到USB接口断电不能自动恢复的问题,这里提供解决休眠USB供电的思路。
  • Hackintool生成的USBPorts.kext其实是一种“Codeless Kernel Extensions”,字面意思是无代码核心扩展(简称 codeless kext),其核心作用是使新设备与现有驱动程序匹配。
  • codeless kext 是不包含可执行文件的核心扩展包(kext bundle),其中 info.plist 的 IOKitPersonalities 节点(字典类型)会在遇到匹配的新设备时使之与现有的驱动程序(kext)匹配。而后者都必须具有一个可执行文件。codeless kext 通常与用于驱动用户的USB和HID设备(HID:Human Interface Device,例如触摸板,手柄等)。由于内核驱动程序(kext)实现了标准协议,因此这些类别中的几乎所有设备都可以使用它。
  • 在这个例子中,USB端口上的U盘共享 macOS 提供的通用驱动程序 AppleUSBMergeNub.kext。在U盘连接到计算机后,USBPorts.kext 匹配到 USB 设备后将加载 AppleUSBMergeNub.kext 来驱动它。下图是生成的 USBPorts.kext 中的 IOKitPersonalities 截图:


超级会员免费 永久超级会员免费

已有452人查看

如有错误,欢迎指正。

0. 本站所有资源解压密码均为 heipg.cn
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,请及时邮箱[email protected],或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:[email protected],我们将第一时间配合处理!
扫描QQ二维码加入【黑苹果星球交流群】

黑苹果星球 » 使用 Hackintool 定制黑苹果 USB 端口,适用于 Clover & OpenCore

16 评论

  1. 原来定制是这么一回事,还真是挺麻烦的

  2. 学习中,正在找在win10上的 U盘制作方法

  3. 学习学习,还不会定制

  4. 我也是8700k。z370主板 为啥没有 usb ports limit pach这个东西呢

  5. 学习学习,还不会定制

发表评论