explaingit

acidanthera/opencorepkg

Analysis updated 2026-06-24

14,972CAudience · ops devopsComplexity · 5/5Setup · hard

TLDR

Source for the OpenCore UEFI bootloader used by the Hackintosh community to boot macOS on non-Apple hardware, plus shared Apple-focused UEFI support libraries.

Mindmap

mindmap
  root((OpenCorePkg))
    Inputs
      UEFI firmware
      Plist config
      Kernel kexts
    Outputs
      Booted macOS
      Patched XNU
      ACPI tables
    Use Cases
      Hackintosh boot
      ACPI patching
      Kext injection
    Tech Stack
      C
      UEFI EDK2
      Clang
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build OpenCore from source to boot macOS on a custom PC

USE CASE 2

Patch ACPI and SMBIOS tables at boot to make a Hackintosh look like a real Mac

USE CASE 3

Inject kernel extensions into XNU at boot time without modifying the macOS install

USE CASE 4

Reuse the UEFI support libraries in another Acidanthera project that needs Apple driver helpers

What is it built with?

CUEFIEDK2Clang

How does it compare?

acidanthera/opencorepkgpeng-zhihui/dummy-robotglfw/glfw
Stars14,97214,95414,995
LanguageCCC
Setup difficultyhardhardmoderate
Complexity5/55/54/5
Audienceops devopsresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Building OpenCore requires the EDK2 toolchain, Clang with specific flags for the UBSan runtime, and matching Apple-specific firmware knowledge to produce a bootable config.

In plain English

OpenCorePkg is the source repository for the OpenCore bootloader, plus a development SDK for building against it. A bootloader is the piece of software that runs after the firmware on a computer and before the operating system starts, and OpenCore is one used in the Hackintosh community to boot macOS on non-Apple hardware. The README is short and assumes the reader already knows what OpenCore is for, so most of it is a catalogue of what the repository contains. Alongside the bootloader, the project holds a set of UEFI support libraries that are shared with other projects in the Acidanthera organisation on GitHub. The README states that the main purpose of these libraries is to add functionality needed for Apple-specific UEFI drivers, the firmware-level pieces that talk to Apple hardware and macOS. The README lists what the libraries handle. Among the items are loading Apple disk images, aggregating Apple keyboard input, verifying Apple PE image signatures, supplemental code for Apple UEFI secure boot, audio management with screen reading support, basic reading and writing of ACPI and SMBIOS firmware tables, gathering CPU information with timer support, cryptographic primitives such as SHA-256 and RSA, and several decompression formats including zlib, lzss, and lzvn. Other entries cover helpers for files and strings, UEFI variables, overflow-checked arithmetic, plist configuration parsing, PNG image handling, text and graphics output, and an XNU kernel driver injection and patch engine. XNU is the kernel inside macOS. A sub-library called OcGuardLib gets its own short section. It provides safe integer arithmetic built on top of compiler intrinsics, type alignment checking, and a runtime for the undefined-behaviour sanitiser, with the runtime based on a NetBSD implementation. Using the sanitiser runtime requires building with Clang and the relevant compiler flag. The rest of the README is administrative. It points readers to the AppleSupportPkg repository and the PicoLib library set for the early history of the code, credits contributors and other Hackintosh teams such as Chameleon and Clover, and links to a separate document listing OpenCore discussion forums. The repository is mainly written in C.

Copy-paste prompts

Prompt 1
Walk me through cloning OpenCorePkg and building it with the EDK2 toolchain on macOS
Prompt 2
Show me a minimal config.plist for OpenCore that boots macOS on an Intel Coffee Lake desktop
Prompt 3
Explain how the XNU kernel driver injection engine in OpenCore loads a kext at boot
Prompt 4
Give me an example of using OcGuardLib safe integer arithmetic in a UEFI driver compiled with Clang and -fsanitize=undefined
Prompt 5
Help me debug why OpenCore is stuck at the picker screen and not loading the macOS volume

Frequently asked questions

What is opencorepkg?

Source for the OpenCore UEFI bootloader used by the Hackintosh community to boot macOS on non-Apple hardware, plus shared Apple-focused UEFI support libraries.

What language is opencorepkg written in?

Mainly C. The stack also includes C, UEFI, EDK2.

How hard is opencorepkg to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is opencorepkg for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.