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…

What is this?OpenCorePkg is OpenCore, a UEFI bootloader bundled with a development SDK, best known for booting and patching macOS on non-Apple hardware, while also providing shared UEFI libraries used by other Acidanthera projects.
Is this just the bootloader binary, or also a code library?Both: it's the OpenCore bootloader itself plus a reusable set of UEFI support libraries (disk image loading, ACPI/SMBIOS tools, crypto primitives, PE loading, text/graphics output) that other Acidanthera projects link against.
Do I need Clang specifically to enable the extra safety checks?Yes, for OcGuardLib's optional UBSan runtime: it requires the Clang compiler built with the -fsanitize=undefined flag, since the undefined-behavior sanitizer is a Clang feature.
Does this only work on real Macs, or any PC with UEFI?OpenCore is most widely used to make non-Apple PCs with UEFI firmware boot macOS (Hackintosh), while its Apple-specific libraries (secure boot code, PE signature checks) also back other Acidanthera tools used with genuine Mac hardware.
What is OcGuardLib?It is the library in this repo that implements basic safety recommendations for the project, such as fast overflow-checked integer arithmetic, type-alignment checking, and the optional Clang UBSan runtime.
Where did this codebase originally come from?Its early history traces back to AppleSupportPkg and the PicoLib library set created by The HermitCrabs Lab, with later contributions referencing hints and legacy from the Chameleon and Clover bootloader teams.
What low-level tasks does the bundled SDK handle for me?The shared libraries cover things like ACPI/SMBIOS patching, plist configuration parsing, PNG rendering, zlib/lzss/lzvn decompression, XNU kernel driver injection and patching, and PE image loading that avoids conflicting with UEFI Secure Boot.
Does it include any cryptography out of the box?Yes, it ships cryptographic primitives such as SHA-256 and RSA, used for things like Apple PE image signature verification and secure boot supplemental code.
Size
241.7 MB
Stars
15.6K
Age
7y
Commits · 90 Days