Core OpenCore Plugins: A Practical Reference

--
Updated: 10 August 2026

Modern OpenCore configurations rely on a foundational stack of kernel extensions and plugins to inject SMC emulation, hardware graphics routing, native audio codecs, and NVMe power management. This reference details each core plugin, its purpose, its required load sequence, and configuration rules across modern macOS versions including macOS Sequoia, Sonoma, and Ventura.

1. The Lilu Framework & Plugin Architecture

Lilu.kext functions as the central kernel extension patching engine for macOS. Rather than modifying system binaries on disk, Lilu loads in early boot and applies memory patches to Mach-O binaries, system kexts, and the XNU kernel at runtime. All plugins listed below require Lilu to operate.

  • Critical Dependency Rule: Lilu.kext must always be placed and loaded first in the Kernel -> Add array of your config.plist before any Lilu-dependent plugin.
  • Version Alignment: Always update Lilu and its plugins together prior to performing macOS system upgrades to prevent early boot kernel panics.

2. Core Essential Plugins Breakdown

Plugin / Kext Primary Function Hardware Target Common Boot-Args / Notes
VirtualSMC.kext Advanced SMC (System Management Controller) emulator. Replaces legacy FakeSMC. All x86 PC architectures (Intel & AMD) Must load immediately after Lilu.kext. Essential for boot.
WhateverGreen.kext Complete GPU patching system (DRM, framebuffer patching, connector mappings, backlight fix). Intel HD/UHD/Iris iGPUs, AMD Radeon dGPUs (Polaris, Vega, Navi, Big Navi), legacy NVIDIA agdpmod=pikera (for AMD RX 5000/6000), -wegnoegpu (disables secondary dGPU on laptops).
AppleALC.kext Native high-definition audio routing without modifying AppleHDA. Realtek ALC, Conexant, IDT, Intel/AMD HD Audio controllers alcid=layout_id injected via boot-args or layout-id via DeviceProperties.
NVMeFix.kext Non-Apple NVMe power management, APST (Autonomous Power State Transition), and timeout fixes. Third-party M.2 NVMe SSDs (Samsung, Western Digital, Crucial, Kingston) Improves battery life on laptops and reduces thermal throttling on desktop NVMe drives.
RestrictEvents.kext Controls system behaviour, unblocks OTA updates, fixes memory warnings on MacPro SMBIOS, and customizes CPU display string. Intel & AMD CPUs with non-standard core layouts or generic SMBIOS profiles revpatch=..., revcpu=1 (allows displaying custom CPU name in 'About This Mac').
CpuTopologyRebuild.kext Heterogeneous core topology scheduler optimizer for Intel Alder Lake, Raptor Lake, and newer hybrid architecture CPUs. Intel 12th, 13th, and 14th Gen CPUs (Performance & Efficient cores) Optimizes thread allocation between P-Cores and E-Cores in macOS.
FeatureUnlock.kext Enables Sidecar, Universal Control, AirPlay to Mac, and Night Shift on unsupported models. Systems with supported Wi-Fi/Bluetooth running older or mixed SMBIOS hardware Requires compatible Apple/Broadcom Wi-Fi & Bluetooth hardware.

3. VirtualSMC Plugin Suite

VirtualSMC.kext includes specialized companion plugins that should only be enabled when relevant hardware sensors or features are present:

  • SMCProcessor.kext: Enables CPU core temperature and power monitoring for Intel processors. (Do not use on AMD CPUs).
  • SMCSuperIO.kext: Enables motherboard fan speed and voltage monitoring through LPC sensor chips (IT87xx, Nuvoton NCT67xx, Winbond).
  • SMCBatteryManager.kext: Reads laptop battery state and ACPI power levels. Essential for laptops; do not use on desktops.
  • SMCLightSensor.kext: Emulates ambient light sensors for laptops with supported ACPI sensors.
  • SMCDellSensors.kext: Provides fan and thermal management on specific Dell desktop and laptop systems.

4. Recommended Kernel Load Order (config.plist)

OpenCore loads kernel extensions strictly in the numerical order they appear under Kernel -> Add. An incorrect order causes early panics:

  1. Lilu.kext (Index 0 - Mandatory first position)
  2. VirtualSMC.kext (Mandatory second position)
  3. WhateverGreen.kext
  4. AppleALC.kext
  5. NVMeFix.kext
  6. RestrictEvents.kext
  7. VirtualSMC child plugins: SMCProcessor.kext, SMCSuperIO.kext, SMCBatteryManager.kext
  8. Networking & Controller kexts (LucyRTL8125Ethernet.kext, IntelMausi.kext, etc.)
  9. Input & USB kexts (USBMap.kext / USBToolBox.kext, VoodooPS2Controller.kext, VoodooI2C.kext)

5. Verification and Diagnostic Procedures

To ensure all core plugins load properly and function without conflicts:

  • Validate config.plist: Always execute ocvalidate /path/to/config.plist after any kext addition or modification.
  • Verbose Logging: Keep boot-args -v keepsyms=1 debug=0x100 active while configuring new plugins to capture panics.
  • Lilu Debugging: Add -liludbgall or -wegdbg to obtain detailed kernel log traces in the OpenCore log.
  • Safe USB Backup: Always keep a validated, bootable copy of your previous working EFI on a FAT32 USB drive before applying plugin updates.

Reliable Starting Points

Editorial Note

Only install plugins matching your specific hardware components. Unnecessary kexts add overhead to early kernel initialization and increase the risk of sleep/wake instability.

For broader troubleshooting and hardware verification, consult the FAQ or use the Spec Checker.

Share:

Leave a Reply

Loading comments...