笔记本原版黑苹果安装教程
前言
Clover支持两种启动方式,启动过程如下:
基于
BIOS
的电脑(老式主板)
BIOS -> MBR -> PBR -> boot -> CLOVERX64.efi -> OSLoader基于
UEFI
的电脑(新式主板)
UEFI -> CLOVERX64.efi -> OSLoader
对于支持UEFI
的机器,我们通常用CLOVER
引导原版安装,这种方式最大的优点就是有恢复分区可以正常升级,当然前提要把引导做好。
前期知识储备
CLOVER
的目录结构
CLOVER
正常工作需要的完整目录包括config.plist
、CLOVERX64.efi
两个文件以及ACPI
、drivers64UEFI
、kexts
、和themes
几个目录,如图所示:
其中,config.plist
是最核心的文件—-配置文件,CLOVER
所实现的多数功能都是通过这个文件进行配置的,对其进行配置修改的最好用的工具就是Clover Configurator
,主页面如下:
详细的配置方法下面会有介绍。
另外一个文件是CLOVERX64.efi
,这个文件用以启动CLOVER
引导,通过EasyUEFI
或者BIOS
对启动项进行添加操作时,就是指向的这个文件。
ACPI
是用以存放机器ACPI
表单的,全称是”高级配置和电源管理接口”(Advanced Configuration and Power Interface)
,其子目录由origin
、patched
、WINDOWS
构成,其中origin
用以保存通过在CLOVER
引导界面按F4
或Fn F4
提取的原始表单,此目录的所有表文件是不加载的,需要对其进行编译得到.dsl
文件,然后对其进行修改拍错,最后保存成.aml
文件保存至patched
目录才会在启动时加载,而WINDOWS
目录则可以忽略不计。在黑果中,我们用到的表单文件只有SSDT
和DSDT
,其中DSDT
主要是对各种设备的描述,而SSDT
则主要是用以实现某个功能。
drivers64UEFI
是由各种EFI
驱动组成,在笔记本黑果需要用到的有FSInject-64.efi
、HFSPlus-64.efi
、OsxAptioFixDrv-64.efi
、APFS.efi
以及OsxFatBinaryDrv-64.efi
,在新版CLOVER
中只需要FSInject-64.efi
、HFSPlus-64.efi
、OsxAptioFixDrv-64.efi
、以及APFS.efi
kexts
主要用于存储各种驱动(OS X
称为内核扩展)
themes
用以存储CLOVER
引导界面的主题
根据机器配置定制kext
kext
在EFI
的配置中是相当重要的,好的kext
配置可以弥补config
的不足,不好的kext
配置也会让本应完美的config
发挥不出作用。
FakeSMC.kext
:FakeSMC
是现今的⿊黑苹果过程中唯⼀一的”必要性”内核扩展程序。对于⿊黑苹果有着⽆与伦比的重要性,但是很多⼈并不知道FakeSMC
为什么重要,只是知道必须有它才⾏行,。简⽽而⾔言之就是: FakeSMC
是⽤用于将PC
主板上的各种控制芯⽚片伪装成Mac独有的硬件控制芯片SMC
以骗过系统从⽽而是系统正常启动的⼀一个内核扩展(其实很复杂,这⾥里不多说了)。在系统启动的阶段,FakeSMC
负责告知系统有关主板上SMC
芯⽚片(伪装出来的)的各种加密信息,欺骗系统。也就是说呢,无论你笔记本是什么配置,此驱动是必须的。
ApplePS2SmartTouchPad.kext
、VoodooI2C.kext
和VoodooPS2Controller.kext
:此驱动用以驱动键盘鼠标以及触摸板,两者选择一个即可,两者区别就是适用的类型不一样,有PS/2
、Synaptics
、alps
、i2c
等等,其中Synaptics
、alps
用ApplePS2SmartTouchPad.kext
适配性好一些,VoodooI2C.kext
比较麻烦,仅适用于i2c
触摸板。具体怎么确定走的总线类型,大家参考百度就好了,这里就不再赘述。
FakePCIID.kext
:这个kext的目的是与IOPCIDevice
设备建立连接,以便当另一个驱动程序连接到同一设备时,它可以提供备用的PCI ID
。也就是说,如果用到Fake-PCI-ID
中的其他任何kext
的话,此驱动都是必要的。
FakePCIID_Intel_HD_Graphics.kext
:此驱动主要用于核显HD4200 HD4400 HD4600 P4600
、Iris 540 Iris 550 Iris Pro 580
、HD510 HD515 HD520 HD530 P530
(多数530不需要这个)、P4000
、P6300 - 162a
、UHD620 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
:用以使笔记本正确显示电量,但通常需要配合DSDT
的patch
才能发挥作用。
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.kext
、IntelMausiEthernet.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
启动过程中要用到drivers32
或drivers64
目录,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
已经存在于在CloverEFI
和UEFI
中,但没有为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已经翻译了RehabMan
的DSDT
教程,可以说是非常详细,可以直接参考:使用补丁修改DSDT/SSDT,以及RehabMan的原贴。
如果你喜欢hotpatch
,可以参考我的翻译帖Clover-ACPI-hotpatch,不过由于我太懒还没翻译完哈哈。当然还是推荐RehabMan的原贴。
准备工作
- 集成
CLOVER
的原版镜像链接:https://pan.baidu.com/s/1gfTmRj9 密码:s3dv
Transmac
链接:https://pan.baidu.com/s/1oAn79Zc 密码:yafn
easyUEFI
链接:https://pan.baidu.com/s/1nwqbnMp 密码:gxoc
Clover Configurator
四叶草助手链接:https://pan.baidu.com/s/1ht2wFQW 密码:tbce
DiskGenius
链接:https://pan.baidu.com/s/1cVyULo 密码:pfrm
- 鲁大师/
AIDA64
(推荐)/也可以用设备管理器自行度娘
安装步骤
利用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.kext
、FakePCIID_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
打补丁完善电池显示
参考pcbeta
daxuexinsheng的帖子tonymacx86
RehabMan的帖子
加载x86
实现变频和原生电源管理,完善节能器信息
- 对于
Haswell
以及Broadwell
平台,利用ssdtPRGen
生成SSDT
,在config
中drop
掉CpuPm
和Cpu0Ist
两个表,并利用FakeSMC
或DSDT
或hotpatch
加载AppleLPC
- 对于
Skylake
及以上平台,选择支持HWP
的合适的机型,并勾选HWPEnable
。
注入HiDPI
和显示器信息完善唤醒后的花屏、闪屏、撕裂屏问题
参考:macOS Sierra 10.12下 开启HiDPI 傻瓜式开启教程
写在最后
本帖多处引用现成帖子,只是将整个流程做个陈述,意在整理思路,以便大家更好地理解实践。本人水平有限,帖子中的不正确之处希望大家积极批评指出,一起完善。
楼主真的是懒到蜕皮(手动滑稽哈哈)帖子中图片很多是出自黑果小兵的博客:macOS安装教程兼小米Pro安装过程记录。
感谢各位黑果前辈的好帖子,引用太多,文中也有说明,就不一一列出了。
待续……