316科技

316科技

求一个最新的黑苹果安装教程?

admin 268

一、求一个最新的黑苹果安装教程?

学习的需要再加上手上正好有一台闲置的笔记本电脑,于是有了这篇手记。

一、准备工作

至少准备一个大于16G的U盘,两个更好。

1.1、可能会用到的工具

(置顶方便查找,可以先跳过在下文用到时再下载)

【必须】opencore发布页 OpenCorePkg(opencore的官方下载地址,版本在持续更新,方便后面的调试排错建议下载DEBUG版本或者两个都下载)

opencore官方发布页

【可选】rufus U盘工具(制作安装U盘用,大于16G的U盘系统磁盘管理无法格式化。也可以用其它U盘工具)

rufus-U盘工具

【非必须】etcher(刻录镜像到U盘的工具)

balenaEtcher - U盘镜像刻录工具

【必须】python下载(下载安装版,安装到最后一步一定要记得把自动配置环境变量add python 3.x to PATH勾选上,之后很多脚本需要python支持才能运行)

python官网下载页

【可选】USBToolBox(USB定制工具)

USBToolBox/tool

【可选】USBMAP工具(USB定制工具)

USBMap

【可选】Hackintool(一个综合性的配置工具)

Hackintool

【可选】GenSMBIOS(黑苹果序列号生成工具)

GenSMBIOS - 序列号创建工具

【必须】ProperTree(配置文件Plist编辑器)

ProperTree - 可视化界面plist编辑器

【可选】opencore configurator(Plist编辑器,需要对应OPENCORE版本下载)

configurator - 可视化界面plist编辑器

【可选】MountEFI(挂载EFI分区的工具,上面的hackintool和opencore configurator也具有此功能。windows的diskpart也可以,不是多系统的话应该用不到)

MountEFI - MacOS下的EFI挂载工具

【可选】SSDTTime(创建SSDT文件的工具)

SSDTTime - SSDT创建工具

【推荐】MaciASL(ASL语言编译器,ACPI文件DSDT SSDT和制作补丁时需要用到。不要使用国外Rehabman大神提供的,已经很久没维护了。)

MaciASL - ASL语言编译器

【非必须】iASL(windows的ASL语言编译器)

Windows Binary Tools - windows下基于命令行的asl编译工具

【非必须】IORegistry Xcode的附加工具

Xcode附加工具

【非必须】gfxutil设备属性查询工具

gfxutil - 设备属性查询工具

1.2、opencore官方安装指南(英文)

安装前必看-opencore官方安装指南

官方配置指南,参数和详细解释

opencore官方配置说明文档

1.3、了解硬件配置

通过设备管理器和AIDA64查看电脑硬件配置。官方指导有详细说明这里不作赘述。因为后面配置config文件和添加驱动需要详细的硬件信息,所以在这里要了解清楚。

举例:

CPU:i5 8300H (intel 8代 coffelake平台)

显卡:Intel UHD Graphics 630&NVIDIA GeForce GTX1050Ti

声卡:Realtek ALC 295主板:HP 84DA

以太网卡:Realtek RTL8111

无线网卡:Intel Wireless-AC 9560

蓝牙:Intel Bluetooth

内存:Kingston DDR4 2400MHz 8+8G

硬盘:NVMe KBG30ZMV128G TOSHIBA

CPU、显卡、声卡等最好在设备管理器-属性-详细信息里记录好硬件ID、BIOS名称、位置路径。如:

笔记本电脑还需要了解键盘、触摸板、电池和摄像头等设备的信息。比如键盘和触摸板要知道是PS/2接口还是USB接口。比如:Synaptics SMBus TouchPad就是一个PS/2的触摸板。

4、了解MacOS的版本对硬件的支持,方便选择合适自己硬件的MacOS版本。官方安装指导Hardware Limitations一节有详细说明。了解各个MacOS版本能支持的APPLE设备,可以参考以下网址(英文)https://eshop.macsales.com/guides/Mac_OS_X_Compatibility

二、创建U盘

2.1、下载系统文件dmg

(这里下载的不是完整镜像,应该是APPLE的恢复安装用的基础文件。有正品苹果电脑可以用自己的APPID在应用商店下载到完整镜像,这里用不到。)

首先下载OPENCORE的安装文件OpenCorePkg并解压。https://github.com/acidanthera/OpenCorePkg/releases。进入解压后的文件夹/Utilities/macrecovery/,在地址栏输入cmd打开控制台根据需要安装的MACOS版本选择下面相应的代码复制到控制台。(需要PYTHON支持,有两行代码的选择第二行。用其它方法运行的CMD需要注意当前路径为macrecovery脚本所在路径)

# Lion (10.7):
python macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download
python macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download

# Mountain Lion (10.8):
python macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download

# Mavericks (10.9):
python macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download

# Yosemite (10.10):
python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download

# El Capitan (10.11):
python macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download

# Sierra (10.12):
python macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download

# High Sierra (10.13)
python macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
python macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download

# Mojave (10.14)
python macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download

# Catalina (10.15)
python macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download

# Big Sur (11)
python macrecovery.py -b Mac-42FD25EABCABB274 -m 00000000000000000 download

# Latest version
# ie. Monterey (12)
python ./macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download

macOS 12以上系统提示:最新的系统版本对USB堆栈执行进行了调整,强烈建议在安装前对USB端口进行定制(见下文USB驱动章节)。在macOS11.3以后的版本xhciportlimit功能失效引起无限重启。

下载视网速大概需要几分钟,下载完成后的文件保存在macrecovery文件夹里。

2.2、创建安装U盘

官方介绍的3种创建U盘的方法,这里选用最方便的Rufus工具。大于16G的U盘只能用工具格式化。

rufus下载地址:https://rufus.ie/

设备选择自己的U盘

引导类型选择非可引导

分区类型GPT

目标系统类型BIOS或UEFI

卷标给U盘起名好区分的名字

文件系统Large FAT32

点击开始完成U盘格式化,把弹出的U盘根目录下的autorun文件都删除。

2.3、复制OPENCORE基础文件到U盘

在U盘根目录创建一个com.apple.recovery.boot文件夹,把之前下载的BaseSystem.dmg和BaseSystem.chunklist复制到里面来。打开解压好的opencore文件夹,可以看到文件夹里有IA32(32位CPU)和X64(64位CPU)两个文件夹,从中选择合适的EFI文件夹复制到U盘根目录和com.apple.recovery.boot文件夹放到一起。如图所示:

把不需要的文件从文件夹里删除(具体文件的作用见官网),只保留下图红框中的文件。

干净的EFI目录结构

2.4、收集文件

根据自己的硬件情况进行选择,如果opencore用的debug版本驱动用相应的debug版本。比较老的硬件需要选用legacy的文件。

电源管理描述表SSDTs和DSDTs(.aml)文件放到/OC/ACPI/文件夹下

硬件驱动Kext(.kext)文件放到/OC/Kext/文件夹下

固件驱动(.efi)文件放到/OC/Driver/文件夹下

官网地址:

收集文件

2.4.1 固件驱动

HfsPlus.efi(必须)

用于支持HFS文件系统

HfsPlus.efi

OpenRuntime.efi(必须)

opencore扩展组件,boot.efi和NVRAM内存管理修补

OpenRuntime.efi

2.4.2 Kexts文件

2.4.2.1 必备内核

VirtualSMC驱动(必须,用于模拟苹果电脑的SMC芯片)

VirtualSMC驱动

SMCProcessor.kext 用于监控 cpu 温度

SMCSuperIO.kext 用于监控散热器速度

SMCLightSensor.kext 用于环境光检测,台式机不需要

SMCBatteryManager.kext 用于读取电池信息,台式机不需要

Lilu驱动(基础库,必须)

Lilu驱动

2.4.2.2 显卡驱动

WhateverGreen(必须)

显卡驱动

2.4.2.3 声卡驱动

AppleALC

声卡驱动

2.4.2.4有线网卡驱动

(重要,第一次安装系统时需要联网。充分了解自己的网卡型号然后在ethernet章节下寻找对应的驱动)

笔者的网卡RealtekRTL8111

有线网卡驱动

2.4.2.5 USB驱动

这里要使用USBToolBox工具来定制驱动,装完后在MacOS下用USBMAP工具进正修改。定制的USB驱动最多允许15个USB接口。错误的USB定制可能会产生睡眠重启问题。个人理解实质上就是用工具生成一个只含空表的驱动。为便于理解USB定制原理,推荐用下例的方法二。

USBToolBox

USBToolBox/tool

也可以先用工具提供的Kext文件,装完再定制。

USBToolBox作者提供的kext

USPMAP工具使用参考软件页说明和opencore详细教程

说明:

USBMap说明页面

下载:

USBMAP下载地址

opencore官方usb定制教程

详细教程

方法一:

运行USBTOOLBOX文件夹里的windows.exe文件,选择D选项,插入一个USB设备进行识别,识别到的设备会显示为绿色。识别完后输入B键回车返回主菜单。按照主板上的USB3.0和USB2.0接口分类进行识别,先用3.0设备(比如3.0的U盘)插入3.0接口识别,再用2.0设备(没有2.0 U盘可以用USB鼠标或者键盘)插入所有接口识别。识别完成后,选择S选项生成KEXT文件放到/OC/KEXT/文件夹内。

方法二:

打开设备管理器-通用串行总线控制器,在3.0接口插入USB3.0可以看到设备为USB大容量存储设备。双击或者右键打开属性-详细信息-位置路径,可以看到类似的信息:ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(SS03),用纸笔记下该接口的位置(如左1、左2)和关键字SS03。操作进先3.0接口再用2.0设备插入2.0接口。根据经验可以看出SS是3.0口,HS是2.0口。比如笔者的接口是:左SS03 HS03 中SS01 HS01 右SS02 HS02,还有一个type-c雷电接口识别为USB3.0 HS04 SS04,内部的摄像头接口为HS06。对于USB3.0的type-c接口需要用type-c的U盘,插入一次后翻转接口再插入一次。如果2次都是相同的地址,那么connector参数为9,如果两次不一样connector参数为10。内置设备(如蓝牙)的 connector参数为255。

ACPI定义的USB接口类型和参数,type这里就是connector参数,先了解后面配置要用到。

接下来用ProperTree修改KEXT配置文件,把没有检测到的口删除。

ProperTree

在ProperTree文件夹下运行propertree.bat文件(需PYTHON支持)

菜单file-open打开EFI\OC\Kexts\USBPorts.kext\Contents下的info.plist文件。

这里的USBPorts.kext可以用前面方法一生成的文件或者usbtoolbox提供的文件或者通过网络找到的相同配置的驱动文件。

在windows下kext文件是文件夹的形式。找到IOKitPersonalities-IOProviderMergeProperties-ports记录,可以看到我们刚才检测的接口信息。把无用的端口删除(选中字段按-号键删除),把connector参数改为对应的数值(如:3表示USB3.0接口),别忘了保存。

在IOKitPersonalities下的MacBookPro15,2-XHC是硬件匹配的apple产品型号。可以用GenSMBIOS工具生成,之后配置config.plist时会用到。具体可以官方指导手册configs章节了解。

选择CPU对应的平台,如笔者的是:移动平台laptop,CPU是coffee lake。在platforminfo子节里可以看到对应的苹果设备信息为MacBookPro15,1。

2.4.2.6 WIFI和蓝牙驱动

笔者的无线网卡是intel AC 9650,根据自己配置选择下载。

AirportItlwm

无线网卡驱动

IntelBluetoothFirmware

IntelBluetoothFirmware

2.4.2.7 额外驱动

m.2固态硬盘

NVMeFix

NVMeFix

SATA-Unsupported

SATA驱动(系统安装到固态可以不用,和笔记本装完系统看不到sata硬盘有关)

SATA-unsupported.kext

CtlnaAHCIPort

官网提示如果上一个没用装这个,我装的这个。

CtlnaAHCIPort.kext.zip

2.4.2.8 笔记本输入设备

键盘:VoodooPS2

VoodooPS2

SMBUS触摸板:VoodooRMI

VoodooRMI

2.4.2.8 杂项

ECEnabler (修复电池状态,允许读取EC作用域超过8 bit的参数内容)

ECEnabler

2.5 配置SSDTs

术语:

SSDT的全称是System Services Descriptor Table,系统服务描述符表ACPI中描述设备以及操作系统应如何与设备交互的属性,例如使计算机进入睡眠、唤醒、切换GPU、USB端口)

ACPI 高级配置与电源接口(Advanced Configuration and Power Interface,ACPI)

SSDTs需要根据硬件对应的平台选择对应的文件,通过官方提供的表格进行查询。.aml是编译好的文件,.dsl是ASL语言的源文件。在这里需要的是.aml文件。SSDT文件放入/OC/ACPI/文件夹下。

官网:

配置SSDT

下载地址:

官方编译好的SSDT文件

opencore官方给出了2种制作SSDT的方法,一种是手动编译需要用到iasl或者MaciASL,具体参考官方安装指导手册。另一个快捷的方法是使用 SSDTTime 工具。运行BAT文件后输入P提取DSDT,回车返回主菜单后根据需要输入相应的数字键,如输入4 回车(plugintype)会生成一些文件。SSDTTIME用下来感觉还是有点鸡肋,这里提及一下只是提供一个方案。可以直接下载官方提供的文件使用。

既然提到DSDT的提取,这里也稍微提示一下。DSDT装好系统制作补丁会用到,有许多工具比如hackintool也可以提取。然而用clover提取的DSDT才是最接近BIOS的干净DSDT。可以用etcher制作一个含clover引导的U盘(建议单独准备一个16G以上U盘),引导后按F1然后按F4提取。提取成功的文件会放在\EFI\CLOVER\ACPI\origin\下。和opencore一样clover也是一个系统引导工具。由于本文只是基于opencore的安装,关于clover的教程可以看黑果小兵的教程:

黑果小兵的部落阁

clover镜像可以到黑果小兵的BLOG下载:

黑果小兵的部落阁

这里不做过多赘述(其实笔者并没有用过clover;-)

言归正传,以笔者的配置INTEL i5 8300H属于移动平台laptop,coffelake架构举例。需要以下文件:

SSDT-PLUG

CPU电源管理支持,INTEL 四代Haswell以后的CPU开始兼容。

下载地址:

SSDT-PLUG-DRTNIA.aml

SSDT-EC-USBX

对于桌面平台,EC(embedded controller嵌入式控制器)和AppleACPIEC驱动不兼容,当运行MacOS时我们禁用了这个设备。AppleBusPowerController会寻找一个名为EC的设备,所以我们创造一个假的设备给它加载。此外对于skylake(6代)以后的CPU,AppleBusPowerController也需要一个USBX设备提供USB电源属性,所以我们把这个设备绑定给EC修正。

对于移动平台,EC用于热键和电池,禁用它不是一个好的主意。所以我们给APPLE提供一个假的EC设备。

说简单点就是EC-USB修正吧。

下载地址:

SSDT-EC-USBX-LAPTOP.aml

SSDT-PNLF

给GPU假定路径以修复显示器背光。这个SSDT的目的是为macOS创建一个PNLF设备,特别是一个硬件ID为APP0002的设备。幸运的是,WhateverGreen将为我们处理其余的工作。

下载地址:

SSDT-PNLF.aml

SSDT-GPI0

I2C总线和触摸板修正,通常情况下已经启用不需要修正。

由于笔者的触摸板是PS/2而不是I2C的设备,没有装这个。在安装系统时触摸板不能使用,插了个USB无线鼠标。SSDT-GPIO只能在安装完MacOS后手动编译。

SSDT-AWAC

对于一些新硬件,用于修正系统时钟。(B360 B365 H310 H370 Z370(用了新BIOS的技嘉和华擎主板)Z390 B460 Z490 400系列 495系列 X99 X299)

下载地址:

SSDT-AWAC.aml

SSDT-PMC

为“真”300系主板提供NVRAM原生支持(B360 B365 H310 H370 Z390) ,官网说明Z370除外,HM370不需要。按照表格COFFEE LAKE移动平台不需要此文件,但我在安装系统时出现安装到最后2分钟时死机(典型故障)。通过官方排障说明安装后排除。不得不说官方的这个排障真的很有用,解决了很多问题。故障排除页:https://dortania.github.io/OpenCore-Install-Guide/troubleshooting/extended/userspace-issues.html#stuck-at-2-minutes-remaining

下载地址:

SSDT-PMC.aml

三、配置config.plist文件(重点难点)

打开解压好的opencore文件夹,把docs文件夹下的sample.plist复制到U盘的EFI/OC/文件夹下,重命名为config.plist。现在的文件结构如图:

详细的配置信息可以参考docs下的configration.pdf配置参考手册.

最新版地址:

Configuration.pdf

国内sukka转载翻译的opencore简体中文参考手册

opencore简体中文参考手册

本节要用到的工具有:

ProperTree(plist文件配置编辑器)

下载地址:

ProperTree

GenSMBIOS(序列号生成器)

下载地址:

GenSMBIOS

打开解压好的propertree文件夹,运行propertree.bat(需PYTHON支持)

TIPS:

MacOS下用ProperTree.command创建app

windows下使用ProperTree.bat

菜单file-open(Cmd/Ctrl+O)打开你U盘/EFI/OC/下的config.plist文件。

执行一下干净的快照,菜单file-oc clean snapshot(Cmd/Ctrl+Shift+R)选择你U盘的EFI/OC/文件夹。这会清除config.plist所有的字段然后把你的SSDTs、Kexts和固件驱动等就添加到config.plist里。

与之不同的是Cmd/Ctrl + R快照不会清除你已经配置好的信息,调试排除故障时经常要用。当你的EFI文件结构发生变化后一定要记得用Ctrl+R同步一下config.plist,以免引导时出错。

如果弹窗提示"Disable the following kexts with Duplicate CFBundleIdentifiers?",选“yes”。这是为了确保注入的kexts不会重复,因为有些kexts可能有一些相同的插件(例如VoodooPS2和VoodooI2C的插件文件夹中都有VoodooInput)。

表头的几条#WARNING注释没有什么用可以删除。+号新建字段,-号删除字段。

在配置开始之前先选择你的硬件平台:

选择硬件平台

3.1 配置ACPI3.1.1

ADD字段

快照后,/EFI/OC/ACPI/文件夹里的文件信息显示在ADD字段里。由于opencore更新频繁官方指南的图不一定是最新的,不明白的多读几遍官方指南的文字。不要随意删除config.plist的字段,描述里没提及的内容保持默认设置。

注意在这里你不需要生成DSDT.aml,它已经在你的固件里了。我这里有DSDT.aml是因为开机检测到非HP电池的问题需要修改DSDT,并且要把这个字段的位置放在最前。字段的顺序很重要,后面配置驱动时会提到。调整方法是选中字段,然后按住鼠标往上拖,比如我把6DSDT拖到顶顺序就变成0。注意要拖到其它字段上面不然就放到它里面去了。

3.1.2 Delete记录

阻止ACPI表加载,这里我们忽略保持默认。

3.1.3 Patch记录

这个字段是用来给ACPI(DSDT,SSDT)热修补的。如果你用了SSDT-XOSI,你需要把所有的OSI重定向到这个SSDT。意思就是说固件(也就是DDST)里有个_OSI函数需要用SSDT-XOSI.aml重命名为XOSI。需要在这里设置。注意版本更新后布尔值boolean的值从yes变为true,no变为false。我没I2C设备所以没装。

CommentStringChange _OSI to XOSI
EnabledBooleanYES
CountNumber0
LimitNumber0
FindData5f4f5349
ReplaceData584f5349

3.1.4 Quirks记录

和ACPI有关的设置,用不到保持默认。

3.2 配置Booter

顺便提一下opencore兼容clover的部分驱动,从clover转到opencore的教程见官方指南:

从clover转到opencore

3.2.1 MmioWhitelist记录

本字段和MacOS调用硬件内存空间相关(个人猜测没查到具体信息),通常忽略保持默认。和quirks里的DevirtualiseMmio配合比较有用。

3.2.2 Quirks记录

这项主要配置quirks子字段,用openruntime给boot.efi打补丁和固件修正,用来替代aptiomemoryfix.efi(应该是clover里内存分配的驱动,该驱动作者说配置不当会永久损坏硬件)。设置以下参数:(具体各参数的解释见官网。新版boolean布值已经改为true和false后面有用到同理不再提醒)

QuirkEnabled
EnableWriteUnprotectorNO
RebuildAppleMemoryMapYES
SyncRuntimePermissionsYES

3.3 配置设备属性DeviceProperties

3.3.1 ADD记录

3.3.1.1 PciRoot(0x0)/Pci(0x2,0x0)记录

用于通过whatevergreen设置集成显卡iGPU属性。whatevergreen的说明:https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md。在了解硬件章节提到的通过windows设备管理查看设备位置路径可以看到我的内置显卡intel uhd 630,位置路径:PCI 总线 0、设备 2、功能 0也可以知道igpu对应了这个记录。AAPL,ig-platform-id参数用来设置内置显卡,初始设置时只用这一个参数就够了。如果config.plist里没有这一字段,需要手动创建。可以看到我的iGPU的硬件ID(device-id)是0x00003E9B,这里参数的值写成00009B3E原因是苹果系统的规则是低位优先,16进制高低位交换。个人猜测是和堆栈有关(汇编基础知识)。下面的表给出了一些集成显卡的参数值,type类型为对应的平台类型。

AAPL,ig-platform-idTypeComment
0900A53ELaptopRecommended value for UHD 630
00009B3ELaptopRecommended value for UHD 620
07009B3ENUCRecommended value for UHD 620/630
0000A53ENUCRecommended value for UHD 655

在某些情况下,如果无法在UEFI设置中将这些卡的DVMT内存动态分配设置为64MB或更高,则可能会出现内核死机。通常,它们配置为32MB,在这种情况下,这些值将添加到iGPU属性中。

KeyTypeValue
framebuffer-patch-enableData01000000
framebuffer-stolenmemData00003001
framebuffer-fbmemData00009000

3.3.1.2 PciRoot(0x0)/Pci(0x1b,0x0)记录

参数:layout-id

为AppleALC应用音频注入,需要了解自己的声卡解码器型号来对应AppleALC的音频布局。AppleALC Supported Codecs支持列表:https://github.com/acidanthera/AppleALC/wiki/Supported-codecs

我的声卡是RealTek ALC195,对应的布局:layout 1, 3, 13, 14, 15, 21, 22, 23, 24, 28, 77。我们用boot-arg参数alcid=xxx来代替这项设置。alcid会覆盖所有存在的layout-IDs。boot-arg参数在后面的NVRAM小节里说明,这里保持默认。

alcid=xxx的xxx对应布局表里的这些数字,先选一个装系统,装完如果音频无效再换别的数字测试。测试正常后这里的layout-id数值改为正常的数值,然后把boot-arg里的acid=xxx删掉以避免参数的优先级过高导致AppleALC忽略掉像DeviceProperties的其它记录。具体细节见官方指南的后期安装章节:

恢复layout-id

这里简单翻译一下。

gfxutl下载地址:

gfxutil

装好系统并测试成功后用gfxutil工具找到声卡的位置信息。打开终端输入

path/to/gfxutil -f HDEF (path/to/gfxutil改成你gfxutil在MACOS里的文件路径)

把测试正常的数字填到propertree里DeviceProperties -> Add下对应的pciroot的layout-id字段数值里。这个数值可以为10进制(propertree里的type类型选number)也可以为16进制(propertree里的type类型选data)。通常为了避免一些不必要的转换最好的方法是选用16进制。可以用这个10进制16进制转换工具:

Decimal to Hexadecimal Converter

例如:alcid=11参数可以这样填:

  • layout-id | Data | <0B000000>
  • layout-id | Number | <11>

注意最终的16进制数值总共应该是4个字节(如:0B 00 00 00),如果数值大于255(FF 00 00 00)要记得高低位交换。用这个工具里的Little endian(低位优先)的数值。所以256(0x00000100)就会变为 00 01 00 00。比如我们10进制的271换算成16进制是10F,16进制的写法是0x0000010F(不满4个字节用0填充),低位优先写成0F 01 00 00。其实低于255的数也是一样的,比如刚才的10进制数11写成16进制就是0x00000B倒过来不就是0B 00 00 00吗?具体要弄懂可以看一些编程方面的书籍,比如C语言。水平有限不做赘述。

3.3.2 Delete记录

从设备映射里移除设备属性,这里我们忽略。

4 配置内核Kernel

关注红框中的内容即可

4.1 Add记录

在这里,我们指定要加载哪些kext,以什么特定顺序加载,以及每个kext用于什么架构。默认情况下,我们建议保留ProperTree所做的操作。这里特别要注意的是排列顺序,任何插件都要在它的依存组件后加载,lilu是基础库一定要排在VirtualSMC,AppleALC,WhateverGreen前面。比如无线网卡要排在蓝牙前面(我调试时搜索了很久才在reddit发现有人提出这个问题)。

其它具体的参数解释看官网

0-Lilu.kext

1-VirtualSMC.kext

2-WhateverGreen.kext

4.2 Emulate

用来冒名顶替不受支持的CPU,比如奔腾和赛扬。

4.3 Force

用于从系统卷加载KEXT,仅适用于缓存中不存在某些KEXT的旧操作系统(如10.6中的IONetworkingFamily)

忽略

4.4 Block

阻止某些kext加载

4.5 Patch

给内核kernel和kext打补丁

4.6 Quirks

和内核有关的设置,我们需要启用下面的设置:

QuirkEnabledComment
AppleXcpmCfgLockYESNot needed if CFG-Lock is disabled in the BIOS
DisableIoMapperYESNot needed if VT-D is disabled in the BIOS
LapicKernelPanicNOHP Machines will require this quirk
PanicNoKextDumpYES
PowerTimeoutKernelPanicYES
XhciPortLimitYESDisable if running macOS 11.3+

用的惠普电脑,LapicKernelPanic这个项网上也有说不用启用。macOS11.3以上版本不能启用XhciPortLimit,只能定制USB使接口数少于15个。

4.7 Scheme

传统引导相关的设置,可以略过。

5 Misc杂项配置

5.1 Boot

HideAuxiliary 设置为true时,隐藏引导菜单里macOS recovery(系统恢复)和工具等其它额外选项,为多磁盘系统提高了启动性能。在选项界面按空格键可以呼出这些条目。记得安装时按空格才能看到MacOS recovery选项。(我在第一次安装时就遇到这个问题,查了很久)

5.2 Debug

需要安装debug版本,启动故障时很有用。具体说明看官方指南

OpenCore Debugging

按照以下参数设置,会在U盘根目录生成log日志文件。启动遇到问题可以通过log日志排除故障。一般看最后一行的故障代码,然后查询官方的疑难解答,非常有用。疑难解答地址:

General Troubleshooting | OpenCore Install Guide
QuirkEnabled
AppleDebugYES
ApplePanicYES
DisableWatchDogYES
Target67

debug和release版本切换只需要替换相应版本的以下文件。

  • EFI/BOOT/
    • BOOTx64.efi
  • EFI/OC/Drivers/
    • OpenRuntime.efi
    • OpenCanopy.efi(用于美化引导界面的内核驱动文件)
  • EFI/OC/
    • OpenCore.efi

清除所有的log日志,取消DEBUG参数设置

AppleDebug = NO

ApplePanic = NO

Target = 0

5.3 Security

按下表设置

QuirkEnabledComment
AllowSetDefaultYES允许CTRL+回车和CTRL+index按键在启动界面设置默认启动设备
BlacklistAppleUpdateYES阻止固件更新
ScanPolicy0显示所有的驱动器,系统安装时看不到硬盘可以试试
SecureBootModelDefault默认值Default,opencore根据你的SMBIOS信息自动设置数值。
VaultOptional不可省略,值为Optional。大小写敏感。

5.4 Serial

用于串口调试,保留默认值

5.5 Tools

用于引导运行时的工具,propertree会根据你/EFI/OC/TOOLS/文件下的文件自动添加。

5.6 Entries

用于指定opencore不能自然发现的不规则引导路径。更多信息看 configuration.pdf第8.6小节。

6 配置NVRAM

6.1 ADD

6.1.1 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14

用于opencore引导界面,保留默认值。更多信息看官方指南

6.1.2 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102

OpenCore的NVRAM GUID,主要与RTCMemoryFixup用户相关

6.1.3 7C436110-AB2A-4BBB-A880-FE41995C9F82

系统完整性保护位掩码

通用boot-args参数

boot-args说明
-v开启啰嗦模式,启动时代替苹果logo和进度条只显示滚动文字帮助故障定位。
debug=0x100关闭macOS的watchdog
keepsyms=1debug=0x100的相关设置,告诉系统标记内核错误
alcid=1用于设置 AppleALC的layout-id参数

特定的GPU启动参数

boot-argsDescription
-wegnoegpu禁用除集成显卡iGPU外的其它显卡
-igfxblr解决新版whatevergreen引起的苹果logo读条后黑屏的问题

csr-active-config: 00000000

系统应急保护(SIP),关闭SIP:

关闭SIP

run-efi-updater: No

防止苹果固件更新破坏引导顺序

prev-lang:kbd: <en-US:0>

键盘设置,样本文件sample.plist默认是俄语,这里改成美式键盘。

6.2 Delete

强制重写NVRAM变量,不会覆盖NVRAM中已经存在的值,因此应单独保留boot-args。

7 配置PlatformInfo平台信息

设置SMBIOS信息,需要GenSMBIOS这个工具。

下载:

GenSMBIOS

windows下运行.bat文件(需要PYTHON支持),macOS下运行.command。输入1下载序列号,输入3选择要生成的SMBIOS。硬件配置不同SMBIOS不同,在官方指南configs->Platforminfo章节查询。我的是coffee lake配置相似的苹果设备是MacBookPro15,1。把生成的序列号复制下来。

Type信息复制到 Generic -> SystemProductName.

Serial信息复制到 Generic -> SystemSerialNumber.

Board Serial 复制到Generic -> MLB.

SmUUID 复制到 Generic -> SystemUUID.

Apple ROM是网卡的MAC地址,可以用自己的值填入Generic -> ROM

查看网卡MAC的方法:

BIOS中直接查看

macOS:系统参数-> 网络 ->以太网 ->高级 ->硬件 -> MAC Address

Windows: 设置 -> 网络和Internet -> 以太网 -> 以太网 -> 物理网络地址

你需要一个无效的序列号,打开苹果服务保障页

苹果官方服务保障页面

把刚才生成的serial序列号复制过去,红字提示我们无法查看此序列号的保障状态就是可用的序列号。如果通过测试就重新生成一个序列号。

8 配置UEFI

按照红框中的设置即可。HP 主板UnblockFsConnect设为true。

config.plist文件配置基本就完成了,遇到问题多看看官方指南,故障排除章节Troubleshooting。善用搜索引擎,建议只用谷歌,你可能需要一些科学上网的方法。

9 设置BIOS

各个厂家的主板BIOS里的名字不经相同,你需要了解这些设置的含义进行设置。

Disable 禁用

Fast Boot( 快速启动)

Secure Boot(安全启动)

Serial/COM Port(串行接口)

Parallel Port(并行接口)

VT-d (can be enabled if you set DisableIoMapper to YES)

Compatibility Support Module (CSM) (兼容性支持模块)

Thunderbolt(雷电接口)Intel SGXIntel Platform TrustCFG Lock(CFG锁)

Enable 启用

VT-xAbove 4G Decoding (大于 4G 地址空间解码)

Hyper-Threading(处理器超线程)

Execute Disable BitEHCI/XHCI Hand-off(接手 EHCI/XHCI 控制)

OS type: Windows 8.1/10 UEFI Mode(操作系统类型: Windows 8.1/10 UEFI模式)

DVMT Pre-Allocated(iGPU Memory): 64MB or higherSATA Mode: AHCI

10 MacOS系统安装

插上有线网卡的网线,插好安装U盘,开机用热键调出BIOS启动顺序菜单(也可以在BIOS里设置启动顺序为U盘优先),选择你的U盘进入引导界面。这时你应该可以看到有EFI、WINDOWS选项,还记得之前MISC里的HideAuxiliary设置吗,你需要按一下空格会显示更多的选项。选择你的U盘名字(rufus格式化时创建的卷标),比如我的是hackintosh(dmg)黑屏跑代码结束后进入安装界面。能进入安装界面说明配置正常离成功已经不远了,如果报错,根据屏幕上卡住的代码提示和U盘的log日志问题查找排除故障。如果安装界面是英文,可以在菜单file里找到choose language选择为中文。如果键盘或者触摸板没用可能是驱动的问题,回到windows换驱动再试。外接USB鼠标比较方便。

选择磁盘工具,选中要安装系统的硬盘,选择抹掉给系统分区取个英文名字,格式选择AFPS(需要了解你所选择的macos支持的磁盘格式,AFPS格式从high sierra以后的版本才开始支持。并且high sierra的AFPS有BUG会导致无线网卡不能用,我之后又换成了monterey),方案选择GUID分区图。分完区后返回选择重新安装macos,选择刚才格式化的分区开始安装。安装过程需要远程下载系统镜像,确保网络畅通。网速不快的话等待的时间会比较长,有时会卡住不时动一动鼠标。如果安装到最后2分钟死机,并且你是300系主板的话试试把SSDT-PMC.aml复制到/EFI/OC/ACPI/文件夹里,同时用propertree的快照ctrl+r更新一下文件变动。

安装成功后对设备的各项功能进行一下验证。

11 从硬盘引导启动

系统安装好后,还是从U盘的EFI来引导启动的。为了从硬盘引导启动我们需要一个工具:MountEFI

下载地址:MountEFI

macos系统下运行mountefi.command,选择mac系统所在的分区,这里我的安装分区是3.menterey(diskXsY,X表示硬盘Y表示分区)。挂载完成后打开分区,可能会有一个APPLE文件夹,是真正的苹果电脑用来更新固件用的,对我们没有影响可以删除。之后把U盘里的整个EFI文件复制到这个新出现的EFI硬盘里。拨出U盘重启系统就可以从硬盘引导系统了。

至此,黑苹果系统已经安装完成。现在的系统仍然不够完整还需要进一步检测调试和打各种修复补丁。关于调试修复请参考opencore官方后期安装指南:

opencore官方后期安装指南

说明:

plist文件本身可以看为一个数据表,所以为了和数据库语言里的术语保持一致,entries翻译为记录可以理解为子条目,propertree里数值类型通常为dictionary。section翻译为字段可以理解为子条目里的参数,在propertree里数值类型一般为data。

参考资料:(部分网站需要科学上网)

opencore官方安装指南

OpenCore Install Guide

opencore官方配置参考手册

配置参考手册

OC-little

OC-little

xjn

使用opencore引导黑苹果

黑果小兵

精解opencore

黑果小兵镜像

黑果小兵的部落阁

opencore简体中文参考手册

Captcha | Sukka

ACPI修补教程

OpenCore 部件 · GitBook

reddit讨论版

reddit的hackintosh版块

discord社群

discord社群

tonymacx86(全局代理)

tonymacx86

二、windows和黑苹果双硬盘双系统安装教程?

一、Windows系统的安装

1、用下载好的镜像解压,得到解压后的源文件。

2、将第一步得到的源文件复制到一个空白的U盘

3、电脑设置BIOS从U盘启动(无须关闭UEFI,如果电脑硬盘被格式化,U盘插入电脑USB接口,开机后电脑默认会从U盘启动)

4、电脑读取源文件,然后一步步完成安装步骤

二、黑苹果系统的安装

1、在Windows系统安装好的基础上,先安装 HFS + for windows 10.2。选择试用,完成安装后重启,再选我已有密钥,输入密钥完成激活。

2、另一个硬盘作为黑苹果系统的安装盘,这个硬盘可以先用Windows的磁盘管理工具创建卷但不要格式化,然后安装Paragon Hard Disk 硬盘管理工具,选择黑苹果系统的系统还原原文件进行系统还原。

3、用管理员的身份打开命令行窗口,按下面的步骤输入:

(1) diskpart

(2) list disk

(3) select disk 0

(4) list part

(5) select part 2(选择带有系统标记的最小分区)

(6) assign letter = p

鼠标右键,打开任务管理器,点文件、新建任务,进入P盘EFI目录,将黑苹果安装目录的源EFI文件夹里面的两个子文件夹复制到P盘的EFI目录,此时会提示有内容相同,选择覆盖

4、回到命令行窗口,继续输入以下命令:

(8) list disk

(9) select disk 1

(10) list part

(11) select part 1

(12) SET ID=48465300-0000-11aa-aa11-00306543ecac

此时黑苹果系统的安装盘会被隐藏掉。

5、安装EasyUEFI工具。创建启动项。名称随意,选boot64.efi文件,将创建好的启动项优先级调到最上(最高)。

6、最后重启电脑,如果重启后有看到四叶草的系统选择菜单,说明你安装成功了。

三、potato苹果安装教程?

1、点击苹果手机桌面上的 AppStore,在进入的界面,点击右上角的头像图标。

2、这个时候,我们就来到了 AppStore 的个人中心,我们把界面往下拉,拉到最底部,我们可以看到“退出登录”,点击退出(这个操作是退出自己的苹果 ID)。

3、然后,在输入框里面登录我们准备好的美国 ID,登录成功过后,等待 AppStore 界面刷新,语言变成英文,就成功进入美区 AppStore 了。

4、这个时候,我们就可以去搜索框里面搜索“potato”了,大家会发现,正版 potato 出来了,点击下载即可成功安装。

四、安装黑苹果白屏?

建议duf模式刷机即可。正常恢复DFU,这个恢复方法是我们在一般的解锁教程中最常用的恢复iPhone固件的方法。  1.将iPhone连上电脑,然后将iPhone关机2.同时按住开关机键和home键3.当你看见白色的苹果logo时,请松开开关机键,并继续保持按住home键。4.开启iTunes,等待其提示你进行恢复模式后,即可按住键盘上的shift键,点击“恢复”,选择相应的固件进行恢复。

五、黑苹果安装重启?

如果在一块硬盘上安装的双系统,那就会很麻烦,win10安装完成后会格式化efi分区并重新写入引导程序,这就意味着黑苹果的clover会全部丢失. 如果是两块硬盘分别安装的macOS和win10,那就一点问题都没了,关机断电,拆掉黑苹果硬盘,直接安装win10到之前的Windows硬盘,安装完成后再把黑苹果的硬盘安装上,再启动时选黑苹果硬盘为引导盘就可以了

六、安装黑苹果后怎样删除黑苹果系统?

最好删了,双系统很不稳定,启动变慢,尤其是win,具体原因我没研究过,只说现象。另外多系统时间处理不一样,会干扰,黑果上要打个补丁。想用win就用pd或vmware,如果不愿意用盗版,vb也凑合,没必要多系统。如果确实需要多系统,建议装在不同的物理盘上,启动时手切具体启动哪一个,也可以win上装个驱动实现文件共享。

七、白苹果系统安装教程?

电脑端连接好手机并开启爱思助手进行一键刷机重装系统

八、ygomobile苹果版安装教程?

1/4

第2步:在搜索结果内,选择“游戏王ygocore 苹果版下载”,点击打开。

2/4

第3步:在打开的页面,选择“游戏王ygocore 苹果版”,点击“下载”,将该游戏下载到苹果手机上。

3/4

第4步:接着在苹果手机上安装游戏,在桌面上点击游戏图标,进入游戏主页,点击“登陆游戏”。

4/4

第5步:登陆游戏之后,点击“对战”,就可以苹果手机上玩游戏了。

九、苹果手机安装定位教程?

苹果手机安装定位的教程如下

1. 点开“设置”。

2. 拉下来点iCloud。

3. 会显示要apple ID和密码才能够登陆。填写ID和密码登陆上去。如果没有选择下面免费获取apple ID进行注册一个ID然后登陆。

4. 很重要的一个步骤。允许iCloud使用,iPhone的位置,选择点好。

5. 这个步骤也非常的重要,然后把查找我的iPhone开启,点允许即可定位。

十、tokenpocket苹果版安装教程?

打开App Store,搜索“TokenPocket”,点击“安装”按钮,开始下载安装。

安装完成后,点击“打开”按钮以启动TokenPocket。

如果您是新用户,您可以注册一个新账号,或使用现有的账号登录。

如果您想要添加钱包,您可以选择“添加钱包”,然后根据提示操作。

您也可以在“发现”页面上查看最新的区块链应用和服务,并进行相关操作。

上一个下一篇:dnf虚拟机安装教程?

下一个上一篇:返回栏目