[Hackintosh 系列] OpenCore 目录及文件说明

   Updated: 2020-12-08 23:25       [Hackintosh 系列] OpenCore 目录及文件说明无评论

OpenCore(OC)是一种新的黑苹果引导方式。曾经 Clover 将变色龙淘汰,而现在 OC 又将代替 Clover 作为黑苹果的新的引导方式。

我们先只去关注 OpenCore 中的 EFI 目录。

目录结构

 EFI
  ├── BOOT
  │   └── BOOTx64.efi
  └── OC
      ├── ACPI
      │   ├── DSDT.aml
      │   ├── MYTABLE.aml
      │   └── SSDT-1.aml
      ├── Bootstrap
      │   └── Bootstrap.efi
      ├── Drivers
      │   ├── MyDriver.efi
      │   └── OtherDriver.efi
      ├── Kexts
      │   ├── MyKext.kext
      │   └── OtherKext.kext
      ├── Resources
      │   ├── Audio
      │   ├── Font
      │   ├── Image
      │   └── Label
      ├── Tools
      │   ├── Tool1.efi
      │   └── Tool2.efi
      ├── config.plist
      └── OpenCore.efi

(延伸:如上效果的树形目录结构的制作:软件在线

目录及文件作用

  • BOOT:用于存放 BOOTx64.efi 文件的目录。BOOTx64.efi 是 UEFI 默认启动项,用于在传统 BIOS 固件上模拟 UEFI 环境并加载 OpenCore.efi 文件
  • OC
    • ACPI:用于存放 ACPI 信息的目录
    • Bootstrap:用于存放 Bootstrap.efi 文件的目录。Bootstrap.efi 被注册为自定义启动项,避免因 BOOTx64.efi 被其它操作系统(如 Windows)所覆盖而导致 OpenCore 无法启动。更多细节请参见 BootProtect
    • Drivers:用于存放 UEFI 驱动程序的目录
    • Kexts:用于存放 kext 内核补丁的目录
    • Resources:用于存放媒体资源(如开机语音文件、OC GUI 界面所使用的图片等)的目录
    • Tools:用于存放 OpenCore 相关工具的目录
    • config.plist:OpenCore 的配置文件
    • OpenCore.efi:主引导驱动程序,负责操作系统加载

ACPI 目录

ACPI 目录用于存放 ACPI 信息文件。

Drivers 目录

Drivers 用于存放 UEFI 驱动程序文件。此目录下默认已经包含了很多驱动程序文件。

  • AppleUsbKbDxe.efi:给使用模拟 UEFI 的老主板在 OpenCore 界面正常输入用的,请勿在 Ivy Bridge(3 代酷睿)及以上的主板上使用
  • AudioDxe.efi:开机 UEFI 界面的音效驱动,若需要开机 UEFI 界面的声音效果则需加载
  • AudioDxe* — UEFI 固件中的 HDA 音频驱动程序,适用于大多数 Intel 和其他一些模拟音频控制器。参考 acidanthera/bugtracker#740 来了解 AudioDxe 的已知问题。
  • CrScreenshotDxe.efi:开机 UEFI 的截图工具。启用后,按下 F10 将能够截图并保存在 EFI 分区根目录下
  • ExFatDxe.efi — 用于 Bootcamp 支持的专有 ExFAT 文件系统驱动程序,通常可以在 Apple 固件中找到。 对于 Sandy Bridge 和更早的 CPU,由于缺少 RDRAND 指令支持,应使用 ExFatDxeLegacy 驱动程序。
  • HfsPlus.efi:用于 HFS 格式文件系统,这是必须加载的。对于 Sandy Bridge 及更早的 CPU,由于这些 CPU 缺少 RDRAND 指令支持,应使用 HfsPlusLegacy.efi 而不是 HfsPlus.efi
  • HiiDatabase.efi:用于给 Ivy Bridge(3 代酷睿)或更老代主板上支持 UEFI 字体渲染,或 UEFI Shell 中文字渲染异常时使用,新主板不需要
  • EnhancedFatDxe.efi — 来自 FatPkg 的 FAT 文件系统驱动程序。这个驱动程序已经被嵌入到所有 UEFI 固件中,无法为 OpenCore 使用。众所周知,许多固件的 FAT 支持实现都有错误,导致在尝试写操作时损坏文件系统。如果在引导过程中需要写入 EFI 分区,则可能需要将此驱动程序嵌入固件中。
  • NvmExpressDxe.efi:用于在 Haswell(4 代酷睿)或更老的主板上支持 NVMe 硬盘,新主板不需要
  • OpenCanopy.efi:OpenCore 插件之一,用于实现第三方图形引导界面(开机主题)。
  • OpenRuntime.efi:OpenCore 插件之一,通过支持只读、只写 NVRAM 变量,提升了 OpenCore 和 Lilu 的安全性。是内存运用等必要的插件,必须加载
  • OpenUsbKbDxe.efi:USB 键盘驱动,给使用模拟 UEFI 的老主板在 OpenCore 界面正常输入用的, 请勿在 Ivy Bridge(3 代酷睿)及以上的主板上使用
  • PartitionDxe.efi :一个专门的分区管理驱动程序,用于加载旧版 macOS 的 DMG 映像(如 macOS 10.9 的分区映像)。对于 Sandy Bridge 或者更早的 CPU,由于缺少 RDRAND 指令支持,应使用 PartitionDxeLegacy.efi 驱动程序。
  • Ps2KeyboardDxe.efi:PS/2 键盘驱动
  • Ps2MouseDxe.efi:PS/2 鼠标驱动。一些非常老旧的笔记本需要依赖该驱动才能在引导界面使用触控板。
  • UsbMouseDxe.efi:USB 鼠标驱动。一般只有虚拟机(如 OVMF)的固件中可能不包含该驱动,这些虚拟机需要依赖该驱动才能在引导界面使用鼠标。
  • VBoxHfs.efi — 带有 Bless 支持的 HFS 文件系统驱动。是 Apple 固件中 HfsPlus 驱动的开源替代。虽然功能完善,但是启动速度比 HFSPlus 慢三倍,并且尚未经过安全审核。
  • XhciDxe.efi:这个驱动用于给 Sandy Bridge(2 代酷睿)或更老的主板上支持 XHCI 用于外部 USB 3.0 PCI 卡,新主板不需要

Kexts 目录

Kexts 目录用于存放 kext 内核补丁文件。此目录下默认无任何内核补丁文件。Kext 即 Kernel Extension 的简称,正确添加的 Kext 文件会在系统启动时加载,用于拓展 macOS 内核对于硬件的支持。macOS 无法正常驱动的声卡、USB 等都可以通过这种方式正常驱动。

常用 kext 补丁介绍及下载:

Tools 目录

Tools 目录用于存放 OpenCore 相关工具。

  • BootKicker.efi:进入 Apple 的 BootPicker 菜单(仅 Mac 同款显卡才可以使用)。
  • ChipTune.efi:测试 BeepGen 协议,生成不同频率和长度的音频信号。
  • CleanNvram.efi:重置 NVRAM 的工具。OpenCore 自带的 NVRAM 清理功能(引导界面的重置 NVRAM)已经足够好了。一般不使用
  • FwProtect.efi:解锁和回锁 NVRAM 保护,让其他工具在从 OpenCore 启动时能够获得完整的 NVRAM 访问权限。
  • GopStop.efi:用一个 简单的场景 测试 GraphicOutput 协议。
  • HdaCodecDump.efi:解析和转储高清晰度音频编解码器(Codec)信息(需要 AudioDxe)。
  • KeyTester.efi:在 SimpleText 模式下测试键盘输入。
  • MemTest86.efi — 内存测试工具。
  • OpenShell.efi.efi:由 OpenCore 配置的 UEFI Shell,与绝大部分固件兼容。
  • PavpProvision.efi:执行 EPID 配置(需要配置证书数据)。
  • ResetSystem.efi:用于执行系统重置的实用程序。以重置类型作为参数:ColdResetFirmwareWarmResetShutdown。默认为 ColdReset
  • RtcRw.efi:读取和写入 RTC (CMOS) 存储器的使用程序。
  • VerifyMsrE2.efi:检查 CFG Lock(MSR 0xE2 写保护)在所有 CPU 核心之间的一致性。用于检查主板上 CFG 锁的状态。排错时使用

我们暂时只用去关注 EFI/OC 目录下的 ACPIDriversKexts 这三个目录,其他目录暂时不用去管。

建议遵循从简原则,先确保能进系统再在后期来增加其它功能。所以我们先根据我们的 CPU、声卡、显卡等硬件,仅下载所需要最少的文件放于相应的目录下。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注