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

2020-03-06 / 3.01w / 教程 / 6.12k / 18分钟

本文最后修改时间:2020年4月11日

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

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

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

 

准备工作

  • 一个USB3.0接口的U盘
  • USBInjectAll.kext:调试/注入USB端口需要的驱动,@Rehabman更新到了0.7.1版,@Sniki的分支更新到了0.7.3版
  • 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系列,可以不用分别屏蔽,直接跳到下面Hackintool插拔U盘环节;

  • 「重要提示」如果不分别屏蔽,在插拔过程中可能出现以下情况:U盘插入USB2.0端口,Hackintool里HS和SS端口同时亮起,请先确认插入的是正确的USB2.0端口(见上图),确定是USB2.0的情况下删除Hackintool里亮起的SS端口,反之则删除HS端口;如果定制完成后USB3.0端口无法识别设备,则考虑还有一种特殊情况,主板HS01-HS04和SS01-SS04在物理上是同一个端口,这种情况一般只出现在台式机上,需要删除HS保留SS,并设置为USB3模式。

然后保存退出,重启。

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

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

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

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

已有222人查看

桌面上会生成以下三个文件,代表两种不同的打补丁方式,这里推荐使用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端口,反之则删除HS端口;如果定制完成后USB3.0端口无法识别设备,则考虑还有一种特殊情况:主板HS01-HS04和SS01-SS04在物理上是同一个端口,一般只出现在台式机上,需要删除HS保留SS,并设置为USB3模式。

然后保存退出,重启。

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

此时应该类似下图显示:

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

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

已有222人查看

桌面上会生成以下三个文件,代表两种不同的打补丁方式,这里推荐使用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 截图:


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

已有222人查看

如有错误,欢迎指正。

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

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

9 评论

  1. 学习一下。/

  2. 按说明定制好了,蓝牙也显示了,能连接AirPods了,但是过不了多久就断开,即使连上AirPods,听歌也没声音,不懂啥情况。

    1. 检查一下是否信号强度问题

  3. 学习学习,还不会定制,失败了两次

  4. 教程看着很详细很详细

  5. 看下是否有用。。。

  6. 很完整很完整

  7. 这个USB定制教程很完整

  8. 好麻烦。哈哈,又要花时间整理

发表评论