前言

Clover支持两种启动方式,启动过程如下:

  • 基于BIOS的电脑(老式主板)
    BIOS -> MBR -> PBR -> boot -> CLOVERX64.efi -> OSLoader

  • 基于UEFI的电脑(新式主板)
    UEFI -> CLOVERX64.efi -> OSLoader

对于支持UEFI的机器,我们通常用CLOVER引导原版安装,这种方式最大的优点就是有恢复分区可以正常升级,当然前提要把引导做好。

前期知识储备

CLOVER的目录结构

CLOVER正常工作需要的完整目录包括config.plistCLOVERX64.efi两个文件以及ACPIdrivers64UEFIkexts、和themes几个目录,如图所示:

其中,config.plist是最核心的文件—-配置文件,CLOVER所实现的多数功能都是通过这个文件进行配置的,对其进行配置修改的最好用的工具就是Clover Configurator,主页面如下:

详细的配置方法下面会有介绍。

另外一个文件是CLOVERX64.efi,这个文件用以启动CLOVER引导,通过EasyUEFI或者BIOS对启动项进行添加操作时,就是指向的这个文件。

ACPI是用以存放机器ACPI表单的,全称是”高级配置和电源管理接口”(Advanced Configuration and Power Interface),其子目录由originpatchedWINDOWS构成,其中origin用以保存通过在CLOVER引导界面按F4Fn F4提取的原始表单,此目录的所有表文件是不加载的,需要对其进行编译得到.dsl文件,然后对其进行修改拍错,最后保存成.aml文件保存至patched目录才会在启动时加载,而WINDOWS目录则可以忽略不计。在黑果中,我们用到的表单文件只有SSDTDSDT,其中DSDT主要是对各种设备的描述,而SSDT则主要是用以实现某个功能。

drivers64UEFI是由各种EFI驱动组成,在笔记本黑果需要用到的有FSInject-64.efiHFSPlus-64.efiOsxAptioFixDrv-64.efiAPFS.efi以及OsxFatBinaryDrv-64.efi,在新版CLOVER中只需要FSInject-64.efiHFSPlus-64.efiOsxAptioFixDrv-64.efi、以及APFS.efi

kexts主要用于存储各种驱动(OS X称为内核扩展)

themes用以存储CLOVER引导界面的主题

根据机器配置定制kext

kextEFI的配置中是相当重要的,好的kext配置可以弥补config的不足,不好的kext配置也会让本应完美的config发挥不出作用。

FakeSMC.kext:FakeSMC是现今的⿊黑苹果过程中唯⼀一的”必要性”内核扩展程序。对于⿊黑苹果有着⽆与伦比的重要性,但是很多⼈并不知道FakeSMC为什么重要,只是知道必须有它才⾏行,。简⽽而⾔言之就是: FakeSMC是⽤用于将PC主板上的各种控制芯⽚片伪装成Mac独有的硬件控制芯片SMC以骗过系统从⽽而是系统正常启动的⼀一个内核扩展(其实很复杂,这⾥里不多说了)。在系统启动的阶段,FakeSMC负责告知系统有关主板上SMC芯⽚片(伪装出来的)的各种加密信息,欺骗系统。也就是说呢,无论你笔记本是什么配置,此驱动是必须的。

ApplePS2SmartTouchPad.kextVoodooI2C.kextVoodooPS2Controller.kext:此驱动用以驱动键盘鼠标以及触摸板,两者选择一个即可,两者区别就是适用的类型不一样,有PS/2Synapticsalpsi2c等等,其中SynapticsalpsApplePS2SmartTouchPad.kext适配性好一些,VoodooI2C.kext比较麻烦,仅适用于i2c触摸板。具体怎么确定走的总线类型,大家参考百度就好了,这里就不再赘述。

FakePCIID.kext:这个kext的目的是与IOPCIDevice设备建立连接,以便当另一个驱动程序连接到同一设备时,它可以提供备用的PCI ID。也就是说,如果用到Fake-PCI-ID中的其他任何kext的话,此驱动都是必要的。

FakePCIID_Intel_HD_Graphics.kext:此驱动主要用于核显HD4200 HD4400 HD4600 P4600Iris 540 Iris 550 Iris Pro 580HD510 HD515 HD520 HD530 P530(多数530不需要这个)、P4000P6300 - 162aUHD620 KabyLake-R UHD630 CoffeeLake

FakePCIID_Intel_HDMI_Audio.kext:其目的是为不支持的HDAU提供支持(通常称为B0D3,但需要将其重命名为HDAU,以满足Apple的期望值)在Haswell以上的系统中提供HDMI-audio的设备。

FakePCIID_BCM57XX_as_BCM57765.kext:这个kext将与众多不受支持的BCM57XX以太网设备建立连接,以使本机驱动程序为兼容的更广泛的BCM以太网芯片组工作。

FakePCIID_Intel_GbX.kext:这个kext将与一些Intel以太网设备建立连接,以使基于Intel芯片组的驱动程序工作。

FakePCIID_XHCIMux.kext:将会连接到8086:1e31, 8086:9c31, 8086:9cb1, 8086:9c31, 8086:8cb1这个注入器是正常的FakePCIID任务的一部分。它实际上并没有伪造任何PCI id。相反,它将某些值强加于Intel XHCI USB3控制器上的XUSB2PR (PCI配置偏移0xD0)。其效果是将任何USB2设备与XHC端口上的USB2引脚连接到EHC1。换句话说,使用USB2驱动而不是USB3驱动程序(AppleUSBEHCI vs AppleUSBXHCI)处理USB2设备。

FakePCIID_AR9280_as_AR946x:这是FakePCIID.kext的特殊应用,是在一个AR9280被重新命名为其他设备的情况下使用的。例如,在联想u430中,将一个AR9280作为AR946x重新命名是很有用的,因为该设备可以被BIOS白名单所允许,而AR9280不是。通过使用FakePCIID,我们可以将PCI id重新映射回AR9280 (168c:002a),即使该设备本身报告的是168c:0034。

FakePCIID_Broadcom_WiFi.kext:这个kext将连接到14e4:43b1, 14e4:4357, 14e4:4331, 14e4:4353, 14e4:432b, 14e4 . 432b, 14e4:43a3,或14e4:43a0。以及106b:4e, 14e4:4312, 14e4:4313, 14e4:4318, 14e4:431a, 14e4:4320, 14e4:4324, 14e4:4324, 14e4:4328, 14e4:432d。
最初是为BCM94352Z创建的,这个特殊的FakePCIID应用程序。在使用多种支持的Broadcom WiFi设备时,kext被用来模拟真正的Apple Airport(苹果无线网卡)。

ACPIBatteryManager.kext:用以使笔记本正确显示电量,但通常需要配合DSDTpatch才能发挥作用。

VoodooHDA.kext:万能声卡驱动,用以禁用AppleHDA来驱动声卡。

AppleALC.kext:通过对AppleHDA的动态patch实现对AppleHDA的完整加载。

Lilu.kext:一个开放源码的内核扩展,为macOS系统提供了一个任意的kext、库和程序补丁的平台。

IntelGraphicsDVMTFixup.kext:修复因BIOS显存分配不足造成的KP。建议broadwell+平台使用。

IntelGraphicsFixup.kext:动态修复核显的各种问题(例如腾讯视频死机,开机二阶段花屏等),建议Haswell+平台使用。

CoreDisplayFixup.kext:为不受支持的4K机器(非Iris)开启高分辨率支持。

AzulPatcher4600.kext:针对HD4600的额外修复,仅推荐HD4600使用。

HibernationFixup.kext:修复睡眠,以支持某些机器在3和28休眠模式下的正常休眠。

NvidiaGraphicsFixup.kext:修复某些n卡的黑屏。

WhateverGreen.kext:用以驱动A卡。

RealtekRTL8111.kext:用以驱动RealtekRTL8111.kext以太网卡设备。

AppleIGB.kextIntelMausiEthernet.kext:用以驱动Intel板载网卡设备。

根据机器配置定制config

Clover 可以根据硬件进行自动配置,但是自动配置组件并不总是完美的。这也是保留用户可以自定义配置的原因。用户可以修改配置文件config.plist中的配置参数,或者基于GUI的配置界面进行修改配置。配置文件是基于XML的,可以以文本文件来处理。它可以用纯文本编辑器进行编辑,也可以用plist编辑器进行编辑,如PlistEdit。配置文件 (config.plist) 必须放在EFI/CLOVER目录下。

这里遵循一个原则,尽可能简单的设置config,不知道具体作用的就让他空着好了,如果你不知道参数的需求值是什么,就从配置文件中排除!不要用没有值的参数。

正所谓前人种树,后人乘凉,很多黑果的热心朋友已经为我们做好了教程,这里我直接拿来用了。

  • ACPI-1

  • ACPI-2

  • BOOT

  • CPU

  • Device

  • Disable Drivers

  • GUI

  • Graphics

  • Kernel and Kext Patches

  • Rt Variables

  • SMBIOS

  • System Parameters

不敢下手的没关系,我给一个最简单的模板,全按这个来就足可以装上最常见的。

敢下手了,没有Mac环境?没关系,送你们在线编辑器,点这里传送门。里面目前加入了一些常见的配置,帮你完成一部分工作。

了解drivers64UEFI各个.EFI文件的作用,精简引导

BIOS启动过程中要用到drivers32drivers64目录,UEFI启动过程中则使用drivers64UEFI目录。它们的内容会根据配置和BIOS版本而有所不同。

必须要提的一点是这些驱动程序只在bootloader运行时有效,不会影响最终启动的操作系统。

至于到底要使用哪些驱动程序由用户来决定。

  • NTFS.efi

NTFS文件系统驱动程序。用于启动Windows EFI系统。

  • HFSPlus.efi
    HFS+文件系统驱动程序。这个驱动对于10.13之前的系统版本来启动Mac OS X是必须的。

  • APFS.efi
    APFS文件系统驱动程序。这个驱动对于在10.13的系统版本通过APFS装的黑果来启动Mac OS X是必须的。

  • VBoxHFS.efi
    HFSPlus.efi的替代品,性能要差一点。

  • VBoxExt2.efi
    EXT2/3文件系统驱动。用于启动Linux EFI系统。

  • VBoxExt4.efi
    EXT4文件系统驱动。用于启动Linux EFI系统。

  • FSInject.efi
    控制文件系统注入kext到系统的可能性。

  • PartitionDxe.efi
    已经存在于在CloverEFIUEFI中,但没有为Apple分区优化,也没有为GPT/MBR优化。

  • OsxFatBinaryDrv.efi
    允许加载FAT模块比如boot.efi

  • OsxAptioFixDrv.efi
    修复AMI Aptio EFI内存映射。如果没有就不能启动OS X

  • OswLowMemFix.efi
    OsxAptioFixDrv的简化版。两个不能同时使用。

  • DataHubDxe.efi
    已经存在于在CloverUEFI中。建议还是使用它,不会产生冲突。

  • CsmVideoDxe.efi
    UEFI里提供更多分辨率的显卡驱动。

看了这么多,千万不要崩溃,我告诉大家一个经验,一般Drivers64UEFI目录只需要下面几个.EFI驱动就够了。

进攻ACPI,完美黑苹果(进阶篇)

论坛贡献会员daxuexinsheng已经翻译了RehabManDSDT教程,可以说是非常详细,可以直接参考:使用补丁修改DSDT/SSDT,以及RehabMan的原贴

如果你喜欢hotpatch,可以参考我的翻译帖Clover-ACPI-hotpatch,不过由于我太懒还没翻译完哈哈。当然还是推荐RehabMan的原贴

准备工作

安装步骤

利用Transmac将原版镜像写入u盘

打开TransMac,右键选择欲制作的USB盘符,选择Restore with Disk Image,选择下载好的dmg文件,会弹出窗口,提示将要格式化USB磁盘,点击OK按钮继续,耐心等待写盘的完成。写入完成,若弹出对话框提示将其格式化,点击取消。

利用鲁大师等软件查看自己机器的配置信息,来定制config和需要用的kext

这一步想必不用我多说,大家利用鲁大师或者AIDA64看一下自己配置好了。有一点提示,尽量在安装过程中不考虑各种kext,尽量用少的驱动去安装,安装完成后再完善驱动,这样可以减少许多安装中的错误,也利于排错,但需要注意的必备的驱动一定要放,例如FakeSMC.kext、还有就是键盘驱动。当然老鸟无所谓了,直接把需要用到的都放上就OK了。以我自己机器为例,配置如下:

主板       Asus X455LD Intel Haswell-ULT - Lynx Point-LP

独立显卡    Nvidia GeForce 820M 2G 

核心显卡    HD4400

声卡        Realtek @ Intel Lynx Point-LP  High Definition Audio (CX20751)

以太网卡    Realtek RTL8168/8111/8112 Gigabit Ethernet Controller / Asus

无线网卡    Atheros AR956X

按照上面的驱动简要说明,我以太网卡是RTL8111,那么需要RTL8111.kext、核心显卡是HD4400,就需要FakePCIID.kextFakePCIID_Intel_HD_Graphics.kext,声卡比较麻烦,暂时不考虑,无线网卡是Atheros AR956X,那么我需要ATH9KFixup.kext,又要依赖Lilu.kext,所以需要Lilu.kext,四代低压机器,我需要IntelGraphicsFixup.kext来解决腾讯视频死机的问题,所以放上这个。暂时只考虑这些驱动吧,下面就进入安装阶段。

重启利用U盘启动选择安装盘

开机按esc键进入启动项列表,不同厂商热键不同,参考下图:

选择U盘进入,这里就不介绍太多了,大家玩黑果的想必对BIOS不会陌生,不过需要注意的是需要将BIOS中的安全启动关掉。

接下来就会进入CLOVER引导界面

通过键盘方向键选中Boot OS X Install from ******代表你的镜像名字,然后回车。

等待进入安装界面。

这里选择自己擅长的语言好啦。

磁盘工具分区

选择磁盘工具,并继续

选择显示所有设备

选择SSD Media,点击抹掉按钮,选择默认的Mac OS扩展(日志型),在10.13中如果装在SSD上,也可以选择APFS,将名称修改为Macintosh HD(名字随意啦,自己喜欢就好,但要是英文),点击抹掉按钮,抹掉完成后,点击完成按钮。

然后退出磁盘工具,到这里,磁盘工具的动作就已经结束了。

退出磁盘工具,选择安装macos选中刚才抹掉的分区开始安装

选择安装macOS,并继续

接下来按照提示一步一步来就好了,有一步需要注意的就是选择安装分区时,选择自己之前抹掉的那个分区。

接下来静静等待,会有一次自动重启,依然用U盘启动,注意这次会在引导界面多出一个图标,选择除第一次选的图标外的另一个图标。然后继续等待

系统安装完成后,重启进入系统设置向导,接下来根据下面的图一步一步设置就好了

这里选择现在不传输任何信息

这里注意,一定不要选择加密!!!

转移CLOVER到硬盘ESP,摆脱U盘引导

这里用到前期准备的EasyUEFI,在Windows下安装打开此软件,添加CLOVER启动项,并置顶。具体操作参考:黑苹果安装从0开始—-clover优盘引导改硬盘引导篇

后期的驱动安装以及优化

屏蔽无用的独显降低温度

参考我之前的帖子:Disable the discrete GPU in laptop

摆脱万能声卡,利用AppleALC加载原生声卡

参考我之前的帖子:Driver-audio-for-hackintosh
还有这个帖子:自己动手用上AppleALC,使用原生AppleHDA

通过对DSDT打补丁完善电池显示

参考pcbetadaxuexinsheng的帖子
tonymacx86RehabMan的帖子

加载x86实现变频和原生电源管理,完善节能器信息

  • 对于Haswell以及Broadwell平台,利用ssdtPRGen生成SSDT,在configdropCpuPmCpu0Ist两个表,并利用FakeSMCDSDThotpatch加载AppleLPC
  • 对于Skylake及以上平台,选择支持HWP的合适的机型,并勾选HWPEnable

注入HiDPI和显示器信息完善唤醒后的花屏、闪屏、撕裂屏问题

参考:macOS Sierra 10.12下 开启HiDPI 傻瓜式开启教程

写在最后

本帖多处引用现成帖子,只是将整个流程做个陈述,意在整理思路,以便大家更好地理解实践。本人水平有限,帖子中的不正确之处希望大家积极批评指出,一起完善。

楼主真的是懒到蜕皮(手动滑稽哈哈)帖子中图片很多是出自黑果小兵的博客:macOS安装教程兼小米Pro安装过程记录

感谢各位黑果前辈的好帖子,引用太多,文中也有说明,就不一一列出了。

待续……