黑苹果安装

安装记录

各个 efi 驱动的作用

EFI 驱动 描述
HfsPlus.efi 二选一 Apple 固件中常见的具有 Bless 支持的专有 HFS 文件系统驱动程序。对于 Sandy Bridge 和更早的 CPU,由于这些 CPU 缺少 RDRAND 指令支持,应使用 HfsPlusLegacy 驱动程序。
OpenHfsPlus.efi 二选一 HFS 文件系统驱动。这个驱动是闭源的 HfsPlus 驱动的替代品,该驱动通常在苹果固件中发现。虽然功能完善,但是启动速度比 HFSPlus 慢三倍,并且尚未经过安全审核。推荐使用 HFSPlus.efi 若制作好启动盘,替换引导后读不到 macOS 的启动项,或许是该驱动没有启用。同时在 bigsur 之前的系统,recovery 分区也是需要该驱动,bigsur 的 recovery 现在是 apfs 的。
OpenRuntime.ef*i 原名 FwRuntimeServices.efi,用于实现 OC_FIRMWARE_RUNTIME 协议,通过支持只读、只写 NVRAM 变量,提升了 OpenCore 和 Lilu 的安全性。有些 Quirk 如 RequestBootVarRouting 依赖此驱动程序。由于 Runtime 驱动的性质(与目标操作系统并行运行),因此它不能在 OpenCore 本身实现,而是与 OpenCore 捆绑在一起。必须启用。
AudioDxe.efi UEFI 固件中的 HDA 音频驱动程序。即在 OC 界面时加载的音频驱动,用于开机时的 duang~声和朗读当前选择的启动项名称。实用意义不大,不推荐使用,启用后电脑开机速度会变慢 3 秒左右。
OpenCanopy.efi OC 的图像驱动。要启用 OC 的主题,就需要该驱动。
NvmExpressDxe.efi NVMe 驱动程序。用于 4 代酷睿或更老的设备上,在安装了 nvme 协议的硬盘后 OC 读不到该硬盘启用。若在新平台上将 NVMe 转接至 PCIe,或许也需要该驱动。
CrScreenshotDxe.efi 截图驱动。启用后,按下 F10 将能够截图并保存在 EFI 分区根目录下。该驱动基于 Nikolaj Schlej 修改的 LongSoft 开发的 CrScreenshotDxe。
HiiDatabase.efi UEFI 字体渲染驱动,适用于 3 代酷睿和之前更老的设备。在 UEFI Shell 中文字体渲染出错时启用,之后的电脑都不需要。
OpenPartitionDxe.efi 分区管理驱动程序。用于加载旧版 macOS 的 DMG 映像(如 macOS 10.9 的分区映像)。对于 2 代酷睿或者更早的 CPU,由于缺少 RDRAND 指令支持,应使用 PartitionDxeLegacy 驱动程序。
OpenUsbKbDxe.efi USB 键盘驱动,在自定义 USB 键盘驱动程序的基础上新增了对 AppleKeyMapAggregator 协议的支持。这是内置的 KeySupport 的等效替代方案。根据固件不同,效果可能会更好或者更糟。启用苹果热键后需要该驱动,可能有些设备不用,未测试过。
UsbMouseDxe.efi USB 鼠标驱动。一般只有虚拟机(如 OVMF)的固件中可能不包含该驱动,这些虚拟机需要依赖该驱动才能在引导界面使用鼠标。
Ps2KeyboardDxe.efi PS/2 键盘驱动。OpenDuetPkg 和一些固件可能不包括这个驱动,但对于 PS/2 键盘来说该驱动是必须的。注意,和 OpenUsbKbDxe 不同,该驱动不提供对 AppleKeyMapAggregator 的支持、因此需要启用 KeySupport 这个 Quirk。
Ps2MouseDxe.efi PS/2 鼠标驱动。一些非常老旧的笔记本的固件中可能不包含该驱动,但是这些笔记本需要依赖该驱动才能在引导界面使用触控板。
XhciDxe.efi XHCI USB controller 驱动程序。从 2 代酷睿开始的大多数固件中都包含此驱动程序。在较早的固件或旧系统可以用于支持外部 USB 3.0 PCI 卡。
ExFatDxe.efi 用于 Bootcamp 支持的专有 ExFAT 文件系统驱动程序,通常可以在 Apple 固件中找到。 对于 Sandy Bridge 和更早的 CPU,由于缺少 RDRAND 指令支持,应使用 ExFatDxeLegacy 驱动程序。
BiosVideo.efi 基于 VESA 和传统 BIOS 接口实现图形输出协议的 CSM 视频驱动程序。用于支持脆弱 GOP 的 UEFI 固件(例如,低分辨率)。需要重新连接图形连接。包含在 OpenDuet 中,开箱即用。
ResetNvramEntry.efi 实现 OC_BOOT_ENTRY_PROTOCOL 的 OpenCore 插件,在启动选择器中添加了一个可配置的 Reset NVRAM 项。
OpenLinuxBoot.efi 实现 OC_BOOT_ENTRY_PROTOCOL 的 OpenCore 插件,允许直接检测和从 OpenCore 启动 Linux 发行版,无需通过 GRUB 进行链式加载。
OpenNtfsDxe.efi New Technologies File System (NTFS) read-only 驱动程序。NTFS 是基于 Windows NT 的 Microsoft Windows 版本的主要文件系统。
OpenVariableRuntimeDxe.efi OpenCore 插件(11.9 节的 OpenVariableRuntimeDxe)提供模拟 NVRAM 支持。OpenDuet 已经包含了这个驱动程序。
ToggleSipEntry.efi 实现 OC_BOOT_ENTRY_PROTOCOL 的 OpenCore 插件,在启动选择器菜单中添加了一个可配置的 Toggle SIP 项目到启动选择器菜单中。(译者注:这个插件用于关闭SIP)
EnhancedFatDxe.efi 来自 FatPkg 的 FAT 文件系统驱动程序。这个驱动程序已经被嵌入到所有 UEFI 固件中,无法为 OpenCore 使用。众所周知,许多固件的 FAT 支持实现都有错误,导致在尝试写操作时损坏文件系统。如果在引导过程中需要写入 EFI 分区,则可能需要将此驱动程序嵌入固件中。
btrfs_x64.efi 开源 BTRFS 文件系统驱动程序,需要从一个文件系统启动 OpenLinuxBoot,该文件系统在 Linux 非常常用。
ext4_x64.efi 开源 EXT4 文件系统驱动程序,需要用 OpenLinuxBoot 从 Linux 最常用的文件系统启动。
CFGLock.efi 解锁CFG 工具(自行加入)
CleanNvram.efi 清除NVRAM的工具。
OpenControl.efi 开启主控台
OpenShell.efi 调适用工具
ResetSystem.efi 重启系统
ResetNvram.efi OC引导并未有该工具,得在Config文件生成。重置Nvram

数据链路层

1) driver efi

  • ArpDxe.efi
  • MnpDxe.efi
  • Dhcp4Dxe.efi
  • DnsDxe.efi
  • SnpDxe.efi
  • TcpDxe.efi
  • Udp4Dxe.efi
  • Ip4Dxe.efi
  • DpcDxe.efi DPC全称Deferred Procedure Call。 Defer的意思是延迟,而这个DPC的作用就是注册函数,然后在之后的某个阶段调用。
    • Ext4Dxe.efi
    • HttpBootDxe.efi
    • HttpDxe.efi
    • HttpUtilitiesDxe.efi
  • ARP(Address Resolution Protocol):地址转换协议,将IP地址转换为物理的MAC地址;
  • MNP(Managed Network Protocol):提供异步数据包的I/O操作;
  • UNDI(Universal Network Device Interface):通用网络设备接口;
  • SNP(Simple Network Protocol):初始化和关闭网络接口,将网络数据帧交给网络接口传输到目的地址,从网络接口接收数据帧;
  • DPC(Deferred Procedure Call): 延迟过程调用,它用来解决UEFI网络栈中的TPL锁死问题;

2) 网络层

IP(Internet Protocol): 用于点兑点的主机间传输数据;

3) 传输层

  • UDP(User Datagram Protocol): 提供无连接的、不可靠的数据报投递服务;
  • TCP(Transmission Control Protocol): 面向连接的、可靠的数据传输协议;

4) 应用层

  • MTFTP(Multicast Trivial File Transfer Protocol): 多播小型文件传输协议;
  • DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,提供发现网络启动服务器的服务;
  • PXE(PreBoot eXecution Environment): 预启动执行环境,用来发现网络启动设备、下载启动文件;
  • iSCSI(Internet Small Computer System Interface): 网络小型计算机系统接口,把原来用于本机的SCSI协议透过TCP/IP网络发送,是一种基于因特网和SCSI-3协议的存储技术;

对要开发的应用程序,主要使用TCP、UDP等传输层协议,以及MTFTP、DHCP等应用层协议。使用之前,需要先配置好网络测试环境。

SSDT

SSDT 描述
SSDT-PLUG CPU加载X86原生电源管理所需的SSDT补丁,基本都需要,英特尔二三代不需要, 启用原生电源管理,必需要。文件来源,最好使用SSDTTime在自己电脑上提取,也可以下载通用版本
SSDT-EC 1.嵌入式控制器 2.非苹果的机型都在其DSDT中公开了一个EC,但是通常与macOS不兼容,可能会导致恐慌,因此需要对macOS隐藏。3.对于笔记本电脑,实际的嵌入式控制器仍然需要启用电池和热键才能工作,并且重命名EC还会导致 Windows出现问题,因此最好在不禁用真正的嵌入式控制器的情况下创建假EC。处理EC用
SSDT-USBX 加载USBX供电用
SSDT-EC-USBX 上面两个的集合
SSDT-PNLF 背光修补
SSDT-AWAC 如果300系及以上的主板BIOS中未含有切换AWAC/Legacy RTC时钟计时的选项,则需要使用该补丁,禁用AWAC,仿冒RTC(华硕一般都有,如果没有,使用这个可能还需要RTC Fix补丁,OCC中在ACPI下补丁处即可找到对应补丁)MacOS使用RTC时钟,目前不兼容AWAC系统时钟。搜索编译后的DSDT.DSL 关键字AWAC,如果有搜索到表示主板使用了AWAC时钟,那就需要使用AWAC.AML补丁来屏蔽,如果搜索不到AWAC关键字就不需要使用此补丁
SSDT-RTC0 和上面一起
SSDT-PMC 300系加载AppleEFINVRAM用,原生NVRAM 原生不支持nvram主板用来开启NVRAM支持的。十代主板 Z370都支持NVRAM所以不需要打此补丁
SSDT-SBUS 修复400系SBUS总线管理用,B360用了会无法睡眠
SSDT-EC-USBX.aml MACOS不兼容EC控制器。所以此文件的作用是屏蔽主板ACPI表中的EC控制器。但是有些主板默认已经屏蔽了EC控制。查看方法:提取主板dsdt.aml,搜索PNP0C09, 显示return(zero)表示主板已经屏蔽EC控制器,无需使用此补丁。此补丁除了可以下载官方提代的通用版本,也可以通过使用Hackintool定制USB补丁生成。
SSDT-OC-XOSI.aml 由于Opencore是全局引导的,就是他不管你是MACOS还是WINDOWS引导。所使用的DSDT补丁都会生效。这样就可能会出现导致硬件识别或着其他问题(本人在华擎B460M pro4上如果不使用这个补丁,在windows下就会有一个不能识别的USB设备)

常见问题

  1. 安装卡exitbs:start主要是CFG锁的问题。
1#[EBILOG:EXITBS:STRRT] 2822-12-82T0B:39:32 2022.12.02 08:39

如下解决:

  • 1.主板里有CFGlock项,一定要关闭。config.plist->Kernel->Quirks->AppleCpuPmCfgLock/AppleXcpmCfgLock->NO,这样就可以正产安装了。
  • 2.主板里有没有CFGlock项,或无法关闭时,config.plist->Kernel->Quirks->AppleCpuPmCfgLock/AppleXcpmCfgLock->True/YES,也可以正常安装了。

驱动大神

  • RehabMan
  • OpenCore
  • XHCI-unsupported
    • FakePCIID.kext
    • FakePCIID_AR9280_as_AR946x.kext
    • FakePCIID_BCM57XX_as_BCM57765.kext
    • FakePCIID_Broadcom_WiFi.kext
    • FakePCIID_Intel_GbX.kext
    • FakePCIID_Intel_HDMI_Audio.kext
    • FakePCIID_Intel_HD_Graphics.kext
    • FakePCIID_XHCIMux.kext

kext 说明

睡眠类

购买指南

  • 独立显卡 dGpu

    • Needed kexts:

      1. NVIDIA’s Web Drivers(opens new window)
      2. Lilu.kext(opens new window)
      3. WhateverGreen.kext(opens new window)
    • Extras:

      1. shikigva=40 boot flag: Swaps boardID to iMac14,2 for better Nvidia Support and whitelists patches
      2. nvda_drv_vrl=1 boot flag: Used for enabling the Web Drivers
  • [iGPU]

nvram 检查

 1概括讲就是终端执行如下命令:
 2sudo nvram TestVar=HelloWorld
 3
 4重启后再执行:
 5sudo nvram -p | grep 'TestVar'
 6
 7如果看到结果:
 8TestVar HelloWorld
 9
10证明主板支持原生NVRAM
11
12想删除这个脚本执行:
13sudo nvram -d TestVar

推荐软件

  • cfss 快速生成证书
  • knife 自己编译的小工具
  • stats macOS system monitor in your menu bar
  • hugo 博客生成工具
  • gitflow tool git提交规范 之前一致使用1.x,现在缘总已经到2.x版本了
  • ngork本地开发临时端口映射。制作临时使用
  • homebrew
  • apache maven
  • apache jmeter
  • iterm2 iterm2 终端
  • oh my zsh
  • perzht fork oh my zsh,并重写了。据说性能不错
  • python python3 pip you-get
  • fzf 终端浏览器
  • dive docker 镜像分析差异工具
  • ctop
  • restic 高效的文件备份工具
  • git-chglog 前提是git按照规范提交。生成change log
  • lux 类似 you-get的工具视频下载, 名字由annie变为lux
  • lego Let’s Encrypt 证书申请工具
  • noti 终端提示小工具 好用可以集成到工具中
  • Hackintool 黑苹果工具
  • MaciASL用于修改DSDT和制作热补丁 黑苹果
  • rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据,可以将网盘挂在在本地目录下linux
  • itlwm inter网卡驱动
  • nps frp同类内网穿透 代理
  • 手机QQ 文件位置
  • [MI 应用商店下载的apk](Android /data /com xiaomi market/files/Download/ apk)
  • OCAuxiliaryToolsOC辅助工具(简称OCAT或ocat) 是一个针对OpenCore的非常简单的实用工具
  • git-chglog 生成git的change log日志

机器

帮助文档

Darwin Kernel Version

查看各个版本 Software compatibility macOS version

macOS version kernel version max min
Ventura 13.4 22.5.0 - -
BigSur 20.99.9
Monterey - 21.00.0
version build kernel version
12. 0 21A344 21.0.1
12.0.1 21A559 21.1.0
12.1 21C52 21.2.0
12.2 21D49 21.3.0
12.2.1 21D62 21.3.0
12.3 21E230 21.4.0
12.3.1 21E258 21.4.0
12.4 21F79, 21F2081,21F2092 21.5.0
12.5 21G72 21.6.0
12.5.1 21G83 21.6.0
12.6 21G115 21.6.0
12.6.1 21G217 21.6.0
12.6.2 21G320 21.6.0
12.6.3 21G419 21.6.0
12.6.4 21G526 21.6.0
12.6.5 21G531 21.6.0
12.6.6 21G646 21.6.0
12.6.7 21G651 21.6.0
Monterey 12.x (21.0.1 ~ 21.6.0)
version build kernel version
11.0 20A2411 20.1.0
11.0.1 20B29 20.1.0
11.1 20C69 20.2.0
11.2 20D64 20.3.0
11.2.1 20D74, 20D75 20.3.0
11.2.2 20D80 20.3.0
11.2.3 20D91 20.3.0
11.3 20E232 20.4.0
11.3.1 20E241 20.4.0
11.4 20F71 20.5.0
11.5 20G71 20.6.0
11.5.1 20G80 20.6.0
11.5.2 20G95 20.6.0
11.6 20G165 20.6.0
11.6.1 20G224 20.6.0
11.6.2 20G314 20.6.0
11.6.3 20G415 20.6.0
11.6.4 20G417 20.6.0
11.6.5 20G527 20.6.0
11.6.6 20G624 20.6.0
11.6.7 20G630 20.6.0
11.6.8 20G730 20.6.0
11.7 20G817 20.6.0
11.7.1 20G918 20.6.0
11.7.2 20G1020 20.6.0
11.7.3 20G1116 20.6.0
11.7.4 20G1120 20.6.0
11.7.5 20G1225 20.6.0
11.7.6 20G1231 20.6.0
11.7.7 20G1345 20.6.0
11.7.8 20G1351 20.6.0
BigSur 11.x (20.1.0 ~ 20.6.0)

OpenCore Configurator Support OpenCore Version

1# 下载页面内容
2curl -o changelog.txt https://mackie100projects.altervista.org/category/opencore-configurator-changelog/
3# 过滤关键信息
4cat changelog.txt | egrep ' ([0-9]{1,2}\.){3,}[0-9]{1,2} [\(a-zA-Z0-9 ,\)]{0,20} OpenCore ([0-9]{0,2}\.){2,}[0-9]{1,2} ' -o  | awk '{print "| "$1" | "$5" "$6" |"}'
Version Supported
2.74.1.0 OpenCore 0.9.6
2.74.0.0 OpenCore 0.9.5
2.73.0.0 OpenCore 0.9.4
2.72.0.0 OpenCore 0.9.4
2.71.0.0 OpenCore 0.9.3
2.70.0.0 OpenCore 0.9.3
2.69.0.1 OpenCore 0.9.2
2.69.0.0 OpenCore 0.9.2
2.68.0.0 OpenCore 0.9.1
2.67.1.0 OpenCore 0.9.1
2.67.0.0 OpenCore 0.8.9
2.66.1.0 OpenCore 0.8.9
2.66.0.0 OpenCore 0.8.9
2.65.0.0 OpenCore 0.8.8
2.64.0.2 OpenCore 0.8.7
2.64.0.1 OpenCore 0.8.7
2.64.0.0 OpenCore 0.8.7
2.63.1.0 OpenCore 0.8.7
2.63.0.0 OpenCore 0.8.6
2.62.1.0 OpenCore 0.8.5
2.62.0.0 OpenCore 0.8.4
2.61.2.0 OpenCore 0.8.3
2.61.1.0 OpenCore 0.8.2
2.61.0.0 OpenCore 0.8.1
2.60.0.1 OpenCore 0.8.1
2.60.0.0 OpenCore 0.8.1
2.59.0.0 OpenCore 0.8.0
2.58.1.0 OpenCore 0.8.0
2.58.0.0 OpenCore 0.7.9
2.57.0.0 OpenCore 0.7.9
2.56.0.0 OpenCore 0.7.8
2.55.0.0 OpenCore 0.7.7
2.54.1.0 OpenCore 0.7.7
2.54.0.0 OpenCore 0.7.6
2.53.0.0 OpenCore 0.7.6
2.52.0.1 OpenCore 0.7.5
2.52.0.0 OpenCore 0.7.5
2.51.0.0 OpenCore 0.7.5
2.50.0.0 OpenCore 0.7.4
2.49.0.2 OpenCore 0.7.4
2.49.0.1 OpenCore 0.7.4
2.49.0.0 OpenCore 0.7.4
2.48.1.0 OpenCore 0.7.3
2.48.0.0 OpenCore 0.7.3
2.47.1.0 OpenCore 0.7.2
2.47.0.1 OpenCore 0.7.2
2.47.0.0 OpenCore 0.7.2
2.46.1.0 OpenCore 0.7.2
2.46.0.0 OpenCore 0.7.2
2.45.0.0 OpenCore 0.7.1
2.44.0.0 OpenCore 0.7.1
2.43.0.0 OpenCore 0.7.1
2.42.0.0 OpenCore 0.7.0
2.41.0.0 OpenCore 0.7.0
2.40.0.1 OpenCore 0.7.0
2.40.0.0 OpenCore 0.7.0
2.39.0.0 OpenCore 0.7.0
2.38.0.0 OpenCore 0.7.0
2.37.0.0 OpenCore 0.7.0
2.36.1.0 OpenCore 0.7.0
2.36.0.0 OpenCore 0.7.0
2.35.0.0 OpenCore 0.6.9
2.34.0.0 OpenCore 0.6.9
2.33.1.2 OpenCore 0.6.9
2.33.0.0 OpenCore 0.6.8
2.32.0.0 OpenCore 0.6.8
2.31.0.0 OpenCore 0.6.8
2.30.1.0 OpenCore 0.6.8
2.30.0.0 OpenCore 0.6.8
2.29.1.0 OpenCore 0.6.8
2.29.0.1 OpenCore 0.6.8
2.29.0.0 OpenCore 0.6.7
2.28.0.0 OpenCore 0.6.7
2.27.0.0 OpenCore 0.6.7
2.26.0.0 OpenCore 0.6.6
2.25.0.0 OpenCore 0.6.6
2.24.0.0 OpenCore 0.6.6
2.23.0.0 OpenCore 0.6.6
2.22.2.0 OpenCore 0.6.6
2.22.1.0 OpenCore 0.6.6
2.22.0.0 OpenCore 0.6.5
2.21.0.0 OpenCore 0.6.5
2.20.0.0 OpenCore 0.6.5
2.19.1.0 OpenCore 0.6.5
2.19.0.0 OpenCore 0.6.5
2.18.0.2 OpenCore 0.6.4
2.18.0.1 OpenCore 0.6.4
2.18.0.0 OpenCore 0.6.4
2.17.0.0 OpenCore 0.6.4
2.16.1.0 OpenCore 0.6.4
2.16.0.0 OpenCore 0.6.3
2.15.2.0 OpenCore 0.6.3
2.15.1.0 OpenCore 0.6.3
2.15.0.0 OpenCore 0.6.3
2.14.0.0 OpenCore 0.6.2
2.13.0.0 OpenCore 0.6.2
2.12.1.0 OpenCore 0.6.2
2.12.0.0 OpenCore 0.6.2
2.11.1.1 OpenCore 0.6.1
2.11.0.0 OpenCore 0.6.1

BIOS 设置

  1. 关闭Disabled
  • Fast Boot(快速启动,建议关闭)
  • Secure Boot(安全启动,安全引导,必须!注意,有些主板没有Secure Boot,只有OS type,操作系统类型,需要选OTHER OS,其它操作系统)
  • Serial/COM Port(串口没用,建议关闭)
  • Parallel Port(并口打印口没用,建议关闭)
  • VT-d (可关可不关)
  • CSM(可以关的尽量关,有些关了开机黑屏不建议,但有些必须关了才能安装黑苹果成功,极少)
  • Thunderbolt(可关可不关)
  • Intel SGX(可关可不关,建议关闭)
  • Intel Platform Trust(可关可不关,建议关闭)
  • CFG LOCk (MSR 0xE2这个不是每个主板BIOS都能关,应该说是很少主板有,可以在网上找解决方法,极少需要关掉才能安装黑苹果,没有这个选项的可以不管,OC或者CLOVER都有相关的补丁)
  1. 开启Enabled
  • VT-x(一般默认开启,可开可不开)
  • Re-Size BAR Support(好像4xx以上的芯片组的bios才有,建议开启,但是,如果你的引导卡最开头,可以尝试关闭,也就是说,如果卡了,就开或者关试一下。)
  • Above 4G decoding(4G以上解码)(有关于11 12 13代主板这个必开,建议所有BIOS只要有这个的都打开)
  • Hyper-Threading(一般默认都开启)
  • Execute Disable Bit(有的话开启)
  • EHCI/XHCI Hand-off(必须开启)
  • DVMT Pre-AllOCated(iGPU Memory): 64MB(笔记本核显的非常重要,必须64MB以上,建议128MB,但大多数笔记本都没有调节的选项,这时就需要网上找方法设置了。)
  • SATA Mode: AHCI(必须AHCI)

参考: https://hpglw.com/95d74e2e.html