# acidanthera/OpenCorePkg

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/acidanthera-opencorepkg).**

14,750 stars · 2,237 forks · C · bsd-3-clause

## Links

- GitHub: https://github.com/acidanthera/OpenCorePkg
- awesome-repositories: https://awesome-repositories.com/repository/acidanthera-opencorepkg.md

## Topics

`opencore`

## Description

OpenCorePkg is a modular UEFI bootloader designed to initialize hardware and facilitate the loading of modern operating systems on non-standard or unsupported hardware. It functions as a comprehensive firmware emulation environment, providing the necessary runtime services and memory management to bridge the gap between diverse hardware configurations and operating system requirements.

The project distinguishes itself through its ability to perform runtime kernel patching and system firmware modification, allowing for the injection of drivers and the manipulation of hardware tables during the boot sequence. It includes a robust system configuration manager that handles non-volatile memory variables and ACPI table injection, ensuring that the operating system receives a compatible hardware profile regardless of the underlying physical architecture.

Beyond its core boot capabilities, the project supports a wide range of system utilities, including graphical boot interfaces, multi-boot management, and specialized file system support for various disk formats. It provides extensive tooling for firmware development and debugging, such as virtualized environment integration, debug symbol generation, and automated build processes for firmware components.

The repository includes comprehensive source code and technical documentation to support the development and maintenance of these low-level firmware components.

## Tags

### Operating Systems & Systems Programming

- [Cross-Vendor Boot Loaders](https://awesome-repositories.com/f/operating-systems-systems-programming/firmware-boot-interfaces/cross-vendor-boot-loaders.md) — Patches system firmware and configuration to enable the loading and execution of operating systems on hardware not manufactured by the original vendor. ([source](https://github.com/acidanthera/OpenCorePkg#readme))
- [Boot Configuration Patchers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/boot-plugin-managers/boot-configuration-patchers.md) — Applies firmware patches and system configuration during the boot process to allow operating systems to run on unsupported hardware. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Dockerfiles/oc-dev))
- [Multi-Stage Bootloaders](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/multi-stage-bootloaders.md) — Initializes hardware and patches system firmware to enable booting modern operating systems on non-standard hardware.
- [Firmware Boot Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/firmware-boot-interfaces.md) — Provides a low-level interface with legacy-compatible boot services and runtime memory management. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))
- [Hardware Compatibility Patchers](https://awesome-repositories.com/f/operating-systems-systems-programming/firmware-boot-interfaces/hardware-compatibility-patchers.md) — Patches system firmware to enable the installation and execution of operating systems on non-standard hardware.
- [Kernel Extension Loaders](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers/graphics-drivers/kernel-driver-injection/kernel-extension-loaders.md) — Patches operating system kernels at runtime to ensure hardware compatibility during the early boot sequence.
- [Driver Injection](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers/driver-injection.md) — Modifies the operating system kernel at runtime by injecting drivers to ensure compatibility with non-standard hardware. ([source](https://github.com/acidanthera/OpenCorePkg#readme))
- [Kernel Patching Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-administration-utilities/system-modification-frameworks/kernel-patching-utilities.md) — Applies binary modifications to kernel code in memory during the boot sequence to enable support for non-native hardware.
- [ACPI Table Injection Tools](https://awesome-repositories.com/f/operating-systems-systems-programming/acpi-table-injection-tools.md) — Modifies hardware description tables in memory to present a compatible system profile to the operating system kernel.
- [Modern Boot Environment Initializers](https://awesome-repositories.com/f/operating-systems-systems-programming/firmware-boot-interfaces/modern-boot-environment-initializers.md) — Provides a legacy-compatible boot environment to enable loading modern operating systems on hardware lacking native firmware support. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/OpenDuetPkg.fdf))
- [UEFI Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/firmware-boot-interfaces/uefi-emulators.md) — Provides a compliant UEFI interface on legacy systems to enable the execution of modern firmware drivers. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/OpenDuetPkg.dsc))
- [Firmware Development Toolkits](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/bootable-image-executors/bootloader-configurators/firmware-development-toolkits.md) — Facilitates building and debugging low-level firmware components and bootloader binaries for system initialization.
- [Legacy Device Support](https://awesome-repositories.com/f/operating-systems-systems-programming/legacy-device-support.md) — Provides compatibility layers and driver support to enable modern operating systems on older hardware. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/OpenDuetPkg.dec))
- [Memory-Mapped IO Redirection Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-mapped-io-redirection-systems.md) — Intercepts hardware communication by remapping memory addresses to ensure compatibility between modern operating systems and legacy hardware interfaces.
- [NVRAM Variable Emulation Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/nvram-variable-emulation-systems.md) — Provides a persistent storage layer for system configuration data that survives reboots by mapping variables to non-volatile memory.
- [Boot & Startup Management](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management.md) — Detects and loads older operating systems that do not support modern boot standards during the system startup sequence. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))
- [Boot Menu Configurators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/boot-menu-configurators.md) — Manages complex boot environments to allow multiple operating systems to coexist and launch on a single computer.
- [Linux Boot Loaders](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/boot-plugin-managers/boot-configuration-patchers/linux-boot-loaders.md) — Identifies and executes boot loaders for Linux distributions to enable multi-boot configurations on hardware lacking native support. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))
- [Chain-Loading Bootloaders](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/chain-loading-bootloaders.md) — Maintains essential system functions and memory protections after the operating system kernel has been loaded into the system memory.
- [Network Booting Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/network-booting-utilities.md) — Loads operating system images over a network connection to facilitate remote deployment or diskless operation for connected hardware. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))
- [Firmware Data Modifiers](https://awesome-repositories.com/f/operating-systems-systems-programming/os-development-distributions/firmware-management/firmware-data-modifiers.md) — Updates hardware tables and system information to present a compatible hardware profile to the operating system during startup. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/README.md))
- [Firmware](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers/graphics-drivers/firmware.md) — Provides a firmware-embeddable driver that adds native graphics support for non-native hardware components. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Staging))
- [Boot Environment Selectors](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/boot-startup-management/boot-environment-selectors.md) — Displays a visual menu for selecting boot targets and system options using custom themes and icons. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))
- [Memory Safety Diagnostics](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-safety-diagnostics.md) — Enforces memory safety and arithmetic integrity through runtime sanitization to prevent system instability during the boot process. ([source](https://github.com/acidanthera/OpenCorePkg#readme))
- [Runtime Safety Validators](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-safety-diagnostics/runtime-safety-validators.md) — Performs arithmetic overflow protection and type alignment validation to prevent memory corruption during firmware execution. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/README.md))
- [Partition Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/partition-managers.md) — Accesses partition tables at a low level to ensure compatibility with various disk layouts and file system formats. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))
- [Filesystem Volume Mounts](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-administration-utilities/system-modification-frameworks/system-volume-patchers/filesystem-volume-mounts.md) — Implements file system support for specific volume formats to ensure bootable media is correctly recognized. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Staging))
- [System Services](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-services.md) — Maintains essential system functions and memory protections after the operating system kernel has been loaded into memory. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))

### System Administration & Monitoring

- [System Configuration Managers](https://awesome-repositories.com/f/system-administration-monitoring/system-configuration-managers.md) — Manipulates hardware tables and NVRAM variables to present a compatible environment to the operating system.
- [System Configuration Management](https://awesome-repositories.com/f/system-administration-monitoring/system-configuration-management.md) — Parses configuration files and manipulates hardware tables to present a compatible environment to the operating system during the boot process. ([source](https://github.com/acidanthera/OpenCorePkg#readme))

### Software Engineering & Architecture

- [Boot Process Hooks](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/lifecycle-signal-handlers/boot-process-hooks.md) — Intercepts and wraps low-level firmware service calls to extend or override standard system behavior during the boot process.
- [Firmware Variable Stores](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/firmware-variable-stores.md) — Provides persistent storage for system configuration data that survives reboots and power cycles. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))

### Data & Databases

- [Dynamic Driver Loaders](https://awesome-repositories.com/f/data-databases/storage-abstraction/storage-provider-drivers/task-and-device-drivers/dynamic-driver-loaders.md) — Dynamically loads and initializes external binary modules and drivers to extend firmware functionality without modifying the core image.
- [Windows](https://awesome-repositories.com/f/data-databases/persistent-storage-volumes/filesystem-mounts/windows.md) — Adds support for reading and accessing data from Windows-formatted partitions during the early stages of the boot process. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Platform))

### Development Tools & Productivity

- [Environment Debugging Tools](https://awesome-repositories.com/f/development-tools-productivity/environment-debugging-tools.md) — Inspects and troubleshoots the early boot process using virtualized environments, memory mapping, and external debuggers.

### Hardware & IoT

- [Legacy Boot Environments](https://awesome-repositories.com/f/hardware-iot/legacy-hardware-support/legacy-boot-environments.md) — Initializes a compliant boot environment for legacy hardware by loading essential drivers for system management. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/OpenDuetPkgDefines.fdf.inc))
- [Firmware Debuggers](https://awesome-repositories.com/f/hardware-iot/firmware-management/firmware-debuggers.md) — Connects external debuggers to virtualized firmware environments to inspect memory and perform source-level code analysis. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/Debug))
- [Firmware Filesystem Generators](https://awesome-repositories.com/f/hardware-iot/firmware-management/firmware-filesystem-generators.md) — Provides utilities to package drivers and modules into structured binary formats for firmware deployment. ([source](https://github.com/acidanthera/OpenCorePkg/blob/master/OpenCorePkg.fdf))
- [Firmware Image Extractors](https://awesome-repositories.com/f/hardware-iot/firmware-management/firmware-image-extractors.md) — Unpacks proprietary firmware images from official update packages to retrieve the low-level data required for hardware identification and system configuration. ([source](https://github.com/acidanthera/OpenCorePkg/tree/master/AppleModels))

### Security & Cryptography

- [Firmware Signature Verifiers](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/digital-signature-validators/firmware-signature-verifiers.md) — Validates the integrity of image signatures to support secure boot processes within firmware environments. ([source](https://github.com/acidanthera/OpenCorePkg#readme))
