跳过正文
  1. Blogs/

2.2 OC文件结构

·2368 字·5 分钟·
折腾 黑苹果
亲自巡山的大王
作者
亲自巡山的大王
记住也好,记不住也好,反正名头不重要。
目录

下载 OpenCore-x.x.x-RELEASE.zip 并解压,这样就得到 OC 的最原始的文件了,这里以OpenCore-0.7.3-RELEASE为例。

OpenCore 引导的官方项目地址为:https://github.com/acidanthera/OpenCorePkg

查看最新版本的下载地址为:https://github.com/acidanthera/OpenCorePkg/releases

2.2OC文件结构01

下面分别大概说明一下这些目录的作用:

  • Docs:存放 OC 最新的配置文档、版本更新变化、ACPI 示例文件以及 Sample.list 配置文件模板
  • IA32:里面放着 32 位老机器使用的 EFI 引导文件
  • Utilities:OC 官方集成的小工具都放在这里
  • X64: 里面放着 64 位目前主流机器使用的 EFI 引导文件

知道了大概的目录结果的话,下面来详细的介绍一下这些目录里面的文件详细情况。

Docs
#

~/Downloads/OpenCore-0.7.3-RELEASE/Docs
.
├── AcpiSamples          # ACPI 示例文件
│   ├── Binaries         # 编译好的 ACPI 文件
│   │   ├── SSDT-ALS0.aml
│   │   ├── SSDT-AWAC-DISABLE.aml
│   │   ...
│   └── Source           # ACPI 原始文件
│       ├── SSDT-ALS0.dsl
│       ├── SSDT-AWAC-DISABLE.dsl
│       ...
├── Changelog.md         # 版本更新日志
├── Configuration.pdf    # 当期版本的官方配置文档
├── Differences.pdf      # 和上一个版本的改变部分
├── Sample.plist         # 当期版本的配置文件模板
└── SampleCustom.plist   # 当期版本的配置文件模板

这里面文件都比较好理解,除了发现貌似 2 个配置文件模板,分别是 Sample.plist 和 SampleCustom.plist,我们普遍使用 Sample.plist 这个配置文件比较多。

Utilities
#

这个目录下放着一些 OC 官方的小工具,下面来分别介绍一下这些小工具的作用

  • acdtinfo:检测当前机器的 kexts 安装情况
  • ACPIe:产生有用的 ACPI 查找跟踪排错使用
  • CreateVault:里面包含了 RSA 秘钥生成工具和用来创建 Valut 的脚本
  • disklabel:标签生成小工具,一般也用不到
  • icnspack:icns 合成制作小工具,想要自己自定义主题的时候可以用得上
  • kpdescribe:调式 Debug 排错使用,用于恢复堆栈跟踪
  • LegacyBoot:在旧电脑中模拟 UEFI 环境的工具和脚本
  • LogoutHook:用于模拟 NVRAM 保存的增强脚本
  • macrecovery:启动盘制作脚本
  • macserial:序列号生成工具
  • ocpasswordgen:OpenCore 密码数据生成工具
  • ocvalidate:检测 config.list 语法的正确与否

EFI
#

最后来到了我们的重头戏 EFI 部分,下面是 EFI 主要文件夹的作用讲解:

~/Downloads/OpenCore-0.7.3-RELEASE/X64/EFI
.
├── BOOT                          # 引导文件夹
│   └── BOOTx64.efi               # 引导文件
└── OC                            # OC 文件夹
    ├── ACPI                    # ACPI 存放的文件夹
    │   ├── SSDT-EC.aml
    │   ├── SSDT-PLUG.aml
    │   │── SSDT-PNLF.aml
    │       ...
    ├── Drivers                   # OC 驱动的文件夹
    │   ├── AudioDxe.efi
    │   ├── CrScreenshotDxe.efi
    │   ├── HiiDatabase.efi
    │       ...
    ├── Kexts                     # 存放内核拓展 kexts 的文件夹
    │   ├── AppleALC.kext
    │   ├── Lilu.kext
    │   ├── WhateverGreen.kext
    │       ...
    ├── OpenCore.efi              # OC 的核心文件
    ├── Resources                 # OC 的主题样式
    │   ├── Audio
    │   ├── Font
    │   ├── Image
    │   └── Label
    └── Tools                     # OC 小工具文件夹
        ├── BootKicker.efi
        ├── ChipTune.efi
        ├── CleanNvram.efi
            ...

BOOT
#

BOOT 引导文件夹,下面躺着 BOOTx64.ef 引导文件。

OC/ACPI
#

下面存放这 SSDT 编译好的文件,格式均为 .aml 格式。

OC/Drivers
#

这里放着一些驱动文件,这些驱动均已 .efi 后缀结尾,OC 官方默认的驱动文件以及说明如下:

  • AudioDxe.efi:用与启动的时候播放 Duang 的声音,就像白苹果那样
  • CrScreenshotDxe.efi:OC 引导界面截图驱动,按 F10 会保存当前界面的截图到 EFI 分区的根目录下
  • HiiDatabase.efi:用于支持 UEFI 字体渲染,四代酷睿后一般不需要
  • NvmExpressDxe.efi:用于让老主板支持 NVME Express 设备,四代酷睿后一般不需要
  • OpenCanopy.efi:使用图形化 OC 主题必备驱动
  • OpenHfsPlus.efi:文件系统驱动,用于支持识别 HFS+ 的磁盘格式
  • OpenLinuxBoot.efi:OC 0.7.3 新增的驱动,用于引导 Linux 系统
  • OpenPartitionDxe.efi:分区管理驱动程序。用于加载旧版 macOS 的 DMG 映像
  • OpenRuntime.efi:OC 核心必备驱动,功能比较强大,大家记住这个是必备的驱动就行
  • OpenUsbKbDxe.efi:USB 键盘驱动,用于模拟苹果热键,是 KeySupport 的等效方案
  • Ps2KeyboardDxe.efi:PS/2 键盘驱动,这个 PS/2 键盘也太老了吧,我好多年没见过了
  • Ps2MouseDxe.efi:PS/2 鼠标驱动,同样也太老了,很多年没有见过了
  • UsbMouseDxe.efi:USB 鼠标驱动,有些虚拟机需要依赖改驱动才可以在引导界面使用鼠标
  • XhciDxe.efi:XHCI USB controller 驱动程序,基本上 2 代酷睿开始大多数固件都自带这个驱动程序了

OC/Kexts
#

这里放着一些 Kexts 内核扩展文件,格式均为 .kext 文件。

Resources
#

这里放着 OC 的第三方主题文件,下图是 官方主题,挺简约的。

2.2OC文件结构02

Tools
#

OC 小工具文件夹,像下面的 CleanNvram.efi 和 ResetSystem.efi 就是其中的一些小工具:

2.2OC文件结构03

OC 官方自带的工具文件以及说明如下:

  • BootKicker.efi:调用苹果原生的引导切换 GUI, 给白苹果使用的,黑苹果不支持
  • ChipTune.efi:测试 BeepGen 协议并生成不同风格和长度的音频信号。
  • CleanNvram.efi:NVRAM 清理工具,实际上 OC 自带的 NVRAM 清理功能已经足够了
  • ControlMsrE2.efi:检查所有内核的CFG 锁定(MSR 0xE2写保护)一致性,并在更改此类隐藏选项
  • CsrUtil.efi:简单实现苹果csrutil的 SIP 相关功能
  • GopStop.efi:停止显卡 GOP,排错时使用用一个简单的场景测试 GraphicsOutput 协议
  • KeyTester.efi:在 SimpleText 模式下测试键盘输入。
  • MmapDump.efi:ProvideCustomSlide 选项的必要性
  • OpenControl.efi:为其他工具提供 NVRAM 保护,以便在从 OC 启动时能够获得完整的 NVRAM 访问权限。
  • OpenShell.efi:OpenCore 配置的 UEFI Shell
  • ResetSystem.efi:用于执行系统重置的实用程序
  • RtcRw.efi:用于读取和写入 RTC (CMOS) 存储器的实用程序。
  • TpmInfo.efi:检查平台上的英特尔 PTT(平台信任技术)功能,如果启用,则允许使用 fTPM 2.0

好了,至此 OpenCore 的文件结构就介绍的差不多了,下面开始学习下 ACPI 的相关知识。

相关文章

2.1 BIOS设置
·4408 字·9 分钟
折腾 黑苹果
1.2 写入镜像
·78 字·1 分钟
折腾 黑苹果
1.1 黑苹果单OC分区引导镜像制作
·832 字·2 分钟
折腾 黑苹果