OpenCorePkg README

The project's README from github.com/acidanthera/OpenCorePkg. As one markdown file: README.md.

Build Status Scan Status

OpenCore bootloader with development SDK.

Libraries

This repository also contains additional UEFI support common libraries shared by other projects in Acidanthera. The primary purpose of the library set is to provide supplemental functionality for Apple-specific UEFI drivers. Key features:

Early history of the codebase could be found in AppleSupportPkg and PicoLib library set by The HermitCrabs Lab.

OcGuardLib

This library implements basic safety features recommended for the use within the project. It implements fast safe integral arithmetics mapping on compiler builtins, type alignment checking, and UBSan runtime, based on NetBSD implementation.

The use of UBSan runtime requires the use of Clang compiler and -fsanitize=undefined argument. Refer to Clang documentation for more details.

Credits

Discussion

Please refer to the following list of OpenCore discussion forums.

OpenCorePkg (acidanthera/OpenCorePkg)

Searching Database…

这是什么?OpenCorePkg 就是 OpenCore,一个 UEFI 引导程序,附带一套开发用的 SDK。它最为人所知的用途是在非苹果硬件上引导并修补 macOS,同时也提供给其他 Acidanthera 项目使用的共享 UEFI 库。
这只是引导程序的二进制文件,还是也包含代码库?两者都有:它既是 OpenCore 引导程序本身,也是一套可复用的 UEFI 支持库,包括磁盘镜像加载、ACPI/SMBIOS 工具、基础加密算法、PE 加载以及文本和图形输出。其他 Acidanthera 项目都会链接这些库。
要启用额外的安全检查,是不是必须用 Clang?是的。这对 OcGuardLib 的可选 UBSan 运行时是必需的:它要求使用带 -fsanitize=undefined 标志编译的 Clang 编译器,因为未定义行为检测器是 Clang 的一项功能。
这只能在真正的 Mac 上用,还是任何带 UEFI 的电脑都行?OpenCore 应用最广的场景,是让带 UEFI 固件的非苹果电脑(即“黑苹果”,Hackintosh)引导 macOS。而它专用于苹果的库(安全启动代码、PE 签名检查)也支撑着其他与正版 Mac 硬件配合使用的 Acidanthera 工具。
OcGuardLib 是什么?它是本仓库中的一个库,负责实现项目的基本安全规范,例如带溢出检查的快速整数运算、类型对齐检查,以及可选的 Clang UBSan 运行时。
这个代码库最初从哪里来?它的早期历史可以追溯到 AppleSupportPkg 以及由 The HermitCrabs Lab 创建的 PicoLib 库集。后续的一些贡献还参考了 Chameleon 和 Clover 引导程序团队的思路与遗留代码。
打包的 SDK 替我处理了哪些底层工作?这些共享库涵盖的功能包括:ACPI/SMBIOS 修补、plist 配置解析、PNG 渲染、zlib/lzss/lzvn 解压、XNU 内核驱动注入与修补,以及避开与 UEFI 安全启动冲突的 PE 镜像加载。
它自带加密功能吗?自带。它包含 SHA-256、RSA 等基础加密算法,用于苹果 PE 镜像签名验证以及安全启动相关的补充代码等场景。
Size
242.1 MB
Stars
15.6K
Age
7y
Commits · 90 Days