公告:由於Opencore 已更新到OC 0.9.2,某部分的設定有所變更。


本文是基於OpenCore-0..9.2 發行版所編寫的,並且已Opencore Vanilla Desktop Guide  為做基礎,有可能會有英翻中的錯誤,在此事先說明。本教學內容皆取自於自各大黑蘋果教學網站精髓,經個人多次測試除錯之後,重新編譯中文引導教學。針對 Z300 型主機板不支援 NVRAM 的部分,已經有解決方案。請參考這裡

GA Z490 ELITE AC Hackintosh 構建教學
GA Z590 ELITE AX Hackintosh 構建教學

以下是我個人推薦 OpenCore 相關的教學網站。
Opencore Vanilla Laptop Guide (筆記型)
Opencore Vanilla Desktop Guide(桌上型)
OpenCore Configuration
精解OpenCore(黑果小兵) in Russian in German
InsanelyMac in English
Xjn’s Blog 中國 Xjn’s 部落格
NSK 主題下載



  • Added `DisableIoMapperMapping` quirk, thx @CaseySJ
  • Fixed disabling single user mode when Apple Secure Boot is enabled
  • Improved guard checks for `GopBurstMode` on systems where it’s not needed
  • Improved compatibility of `GopBurstMode` with some very non-standard GOP implementations
  • Fixed possible hang with `GopBurstMode` enabled on DEBUG builds
  • Enabled `GopBurstMode` even with natively supported cards, in EnableGop firmware driver
  • Fixed inability to patch force-injected kexts
  • Fixed `ExternalDiskIcons` quirk on macOS 13.3+, thx @fusion71au Fixed various recent reversions and some longer-standing minor bugs in `Builtin` text renderer
  • Applied some additional minor optimizations to `Builtin` text renderer
  • Implemented `InitialMode` option to allow fine control over text renderer operating mode
  • Added support for `ConsoleMode` text resolution setting to `Builtin` renderer
  • Fixed regression for ACPI quirks `RebaseRegions` and `SyncTableIds`
  • Updated build process to provide stable and bleeding-edge versions of `EnableGop`
  • Implemented minor improvements in `PickerMode` `Apple`
  • Improved filtering algorithm for `LogModules` option
  • Fixed crash when gathering system report on virtualised CPUs



  • Added DisableIoMapperMapping quirk, thx @CaseySJ
  • Fixed disabling single user mode when Apple Secure Boot is enabled
  • Improved guard checks for GopBurstMode on systems where it’s not needed
  • Improved compatibility of GopBurstMode with some very non-standard GOP implementations
  • Fixed possible hang with GopBurstMode enabled on DEBUG builds
  • Enabled GopBurstMode even with natively supported cards, in EnableGop firmware driver
  • Fixed inability to patch force-injected kexts


  • Fixed long comment printing for ACPI patches, thx @corpnewt
  • Added sample config for VS Code source level debugging with gdb
  • Updated builtin firmware versions for SMBIOS and the rest
  • Added GOP memory caching report to SysReport
  • Implemented GopBurstMode quirk for faster GOP operation on older firmware
  • Fixed ThirdPartyDrives quirk on macOS 13.3 and above


  • Resolved issues with verbose boot log appearing over picker graphics
  • Added version number to EnableGop UI section, so tool builders can track it
  • Added ProvideCurrentCpuInfo support for macOS 13.3 DP
  • Added AMD support, GOP offset auto-detection and macOS 10.11+ support to EnableGop vBIOS insertion script
  • Included precompiled EDK-II EfiRom and GenFfs in Utilities/BaseTools with OpenCore releases


  • Improved debug logging when applying ACPI patches
  • Fixed loading macOS with legacy boot without Apple Secure Boot
  • Added Linux support to legacy boot BootInstall script
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed incomplete console mode initialisation when started in graphics mode
  • Provided additional UEFI forge mode, for use in firmware drivers
  • Implemented firmware driver enabling pre-OpenCore graphics on non-natively supported GPUs on EFI-era Macs
  • Prevented unwanted clear screen to console background colour when in graphics mode
  • Added ResizeUsePciRbIo quirk to workaround broken PciIo on some UEFI firmwares, thx @xCuri0
  • Fixed crash while using SysReport on older Atom systems
  • Fixed kexts without a Contents folder not being patched during a cacheless boot
  • Added read-only sections (.rdata) to all drivers for better memory protection when supported
  • Fixed crash while using SysReport on systems with non-audio HDA codecs
  • Fixed debug script support for GDB and LLDB
  • Fixed legacy boot debug builds asserting on macOS loading


  • Updated underlying EDK II package to edk2-stable202211
  • Updated AppleKeyboardLayouts.txt from macOS 13.1
  • Updated builtin firmware versions for SMBIOS and the rest
  • Updated ocvalidate to allow duplicate tool if FullNvramAccess is different
  • Fixed Kernel -> Block entries not being processed if one was skipped due to Arch
  • Fixed intermittent prelinking failures caused by XML corruption when kext blocking is enabled
  • Removed magic Acidanthera sequence from OpenCore files used for picker hiding
  • Added .contentVisibility to hide and disable boot entries
  • Added Linux support to QemuBuild.command used for Duet debugging
  • Built in new secure PE/COFF loader
  • Added prebuilt mtoc universal binary with Apple Silicon support
  • Corrected OpenDuet build on Apple Silicon
  • Added SD card device path support for boot device selection


  • Removed unwanted clear screen when launching non-text boot entry
  • Fixed TSC/FSB for AMD CPUs in ProvideCurrentCpuInfo, thx @Shaneee
  • Added Misc -> Boot -> HibernateSkipsPicker not to show picker if waking from macOS hibernation
  • Changed macrecovery to download files into by default, thx @dreamwhite
  • Supported Apple builtin picker (using BootKicker.efi or PickerMode Apple) when running GPUs without Mac-EFI support on units such as the MacPro5,1 (thx @cdf, @tsialex)
  • Enabled PickerMode Apple to successfully launch selected entry
  • Enabled BootKicker.efi to successfully launch selected entry (via reboot) (thx @cdf)
  • Added spoof proof UEFI 2.x checking to OpenVariableRuntimeDxe, thx @dakanji


  • Updated NVRAM save script for compatibilty with earlier macOS (Snow Leopard+ tested)
  • Updated NVRAM save script to automatically install as launch daemon (Yosemite+) or logout hook (older macOS)
  • Fixed maximum click duration and double click speed for non-standard poll frequencies
  • Added support for pointer dwell-clicking
  • Fixed recursive loop crash at first non-early log line on some systems
  • Fixed early log preservation when using unsafe fast file logging
  • Updated builtin firmware versions for SMBIOS and the rest
  • Resolved wake-from-sleep failure on EFI 1.1 systems (including earlier Macs) with standalone emulated NVRAM driver
  • Updated macrecovery commands with macOS 12 and 13, thx @Core-i99
  • Updates SSDT-BRG0 with macOS-specific STA to avoid compatibility issues on Windows, thx @Lorys89
  • Fixed memory issues in OpenLinuxBoot causing crashes on 32-bit UEFI firmware
  • Updated builtin firmware versions for SMBIOS and the rest
  • Moved CPU objects that exist only in Windows Server 2022 into SSDT-HV-DEV-WS2022.dsl
  • Updated Hyper-V device path expansion to support hot add/remove of disks
  • Improved verbose logging during kernel patching


  • Added checks for Driver -> LoadEarly in ocvalidate
  • Added FullNvramAccess option for tools which require direct access to NVRAM
  • Replaced SSDT-HV-CPU.dsl with SSDT-HV-DEV.dsl for compatiblity with older macOS versions on Windows 10 and newer
  • Updated builtin zlib library to 1.2.12
  • Changed ocpasswordgen not to print characters on password input
  • Added ProcessKernel utility for testing kext injection based on configs
  • Fixed crash while using SysReport on Pentium 4 systems
  • Fixed crash after ExitBootServices() is called while using DEBUG builds and file logging
  • Fixed 32-bit userspace build support on macOS (use High Sierra 10.13 and below)
  • Added basic set of NetworkPkg drivers with HTTP boot support


  • Added ext4 file system driver
  • Added support for macOS 13 DP3 Kernel Collection
  • Added --force-device option to AudioDxe, allowing UEFI audio on HDA contollers which misreport themselves as non-HDA audio devices
  • Provided optional unsafe fast file logging (suitable only for firmware with a fully compliant FAT32 driver)
  • Fixed incorrect OSBundleLibraries_x86_64 handling during cacheless injection
  • Changed RsaTool not to link against system ssl on macOS
  • Fixed crash during cacheless injection when kext blocking is enabled
  • Removed default codec connection delay from AudioDxe
  • Added optional --codec-setup-delay argument to AudioDxe
  • Changed units of Audio -> SetupDelay from microseconds to milliseconds (divide previous value by 1000 if using this setting)
  • Fixed incorrect FAT binary slice being selected under macOS 10.4.11 when performing a cacheless boot
  • Fixed rare assertion caused by label animation initialisation in OpenCanopy
  • Added --show-csr option for Toggle SIP boot menu entry
  • Added macOS 10.4 and 10.5 support to AllowRelocationBlock Booter quirk
  • Added CPU cache info injection for macOS 10.4 to ProvideCurrentCpuInfo quirk
  • Added emulated NVRAM driver for use separately from OpenDuet
  • Added support for NVRAM reset and set default boot entry when using emulated NVRAM
  • Upgraded emulated NVRAM logout script to allow unsupervised installation of recent macOS OTA updates
  • Added Driver -> LoadEarly for drivers which need to be loaded before NVRAM init


  • Fixed AppleCpuPmCfgLock on macOS 13
  • Fixed DummyPowerManagement on macOS 13
  • Updated builtin firmware versions for SMBIOS and the rest
  • Added macOS 13 support for AvoidRuntimeDefrag Booter quirk
  • Added injected kext bundle version printing in DEBUG builds
  • Added Linux compatibility for CreateVault scripts


  • Improved ExtendBTFeatureFlags quirk on newer macOS versions, thx @lvs1974
  • Added notes about DMAR table and ForceAquantiaEthernet, thx @kokowski
  • Added System option in LauncherOption property, thx @stevezhengshiqi
  • Updated note about CustomPciSerialDevice, thx @joevt
  • Added read-only driver for NTFS
  • Switched Reset NVRAM and Toggle SIP to configurable boot entry protocol drivers
  • Supported optional Apple firmware-native NVRAM reset, thx @syncretic
  • Supported NVRAM reset optionally retaining BIOS boot entries
  • Supported user specified csr-active-config value for Toggle SIP
  • Added optional Enabled and Disabled flavours for Toggle SIP (allows theme designers to provide distinct icons)
  • Added PIIX4 ACPI PM timer detection for TSC calculations on Hyper-V Gen1 VMs


  • Added support for early log preservation
  • Switched to Python 3 in scripts (use python /path/to/script to force Python 2)
  • Added ForceAquantiaEthernet for Aquantia AQtion AQC-107s based 10GbE network cards support, thx @Mieze and @Shikumo
  • Updated builtin firmware versions for SMBIOS and the rest
  • Added Misc -> Serial section to customise serial port properties
  • Added CustomPciSerialDevice quirk for XNU to correctly recognise customised external serial devices


  • Added auto-detect macOS Installer volume name for use when .disk_label file cannot be displayed
  • Added --restore-nosnoop flag to AudioDxe, making v0.7.7 fix for Windows sound opt-in
  • Added new method to disable trim when SetApfsTrimTimeout is set to zero
  • Fixed SetApfsTrimTimeout on macOS 12 (only works when set to zero)
  • Added script to build qemu recovery images to macrecovery
  • Fixed selecting SecureBootModel on hypervisors (should be x86legacy)
  • Added kext blocking Strategy for prelinked and newer
  • Added global MSR 35h fix to ProvideCurrentCpuInfo, allowing -cpu host in KVM
  • Fixed potential memory corruption with AVX acceleration enabled
  • Added LogModules for positive and negative log filtering by modules
  • Renamed OpenLinuxBoot driver argument from partuuidopts:{PARTUUID} to autoopts:{PARTUUID}
  • Supported booting Linux from stand-alone /boot partition without /loader/entries files (user must specify full kernel boot options)
  • Handled XML entities in driver arguments
  • Updated underlying EDK II package to edk2-stable202202


  • Updated ocvalidate to warn about insecure DmgLoading with secure SecureBootModel (already disallowed in runtime)
  • Fixed AudioDxe not disabling unused channels after recent updates
  • Allow gain to track OS volume on old macOS without SystemAudioVolumeDB
  • Fixed crash on no mouse support when verifying password
  • Fixed AppleInternal CSR bit being set with ProvideCustomSlide enabled
  • Added support for .contentFlavour and .contentDetails files for boot entry protocol entries including OpenLinuxBoot
  • Added LINUX_BOOT_ADD_RW flag to OpenLinuxBoot to support e.g. EndeavourOS
  • Added flags+= and flags-= arguments to OpenLinuxBoot to simplify setting driver flags if needed
  • Fixed OpenLinuxBoot entry name disambiguation when LINUX_BOOT_USE_LATEST flag is clear
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed crash in OpenLinuxBoot with partly (re-)installed Linux distro
  • Improved robustness in malformed PE image file parsing


  • Fixed rare crash caused by register corruption in the entry point
  • Added ProvideCurrentCpuInfo support for Intel Alder Lake
  • Fixed typo in Cpuid1Data recommendations for Intel Rocket Lake and newer
  • Updated builtin firmware versions for SMBIOS and the rest
  • Updated underlying EDK II package to edk2-stable202111
  • Resolved crashes in QEMU with AudioDxe
  • Added AudioDxe settings caching (avoids non-needed setup delays)
  • Added DisconnectHda quirk to allow UEFI sound on Apple hardware and others
  • Added workarounds for bugs in QEMU intel-hda driver to allow UEFI sound in QEMU
  • Implemented multi-channel (e.g. bass+main speaker; speakers+headphones) UEFI sound with AudioOutMask
  • Fixed AudioDxe startup stalls when Nvidia HDA audio is present
  • Resolved AudioDxe disabling sound in Windows on some firmware
  • Added pointer polling period tuning in the builtin AppleEvent implementation
  • Added pointer device list tuning in the builtin AppleEvent implementation
  • Added VREF handling to support UEFI sound on more Apple hardware
  • Updated audio output channel detection to support UEFI sound on more Apple hardware
  • Added manual GPIO config (use --gpio-setup AudioDxe driver argument for UEFI sound on Apple hardware)
  • Switched UEFI audio levels to decibel gain to allow accurate matching of saved macOS volume levels
  • Separated settings for minimum audio assist volume and minimum audible volume


  • Fixed stack canary support when compiling with GCC
  • Added automatic scaling factor detection
  • Explicitly restricted ResizeAppleGpuBars to 0 and -1
  • Fixed OpenCanopy long labels fade-out over graphics background
  • Fixed ProvideConsoleGop not disabling blit-only modes (e.g. on Z690)
  • Fixed Alder Lake SMBIOS CPU model information
  • Added XCPM CPU power management ACPI table for Intel Alder Lake
  • Updated draw order to avoid graphics tearing in OpenCanopy
  • Fixed handling PCI device paths with logical units in ScanPolicy
  • Added ReconnectGraphicsOnConnect option for enabling alternative UEFI graphics drivers
  • Added BiosVideo.efi driver to use with ReconnectGraphicsOnConnect
  • Changed FadtEnableReset to avoid unreliable keyboard controller reset
  • Added EnableVmx quirk to allow virtualization in other OS on some Macs
  • Upgraded ProtectUefiServices to prevent GRUB shim overwriting service pointers when chainloading with Secure Boot enabled
  • Removed deprecated SSDT-PNLFCFL
  • Fixed handling of zero-sized Memory Attributes Table


  • Revised OpenLinuxBoot documentation
  • Supported Linux ostree boot layout
  • Fixed external drive icons for Boot Entry Protocol
  • Added GPU Resize BAR quirks to reduce BARs on per-OS basis
  • Fixed OpenLinuxBoot hang bug after correct detection of some distros
  • Added DMG signature check during download, thx @jspraul and @zhangyoufu
  • Updated builtin firmware versions for SMBIOS and the rest
  • Updated recovery downloading commands to include macOS 11 and 12


  • Fixed Linux kernel sort order
  • Added Linux detection optional log detail
  • Fixed CPU core count detection for more legacy CPUs
  • Added ability to fully override autodetect Linux boot options
  • Added large BaseSystem support in AdviseFeatures
  • Updated builtin firmware versions for SMBIOS and the rest
  • Added tool to extract vendor secure boot certificate from GRUB shim file
  • Added BridgeOSHardwareModel NVRAM variable to fix T2 SB AP models on macOS 12
  • Changed Default Apple Secure Boot model to match SMBIOS for macOS 12
  • Fixed opencore-version not being added to NVRAM variables


  • Improved SSDT-PNLF compatibility with CFL+ graphics
  • Fixed OpenCanopy performance loss due to redrawing introduced in 0.6.9
  • Added pattern-based automatic variable initialisation for better security
  • Updated underlying EDK II package to edk2-stable202108
  • Updated Apple Secure Boot variables for x86legacy
  • Updated Linux variants in
  • Implemented Boot Entry Protocol, allowing plug-in boot entry drivers
  • Added StringBuffer and FlexArray libraries
  • Updated Drivers to support arguments (requires config.plist update, see samples)
  • Added OpenLinuxBoot driver: OC-native Linux autodetect and boot without chaining via GRUB
  • Fixed overlong boot entry names breaking text flow in builtin menu
  • Added ForceOcWriteFlash UEFI quirk to enable writing OC system variables


  • Fixed OSBundleLibraries/OSBundleLibaries64 handling
  • Added GraphicsInputMirroring to fix lost keystrokes in some non-Apple graphical UEFI apps
  • Added support for stack canaries (security cookies / stack guards)
  • Fixed unintialised memory access in AudioDxe causing audio playback failure
  • Changed Default Apple Secure Boot model to x86legacy for better security and compatibility
  • Increased default APFS MinDate and MinVersion to macOS Big Sur for better security
  • Updated builtin firmware versions for SMBIOS and the rest
  • Improved SSDT-PNLF compatibility with Windows and newer graphics
  • Fixed CLANGPDB OpenCore builds by shortening OC magic


  • Added SyncTableIds quirk to sync modified table OEM identifiers
  • Added CPU Info (MSRs) dumping to SysReport
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed PowerTimeoutKernelPanic on macOS 12
  • Fixed transparency click detection on OpenCanopy boot entries
  • Added PCI device info dumping to SysReport
  • Fixed SetApfsTrimTimeout on macOS 12
  • Documented requirement for SetDefault.icns width to match Selector.icns width
  • Added explicit warn and safe fallback to builtin picker on failure to match the above
  • Added VSCode source level IDE debug config example to debug docs
  • Added other minor debug docs updates
  • Fixed incorrect timeout of built-in picker on IA32
  • Added support for custom kernels on ESP partition
  • Fixed DEBUG ASSERT on pressing change entry keys with single boot entry in OpenCanopy
  • Added recommended Apple12 and Windows11 flavours
  • Added TpmInfo tool to DEBUG TPM status
  • Fixed incorrect OpenCanopy initial display when default entry beyond right of screen
  • Fixed ProvideCurrentCpuInfo MSR patch on macOS 12
  • Fixed AppleXcpmForceBoost patch on macOS 12


  • Fixed NVRAM reset on firmware with write-protected BootOptionSupport
  • Improved direct GOP renderer performance for certain cases
  • Added support for display rotation in direct GOP renderer
  • Fixed handling multinode device paths in LoadedImage and elsewhere
  • Changed OpenCanopy image directory to support directory prefixes
  • Changed OpenCanopy preferred image set to AcidantheraGoldenGate
  • Removed .icns and .icns support
  • Added content flavour system allowing custom boot entry icons compatible across icon packs
  • Added automatic flavour detection for macOS boot entries
  • Added ProvideCurrentCpuInfo quirk to provide correct TSC/FSB for Hyper-V virtual machines
  • Added Hyper-V device path expansion to allow setting default boot volume
  • Added Apple variant of GopPassThrough to handle only AppleFramebufferInfo handles
  • Fixed further kernel patches not being processed if a patch was skipped due to arch mismatch
  • Added optional Toggle SIP system boot menu option
  • Added CsrUtil.efi tool, similar to Apple csrutil
  • Removed support for .lbl/.l2x pre-drawn entry labels
  • Fixed previous text not cleared before console mode tools and entries in OpenCanopy
  • Fixed DEBUG build crashes with GopPassThrough and UgaPassThrough
  • Added flavour for memory testing utilities
  • Updated recommended memtest86 config in sample .plist files
  • Defined bootloader flavours
  • Applied own flavour to OC build
  • Added CPU topology fixes to ProvideCurrentCpuInfo quirk
  • Updated OC default SIP disabled value
  • Documented SIP values which affect macOS updates
  • Added csr-data Apple NVRAM var to docs
  • Fixed file alignment causing codesign issues with CLANGPDB images
  • Replaced AdviseWindows with AdviseFeatures to support APFS


  • Fixed out-of-sync cursor movement rectangle when loading e.g. CrScreenshotDxe
  • Updated underlying EDK II package to edk2-stable202102
  • Applied consistent enforcement of required minimum Apple OEM Apple Event protocol version
  • Changed CustomDelays to less surprising boolean setting with failsafe of false
  • Changed key repeat failsafes and sample values to Apple OEM values
  • Changed PointerSpeedMul failsafe to Apple OEM value
  • Updated docs to include configuration of key repeat settings with and without KeySupport
  • Prevented ‘set default’ UI when action not permitted by security config
  • Added ForgeUefiSupport quirk to workaround legacy EFI 1.x firmwares compatibility
  • Added ReloadOptionRoms quirk to force-load Option ROMs on PCI devices
  • Added OC_ATTR_USE_MINIMAL_UI to allow running pickers with no Shutdown and Restart buttons
  • Added display of OpenCore version number to OpenCanopy as well as builtin picker, depending on existing ExposeSensitiveData bit
  • Added support for case-insensitive argument handling in the UEFI tools
  • Added vector acceleration of SHA-512 and SHA-384 hashing algorithms, thx @MikhailKrichanov
  • Fixed wraparound when using arrow keys in OpenCanopy
  • Updated builtin firmware versions for SMBIOS and the rest
  • Added bundled Linux versions for userspace utilities
  • Fixed fallback SMBIOS Manufacturer value to NO DIMM for empty slots
  • Fixed assertions when running OpenCanopy with low resolution, will fallbacks to builtin now


  • Switched to VS2019 toolchain for Windows builds
  • Reduced legacy boot install interaction effort
  • Increased OpenCanopy rendering performance
  • Added OpenCanopy Shut Down and Restart buttons
  • Reduced OpenCanopy mouse pointer input lag
  • Fixed that cursor bounds could be different from OpenCanopy’s
  • Improved builtin picker rendering performance
  • Added Memory Type decoding for SMBIOS in Automatic mode
  • Properly support setting custom entries as default boot options
  • Fixed creating log file when root file system is not writable
  • Fixed DisableSingleUser not being enabled in certain cases
  • Added ForceBooterSignature quirk for Mac EFI firmware
  • Fixed OpenCanopy sometimes cutting off shown boot entries
  • Further improved CPU frequency calculation on legacy CPUs
  • Fixed SMBIOS SMC version encoding sequence
  • Added TSC frequency reading from Apple Platform Info
  • Added TSC frequency reading for Apple devices with nForce chipsets
  • Added Base and BaseSkip lookup for ACPI patches
  • Fixed ACPI table magic corruption during patching
  • Fixed unnatural OpenCanopy and FileVault 2 cursor movement
  • Fixed OpenCanopy interrupt handling causing missed events and lag
  • Improved OpenCanopy double-click detection
  • Reduced OpenCanopy touch input lag and improved usability
  • Improved keypress responsiveness in OpenCanopy and builtin pickers
  • Improved non-repeating key detection in OpenCanopy and builtin pickers
  • Fixed Escape preventing OpenCanopy fade up until released, on some systems
  • Fixed fast repeat then stall issue with key handling on some PS/2 systems
  • Added accurate Shift+Enter/Shift+Index detection when using PollAppleHotKeys
  • Added ‘set default’ indicator to builtin picker
  • Replaced VerifyMsrE2 with ControlMsrE2 also allowing unlock on some firmwares
  • Fixed OpenCanopy flicker when refreshing the entry view
  • Added OpenCanopy TAB navigation support
  • Added OpenCanopy graphical password interface
  • Added OpenCanopy pulsing animation to signal timeout
  • Added OpenCanopy ‘set default’ indicator
  • Fixed OpenCanopy not aborting timeout on pointer click
  • Fixed OpenCanopy intro animation not scaling with UIScale
  • Add OpenCanopy boot entry label scrolling (fixes missing long labels)
  • Added tabbable Shutdown and Restart buttons to builtin picker
  • Fixed in-firmware shutdown for some systems running OpenDuet
  • Added Zero as alias hotkey for Escape, to force show picker if hidden
  • Added =/+ key as alias for CTRL to set default OS
  • Added additional support for configuring correct key repeat behaviour with KeySupport mode
  • Fixed CPU multiplier detection on pre-Nehalem Intel CPUs
  • Fixed incorrect handling of multiple processors and processor cache in SMBIOS
  • Matched default Apple boot picker cursor start position
  • Updated OpenShell devices command to support misaligned device names returned by some Apple firmware
  • Added (dmg) suffix to DMG boot options in OpenCanopy
  • Added identifiers for Rocket Lake and Tiger Lake CPUs
  • Added PickerAudioAssist ‘disk image’ indication
  • Fixed PickerAudioAssist indications played twice in rare cases
  • Improved OpenCanopy pointer acceleration
  • Added more precise control on AppleEvent protocol properties and features
  • Added dynamic keyboard protocol installation on CrScreenshotDxe
  • Support starting UEFI tools with argument support (e.g. ControlMsrE2) without arguments from picker
  • Fixed OpenCanopy font height calculation, may reject previously working fonts and mitigate memory corruption
  • Fixed incorrect identification of Xeon E5XXX/E5-XXXX and Xeon WXXXX/W-XXXX CPUs
  • Added RSDP, RSDT, and XSDT handling to NormalizeHeaders ACPI quirk


  • Fixed ocvalidate return code to be non-zero when issues are found
  • Added OEM values to PlatformInfo in Automatic mode
  • Improved CPU frequency calculation on Haswell and earlier
  • Fixed issues when applying certain patches
  • Added SSN (and HW_SSN) variable support
  • Added onscreen early logging in DEBUG builds for legacy firmware
  • Added workaround for firmware not specifying DeviceHandle at bootstrap
  • Added support for R/O page tables in SetupVirtualMap quirk
  • Added OEM preservation for certain Apple SMBIOS tables
  • Fixed switching to graphics mode when entering OpenCanopy
  • Fixed installing Apple FB Info protocol when no GOP exists
  • Fixed abort timeout sound in OpenCanopy on key press
  • Added GopPassThrough option to support GOP protocol over UGA
  • Fixed CPU speed rounding for certain Xeon and Core 2 CPUs
  • Removed KeyMergeThreshold as it never functioned anyway
  • Added acdtinfo utility to lookup certain products
  • Fixed FSBFrequency calculation with fractional multiplier
  • Fixed showing core count for some AMD CPUs
  • Added ResetTrafficClass to reset TCSEL to T0 on legacy HDA
  • Fixed default boot entry selection without timeout for builtin picker
  • Added ocpasswordgen utility to generate OpenCore password data
  • Added ActivateHpetSupport quirk to activate HPET support
  • Fixed opencore-version reporting the incorrect version in rare cases


  • Added keyboard and pointer entry scroll support in OpenCanopy
  • Added background image support in OpenCanopy
  • Fixed selector boot option choice in OpenCanopy
  • Relaxed selector dimensions for OpenCanopy
  • Added MaxBIOSVersion option to Generic
  • Fixed MLB verification feature in macrecovery
  • Replaced VBoxHfs driver with OpenHfsPlus
  • Added audio codec dumping to SysReport
  • Fixed compatibility with page protection for all binaries
  • Fixed crashes in OpenUsbKbDxe when handling unsupported devices
  • Removed HdaCodecDump application in favor of SysReport
  • Added SetApfsTrimTimeout to tune APFS trim command
  • Changed OpenCore.efi to application to improve FW compatibility
  • Added DisableSecurityPolicy UEFI quirk to workaround driver loading
  • Added support for ranged widget connections in AudioDxe
  • Fixed supplying non-RT SetVirtualAddressMap for non-macOS systems
  • Fixed using SystemUuid from DataHub in non-Automatic mode for SMBIOS
  • Dropped failsafe defaults from Generic to match non-Automatic mode
  • Replaced BootProtect with LauncherOption and LauncherPath
  • Added OpenPartitionDxe with Apple Partition Management scheme
  • Improved ocvalidate checks in Misc, NVRAM, and UEFI sections
  • Fixed multiple flaws in EFI image loading, APFS driver in particular
  • Fixed NVRAM system-id being accidentally stored in Little Endian format
  • Added UseRawUuidEncoding to choose SMBIOS UUID encoding style
  • Updated builtin firmware versions for SMBIOS and the rest


  • Fixed installing OpenDuet on protected volumes
  • Updated underlying EDK II package to edk2-stable202011
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed macrecovery server protocol compatibility
  • Added basic audio assistant support in OpenCanopy
  • Added compiled ACPI samples to the package
  • Fixed timer resolution restoration at boot time
  • Fixed memory capacity when using custom SMBIOS memory config
  • Removed no longer required DeduplicateBootOrder quirk
  • Fixed macserial crashes when processing invalid serials
  • Fixed macserial issues when processing 2021 year serials
  • Added advanced error checking in ocvalidate utility
  • Added SetupDelay to configure audio setup delay
  • Reworked LogoutHook.command to support older macOS
  • Implemented MP3 audio decoding for audio assistant support
  • Added support for PickerVariant for more theme variants
  • Added OC_ATTR_HIDE_THEMED_ICONS PickerAttribute for Time Machine
  • Fixed OpenUsbKb compatibility with certain keyboards


  • Added BlacklistAppleUpdate to fix macOS 11 broken update optout
  • Dropped HII services from OpenDuet improving size and performance
  • Fixed patching of injected kexts in mkext
  • Added support for launching from relative paths
  • Added direct path passing for tools via RealPath
  • Allowed launching tools and entries in text mode via TextMode
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed ACPI patches not applying if tables are in locked memory
  • Fixed EnableSafeModeSlide on macOS 11
  • Added AllowRelocationBlock quirk for older macOS and safe mode
  • Fixed CPU frequency calculation on AMD 19h family
  • Updated recovery_urls
  • Fixed DisableSingleUser quirk when Apple Secure Boot is enabled
  • Added BootstrapShort to workaround buggy Insyde firmwares
  • Changed Bootstrap(Short) to choose dynamic entry (requires NVRAM reset)
  • Avoided Boot prefix in RequestBootVarRouting to workaround AMI issues
  • Added bootloader patch support in Booter Patch section
  • Fixed startup hang on firmwares allowong reentrance for timer functions
  • Made pointer control optional for OpenCanopy via PickerAttributes
  • Added support for StartupMute variable in PlayChime
  • Added support for per-volume icons for APFS on Preboot
  • Removed HII dependency from OpenUsbKbDxe driver
  • Fixed undefined behavior in OpenDuet causing random crashes and hangs

WARN: Upgrading to 0.6.4 may require additional steps when BootProtect is set to Bootstrap. For more details please refer to this instruction.


  • Added support for xml comments in plist files
  • Updated underlying EDK II package to edk2-stable202008
  • Provide fallbacks for NULL memory SMBIOS strings
  • Fixed BOOTx64.efi and BOOTIA32.efi convention
  • Fixed SMBIOS handling with multiple memory arrays
  • Fixed memory array handle assignment on empty slots
  • Fixed CPUID patching on certain versions of macOS 10.4.10 and 10.4.11
  • Fixed incorrect core/thread counts on Pentium M processors
  • Added SSDT-UNC.dsl ACPI sample to resolve X99 issues, thx @RemB
  • Updated builtin firmware versions for SMBIOS and the rest
  • Increased slide allocation reserve to 200 MB for Big Sur beta 10
  • Fixed assert when trying to enable direct renderer on blit-only GOP
  • Added support for custom memory properties
  • Fixed intermittent 32-bit prelinking failures caused by improper Mach-O expansion
  • Fixed failures in cacheless injection dependency resolution
  • Fixed detection issues with older Atom CPUs
  • Fixed ScanPolicy NVMe handling on MacPro5,1
  • Fixed I/O issues on platforms incapable of reading over 1MB at once
  • Fixed plist-only kext injection in Big Sur
  • Add ForceResolution option for enabling non-default resolutions
  • Fixed Ps2MouseDxe not properly loading under OpenDuetPkg
  • Added workaround for read-only errors on some X299 boards
  • Added support for x86legacy Secure Boot model
  • Added missing Secure Boot NVRAM variables required by 11.0
  • Added setting of system-id NVRAM variable
  • Added ForceSecureBootScheme quirk for virtual machines
  • Fixed kernel and ACPI patches failing to replace last bytes of memory


  • Updated builtin firmware versions for SMBIOS and the rest
  • Added ProcessorType option to Generic allowing custom CPU names
  • Fixed UnblockFsConnect option not working with APFS JumpStart
  • Added IA32 binary variant to the release bundles
  • Fixed improper handling of cacheless kexts without an Info.plist
  • Fixed improper calculation of kext startup address for blocking
  • Added mkext 32-bit kext injection (10.4-10.6)
  • Added cacheless 32-bit kext injection (10.4-10.7)
  • Added 32-bit kernel/kext patching/blocking support
  • Fixed issues loading 10.7 EfiBoot
  • Added Type to ReservedMemory to fulfil hibernation hack needs
  • Added workaround to displaying Preboot instead of Macintosh HD
  • Added prelinkedkernel 32-bit kext injection (10.6-10.7)
  • Added SystemMemoryStatus to override memory replacement on some models
  • Added older Pentium CPU recognition in SMBIOS
  • Added ExtendBTFeatureFlags to properly set FeatureFlags for Bluetooth (which substitutes BT4LEContinuityFixup)
  • Added MinKernel/MaxKernel to CPUID emulation and DummyPowerManagement
  • Fixed -legacy not being added in KernelArch Auto mode
  • Fixed i386-user32 not forcing i386 on macOS 10.7 on X64 firmwares
  • Fixed i386-user32 being incorrectly enabled in macOS 10.4, 10.5, and 10.7
  • Disabled prelinked boot for macOS 10.4 and 10.5 in KernelCache Auto mode
  • Fixed macserial compatibility with iMac20,x serials and other models from 2020
  • Added LegacyCommpage quirk to improve pre-SSSE3 userspace compatibility
  • Fixed legacy SATA HDDs displaying as external drives in the picker


  • Improved recognition of early pressed hotkeys, thx @varahash
  • Made DMG loading support configurable via DmgLoading
  • Added iMac20,1 and iMac20,2 model codes
  • Fixed display name for older Xeon CPUs like Xeon E5450
  • Added Comet Lake-LP HDA device code
  • Fixed OS boot selection on SATA controllers with legacy OPROMs
  • Fixed RSDP ACPI table checksum recalculation
  • Added immutablekernel loading support for 10.13+
  • Fixed solving some symbols to zero in 11.0 kext inject
  • Reduced OpenCanopy size by restricting boot management access
  • Added BuiltinText variant for TextRenderer for older laptops
  • Fixed SyncRuntimePermissions creating invalid MAT table
  • Added EFI FAT image loading support (macOS 10.8 and earlier)
  • Added 64-bit cacheless kext injection and patching support (macOS 10.9 and earlier)
  • Added 64-bit mkext kext injection and patching support (macOS 10.6 and earlier)
  • Fixed XNU hook matching non-kernel files
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed patching of ACPI tables in low memory
  • Fixed macOS 11.0 DMG recovery loading without hotplug
  • Fixed XhciPortLimit quirk on 10.12.6 and possibly other versions
  • Fixed IncreasePciBarSize quirk on 10.11.5 and possibly other versions
  • Fixed LapicKernelPanic quirk on 10.8.5 and possibly other versions
  • Fixed hard-lock caused by EHCI SMI in OpenDuetPkg
  • Added preview UEFI Secure Boot compatibility
  • Added FuzzyMatch option to support fuzzy kernelcache matching on 10.6 and earlier
  • Added KernelArch option to specify architecture preference on older kernels
  • Added KernelCache option to specify kernel caching preference for older kernels
  • Added Force section to provide support for injecting drivers in older macOS
  • Changed kernel driver injection to happen prior to kernel driver patching
  • Added Arch filtering option to AddBlockForce, and Patch sections
  • Added DisableLinkeditJettison quirk to workaround 11.0b5 kernel panics


  • Fixed sound corruption with AudioDxe
  • Fixed icon choice for Apple FW update in OpenCanopy
  • Fixed APFS driver loading on Fusion Drive
  • Added Comet Lake HDA device code
  • Fixed audio stream position reporting on non-Intel platforms
  • Added Firmware mode to ResetSystem to reboot into preferences
  • Replaced BlacklistAppleUpdate with run-efi-updater NVRAM variable
  • Fixed reset value and detection in FadtEnableReset ACPI quirk
  • Fixed freezes during boot option expansion with PXE boot entries
  • Updated underlying EDK II package to edk2-stable202005
  • Added ProvideMaxSlide quirk to improve laptop stability, thx @zhen-zen
  • Fixed slide choice on platforms when 0 slide is unavailable, thx @zhen-zen
  • Fixed assertions caused by unaligned file path access in DEBUG builds
  • Renamed ConfigValidity utility to ocvalidate for consistency
  • Added GlobalConnect for APFS loading to workaround older firmware issues
  • Added 11.0 support for AvoidRuntimeDefrag Booter quirk
  • Fixed 11.0 lapic kernel quirk as of DP1
  • Improved boot selection scripts for macOS without NVRAM
  • Added UGA protocol compatibility in ProvideConsoleGop quirk
  • Added UgaPassThrough option to support UGA protocol over GOP
  • Added AppleFramebufferInfo protocol implementation and override
  • Fixed serial initialisation when file logging is disabled
  • Fixed FSBFrequency reporting on Meron and similar CPUs
  • Fixed incorrect volume icon dimension requirements in OpenCanopy
  • Added preview version of KernelCollection injection code
  • Fixed ACPI reset register detection in DxeIpl
  • Added MacBookPro16,4 model code
  • Updated builtin firmware versions for SMBIOS and the rest
  • Fixed OSXSAVE reporting when emulating CPUID on newer CPUs
  • Added SerialInit option to perform serial initialisation separately
  • Fixed OpenDuetPkg booting on Intel G33 with SATA controller in RAID mode
  • PlatformInfo Automatic for all models
  • Fixed 32-bit OpenDuetPkg booting on machines with over 4 GBs of RAM
  • Fixed delays with OpenDuetPkg booting with certain SATA controllers in IDE mode
  • Fixed display name for some high core count i9 CPUs like 7920X
  • Fixed SSDT-EC-USBX


  • Added full HiDPI support in OpenCanopy
  • Improved OpenCanopy font rendering by using CoreText
  • Fixed light and custom background font rendering
  • Added Boot#### options support in boot entry listing
  • Removed HideSelf by pattern recognising BOOTx64.efi
  • Added BlacklistAppleUpdate to avoid Apple FW updates
  • Fixed accidental tool and NVRAM reset booting by default
  • Fixed unrecognised select entries
  • Changed NVRAM reset not to erase BootProtect boot options
  • Improved boot performance when picker UI is disabled
  • Enforced the use of builtin picker when external fails
  • Fixed warnings for empty NVRAM variables (e.g. rtc-blacklist)
  • Added ApplePanic to store panic logs on ESP root
  • Fixed ReconnectOnResChange reconnecting even without res change
  • Fixed OpenCanopy showing internal icons for external drives
  • Fixed OpenCanopy launching Shell with text over it
  • Added partial hotkey support to OpenCanopy (e.g. Ctrl+Enter)
  • Added builtin text renderer compatibility with Shell page mode
  • Fixed FadtEnableReset with too small FACP tables and some laptops
  • Fixed CPU detection crash with QEMU 5.0 and KVM accelerator
  • Removed RequestBootVarFallback due to numerous bugs
  • Added DeduplicateBootOrder UEFI quirk
  • Removed DirectGopCacheMode due to being ineffective
  • Fixed assertions on log exhaustion causing boot failures
  • Fixed builtin text renderer failing to provide ConsoleControl
  • Fixed compatibility with blit-only GOP (e.g. OVMF Bochs)
  • Fixed ignoring # in DeviceProperty and NVRAM Delete
  • Renamed Block to Delete in ACPI,DeviceProperties, and NVRAM
  • Added MacBookPro16,2 and MacBookPro16,3 model codes
  • Added PCI device scanning policy support (e.g. VIRTIO)
  • Improved playback performance in AudioDxe
  • Updated builtin firmware versions for SMBIOS and the rest
  • Added improved CPU type detection for newer CPU types
  • Added ConfigValidity utility and improved config validation
  • Added serial port initialisation for serial debug logging
  • Disabled empty debug log file creation to avoid ESP cluttering
  • Added TscSyncTimeout quirk to workaround debug kernel assertions
  • Added first-class Windows support to bless model
  • Fixed LapicKernelPanic kernel quirk on 10.9
  • Added prebuilt version of CrScreenshotDxe driver
  • Fixed Hyper-V frequency detection compatibility
  • Added SysReport option for DEBUG builds to dump system info
  • Fixed crashes on some AMD firmwares when performing keyboard input


  • Fixed invalid CPU object reference in SSDT-PLUG
  • Fixed incorrect utilities and resources packaging
  • Fixed Custom UpdateSMBIOSMode modifying SMBIOSv3 table
  • Updated docs to cover separating SMBIOS via UpdateSMBIOSMode
  • Fixed rendering macOS installer icons in OpenCanopy
  • Added APFS support with Fusion Drive and enhanced security
  • Added AppleEvent mouse support in OpenCanopy
  • Fixed AppleEvent and OpenCanopy compatibility with OVMF TPL restrictions
  • Added mouse drivers to the package as OVMF needs one
  • Added memory region reservation support
  • Added RtcRw tool to manipulate RTC memory
  • Added PatchAppleRtcChecksum kernel quirk
  • Added AppleRtcRam protocol implementation
  • Renamed Protocols to ProtocolOverrides for clarity
  • Added ResetSystem tool to allow shutdown/reset actions in the menu
  • Added experimental BootProtect Security option
  • Fixed kext injection in 10.8 installer
  • Added timeout support to OpenCanopy user interface
  • Fixed handling 24-bit screen resolutions
  • Added Ps2KeyboardDxe driver for DuetPkg
  • Updated BootInstall DuetPkg version (now opensource)
  • Added partial HiDPI support in OpenCanopy
  • Update builtin firmware
  • Fixed invalid checksum checks when creating vault (thx @dakanji)


  • Added TimeMachine detection to picker
  • Added early preview version of OpenCanopy
  • Fixed FS discovery on NVMe with legacy drivers
  • Added DirectGopCacheMode option for FB cache policy
  • Added KeyFiltering option to workaround buggy KB drivers
  • Added tool and custom entry separation in audio assistant
  • Added OpenControl tool to configure full NVRAM access from Shell
  • Added boot.efi debug protocol support for 10.15.4+
  • Added boot.efi performance logging for 10.15.4+
  • Added ProtectUefiServices quirk to fix DevirtualiseMmio on Z390
  • Replaced BOOTCAMP Windows with Windows to match the original
  • Added bundled OpenShell originally available as OpenCoreShell
  • Rework readlabel utility into disklabel with encoding support
  • Renamed FwRuntimeServices driver to OpenRuntime
  • Renamed AppleUsbKbDxe driver to OpenUsbKbDxe
  • Update builtin firmware
  • Fixed PowerTimeoutKernelPanic on 10.15.4
  • Fixed 4K section alignment in OpenRuntime to fix Linux booting on SKL
  • Introduced SyncRuntimePermissions to fix multiple memory permission flaws
  • Introduced RebuildAppleMemoryMap to fix macOS booting on Dell 5490
  • Removed ShrinkMemoryMap in favour of more advanced RebuildAppleMemoryMap
  • Marked EnableWriteUnprotector as deprecated on modern systems
  • Introduced ProtectMemoryRegions to fix memory region handling
  • Removed ProtectCsmRegion in favour of ProtectMemoryRegions
  • Renamed PickerAttributes to ConsoleAttributes
  • Introduced PickerAttributes as a matter of UI configuration


  • Various improvements to builtin text renderer
  • Fixed locating DMG recovery in APTIO IV firmwares on FAT32
  • Fixed loading DMG recovery in APTIO IV firmwares on FAT32
  • Removed AvoidHighAlloc quirk due to removed I/O over 4GB
  • Moved ConsoleMode, Resolution options to Output section
  • Moved console-related UEFI quirks to Output section
  • Replaced ConsoleControl and BuiltinTextRenderer with TextRenderer
  • Removed ConsoleBehaviourOs and ConsoleBehaviourUi
  • Fixed providing ConsoleOutHandle GOP when running from Shell
  • Added PickerAttributes option to colour picker
  • Added ProtectSecureBoot option through FwRuntimeServices
  • Replaced RequireVault and RequireSignature with Vault
  • Added BootKicker tool to support launching Apple BootPicker
  • Added BootPicker support as an external UI in OC through PickerMode
  • Added DirectGopRendering option to use direct GOP output
  • Multiple memory corruption and performance fixes for PNG support
  • Fixed DefaultBackgroundColor variable handling
  • Added HideAuxiliary and Auxiliary options
  • Fixed picker timeout and log timestamps for VMware
  • Fixed NULL parent DeviceHandle for launched tools
  • Added bundled HiiDatabase driver for very old firmwares
  • Added SSE2 support in memory intrinsics for better performance
  • Improved ACPI PM timer CPU frequency calculation performance
  • Improved LapicKernelPanic compatibility with newer macOS versions
  • Fixed drivers starting with # not being skipped
  • Added audio support through AudioDxe with optional boot chime
  • Added VoiceOver accessability support in boot.efi for 10.13+
  • Added PickerAudioAssist option for audio assistance in picker
  • Added HdaCodecDump.efi tool in default package
  • Added legacy AudioDxe and Microsoft namespaces to Reset NVRAM
  • Merged OcSupportPkg with OpenCorePkg for easier bisection
  • Disabled warnings in release versions of NVMe and XHCI drivers


  • Fixed CPU bus ratio calculation for Nehalem and Westmere
  • Fixed CPU package calculation on MacPro5,1 and similar
  • Improved OpenCore rerun detection for new versions
  • Fixed loading picker on boot failure when it is hidden
  • Added PMC ACPI sample for 300-series chipsets
  • Improved driver connection performance on APTIO IV
  • Fixed boot option saving in LogoutHook.command
  • Added support for OEM information in ExposeSensitiveData
  • Improved SanitiseClearScreen to avoid mode switching
  • Replaced SupportsCsm with AdviseWindows enabling UEFI mode
  • Fixed issues with default boot path selection on some boards
  • Update builtin firmware versions
  • Fixed AdviseWindows not setting FirmwareFeatures in NVRAM
  • Added TakeoffDelay option for improved action hotkey support
  • Added Mac GOP support to ProvideConsoleGop quirk
  • Added experimental BuiltinTextRenderer boot option
  • Added DummyPowerManagement kernel quirk to disable CPU PM


  • Added Enter key handling in boot menu for quick proceed
  • Update builtin firmware versions
  • Bundled FwRuntimeServices driver with OpenCore
  • Allowed writing to non-volatile variables with disabled write
  • Fixed microcode reading on Intel CPUs
  • Fixed SMBIOS Type4 External Clock values
  • Improved Windows compatibility on some setups (acidanthera/bugtracker#614)
  • Added SupportsCsm and option in PlatformInfo/Generic
  • Added OSInfo protocol support
  • Added SignalAppleOS Booter quirk to enable IGPU on Macs in other OS
  • Added AppleSmcIoprotocol support (replaces VirtualSmc UEFI driver)
  • Added AuthRestart security property for VirtualSMC authenticated restart
  • Fixed input protocol initialisation on VMware fusion
  • Added arrow key handling in boot menu
  • FileVault 2-like key input is now the only supported input in boot menu
  • Fixed 5 second delay when exiting Shell to OpenCore Picker
  • Added default boot option update and AllowSetDefault Security option
  • Fixed CPU package detection on configurations with multiple CPUs
  • Bundled CleanNvram and VerifyMsrE2 tools for debugging
  • Added screen clearing after choosing boot entry in picker
  • Added WriteFlash NVRAM option to enable writing variables in Add
  • Added LegacyOverwrite NVRAM option to allow overwriting variables by nvram.plist
  • Added AppleXcpmForceBoost kernel quirk to maximise select Xeon performance
  • Bundled NvmExpressDxe and XhciDxe drivers for platforms that need them
  • Added IncreasePciBarSize kernel quirk for select platforms with PCI space issues

Please note that newly found issues may be fixed in the development version.


  • Update builtin firmware versions
  • Fixed interpreting letters in boot menu
  • Fixed timeout abortion with PollAppleHotKeys quirk
  • Fixed rare kext injection failure due to plist-only kext in prelinkedkernel
  • Fixed error reporting for dmg loading
  • Added various debugging improvements
  • Added new crypto stack resulting in vault key format changes
  • Added UnblockFsConnect UEFI quirk to fix missing filesystems on some laptops
  • Added RequestBootVarFallback UEFI quirk to circumvent firmware boot option issues
  • Added ThirdPartyDrives kernel quirk fixing SSD trim and 10.15 SATA hibernation (thx @lvs1974)
  • Removed ThirdPartyTrim kernel quirk in favour of ThirdPartyDrives
  • Added Intel Xeon E5 (Broadwell-EP) support (thx @crazyi)
  • Switched to edk2-stable201911, which is now the minimum supportd EDK II version

Please note that newly found issues may be fixed in the development version.


  • Fixed MinKernel and MaxKernel logic (thx @dhinakg, @reitermarkus)
  • Fixed ASSERT when booting non-Apple OSes without arguments from the DEBUG version
  • Added MmioWhitelist configuration option
  • Added PowerTimeoutKernelPanic kernel quirk
  • Fixed erratic cursor appearing in release builds
  • Moved ReconnectOnResChange to a user-configurable quirk to avoid freezes
  • Added OpenCore version to picker ui, configured by ExposeSensitiveData
  • Added hypervisor CPUID support to work with virtualization (thx @Leoyzen)

Please note that newly found issues may be fixed in the development version.


  • Added support of kernel resource kext injection
  • Added support for 0.25% clock slowdown on Xeon Scalable CPUs (thx @mrmiller)
  • Replaced MatchKernel with MinKernel and MaxKernel
  • Added Arguments to Tools and Entries sections
  • Fixed broken timer for 300 series Intel chipsets
  • Added Input section for mouse and keyboard aggregation

Please note that newly found issues may be fixed in the development version.


  • Added builtin firmware versions for new models 2019
  • Fixed LogoutHook leaving random directories in $HOME
  • Fixed FSBFrequency calculation on Xeon Scalable CPUs (thx @mrmiller)
  • Fixed ARTFrequency specifying on Intel server and atom models
  • Increased log size to 256 KB by default
  • Added ReplaceTabWithSpace quirk to improve Shell experience
  • Added ClearScreenOnModeSwitch quirk to avoid visual glitches
  • Added MISC_PWR_MGMT patch to AppleXcpmExtraMsrs quirk (thx @mrmiller)
  • Added DevirtualiseMmio quirk to Booter section
  • Added FileVault 2 user interface protocols formerly in AppleUiSupport
  • Improved kernel patch logging to include configuration comments
  • Added MSFT basic data and Linux root fs recognition to ScanPolicy
  • Fixed RT region protection restoration regression (thx Sniki)
  • Added OPT, CMD+R, CMD+OPT+P+R boot action hotkey support
  • Added PollAppleHotKeys to register boot.efi hotkeys in the picker
  • Added DisableSingleUser quirk to prohibit single user mode
  • Upgraded EDK II base package to edk2-stable201908
  • Prohibited argument changing by BootNext


本篇教學為 OC 0.7.6 版本,內容部分已不再繼續更新,當新用戶一開始構建黑果時,可以參考本教學所有的步驟!依序設定來完成引導文件!而這裡備註事項,將會以小幅度更新作為微型指南!

SETP 1:升級 OpenCore 0.7.7 版本,簡易指南請參可這裡!

SETP 2:升級 OpenCore 0.7.8 版本,簡易指南請參可這裡!

SETP 3:升級 OpenCore 0.7.9 版本,簡易指南請參可這裡!

SETP 4:升級 OpenCore 0.8.0 版本,簡易指南請參可這裡!

SETP 5:升級 OpenCore 0.8.1 版本,簡易指南請參可這裡!

SETP 6:升級 OpenCore 0.8.2 版本,簡易指南請參可這裡!

SETP 7:升級 OpenCore 0.8.3 版本,簡易指南請參可這裡!

SETP 8:升級 OpenCore 0.9.2 版本,簡易指南請參可這裡


本教學是針對我個人使用技嘉 Z390 AORUS PRO WIFI 主機板製作,同時也支援其他主機板。 會因版本隨時更新修改。
Coffee Lake 版本


ㄧ、安裝映像檔:隨取一隻USB碟,打開磁碟工具。從左邊的欄位找到要製作USB引導碟的『主體』。選擇『清除』,選擇格式:Mac OS 擴充格式(日誌式),架構為GUID分區圖配置表,名稱暫時為USB。


二、安裝macOS映像檔:請下載官方的macOS映像檔下來,打開終端機,key in 安裝macOS終端機參數。若B是想要製作其他系統的引導碟,可按下詳細說明。


sudo /Applications/Install\ macOS\ --volume /Volumes/USB


sudo /Applications/Install\ macOS\ --volume /Volumes/USB 

Big Sur

sudo /Applications/Install\ macOS\ Big\ --volume /Volumes/USB


sudo /Applications/Install\ macOS\ --volume /Volumes/USB

製作macOS 引導碟的終端機指令

如何製作可開機的 macOS 安裝程式

您可以使用外接磁碟或次要卷宗做為啟動磁碟,用來安裝 Mac 作業系統。

這些進階步驟主要適用於系統管理者及其他熟悉命令列的人員。您不需要可開機安裝程式也能升級 macOS重新安裝 macOS,但想要在多部電腦上安裝 macOS 時,有了它會很實用,因為不必每次都下載安裝程式。

下載 macOS

請在各版 macOS 的升級指示中尋找正確的下載連結:

macOS CatalinamacOS Mojave  macOS High Sierra
上述各 macOS 版本的安裝程式會以「安裝 macOS Catalina」、「安裝 macOS Mojave」或「安裝 macOS High Sierra」App 的形式,直接下載到您的「應用程式」檔案夾。如果安裝程式在下載後開啟,請將它結束,不要繼續安裝。

在「終端機」中使用 createinstallmedia 指令

  1. 插入要做為可開機安裝程式的 USB 隨身碟或其他卷宗。確保至少有 12 GB 可用儲存空間,並已格式化為 Mac OS 擴充格式
  2. 開啟「終端機」(位於「應用程式」檔案夾的「工具程式」檔案夾中)。
  3. 在「終端機」中輸入或貼上以下其中一個指令。這些指令假設安裝程式仍位於「應用程式」檔案夾,且所使用的 USB 隨身碟或其他卷宗名稱為 USB。

    BIG SUR Beta版

    sudo /Applications/Install macOS Big Sur --volume /Volumes/USB


    sudo /Applications/Install macOS --volume /Volumes/USB 


    sudo /Applications/Install macOS --volume /Volumes/USB 

    High Sierra*:

    sudo /Applications/Install macOS High --volume /Volumes/USB 

    El Capitan

    sudo /Applications/Install OS X El --volume /Volumes/USB --applicationpath /Applications/Install OS X El
  4. 輸入指令後按下 Return 鍵。
  5. 出現提示時,輸入您的管理者密碼,然後再按一次 Return 鍵。當您輸入密碼時,「終端機」不會顯示任何字元。
  6. 出現提示時,輸入 Y 確認您要清除卷宗,然後按下 Return 鍵。製作可開機安裝程式時,「終端機」會顯示進度。
  7. 當「終端機」告知已完成時,卷宗會與所下載的安裝程式名稱相同,如「安裝 macOS Catalina」。您現在可以結束「終端機」並退出卷宗。

* 如果 Mac 是執行 macOS Sierra 或之前版本,請加入 --applicationpath 引數,就像在 El Capitan 的指令中使用此引數的方式一樣。


製作可開機安裝程式之後,再加入CLOVER 或是OC引導文件,就可以安裝黑蘋果了


做到這裡,我們可以把它白果專用的引導碟。若是加入CLOVER 或 OpenCore 程序,就是黑果專用的引導碟。

製作USB 多功能引導碟

三、在教學EP-6教學影片中,我教給大家建議採用且親自製作『多功能引導安裝救援碟』的方式。就是把USB安裝碟再分割約1GB的容量,再自創一個『分區』。作法就是把USB碟在分割1GB或是2GB 不等的容量,再格式化該分區為 FAT-DOS 32 BIT的格式。

分割的磁區可以命名為OpenCore EFI,或是其他名稱都可以。


我們分割一個小磁區,目前還是macOS的格式,但是UEFI卻只認得該FAT-DOS 32BIT格式,所以我們要格式化為FAT-DOS 32 BIT,來模擬UEFI的架構。當你在開啟BIOS選單時,你會發現USB磁碟,會出現兩個UEFI開頭的磁區。這就是我們要的多引導安裝碟真正目的。由於OpenCore的整個EFI只小於5MB容量,再加上放置PE系統,來達到多引導功能的安裝救援碟。

格式化Fat 16格式



  • 快速啟動
  • VT-d(如果將DisableIoMapper設置為YES,則可以啟用)
  • CSM
  • Thunderbolt
  • Intel SGX
  • Intel Platform Trust
  • CFG鎖(MSR 0xE2寫保護)
    • 如果無法在BIOS中關閉(甚至找不到),請考慮對其進行修補。有關更多信息,請參見固定CFG鎖。
    • AMD CPU用戶無需擔心。


  • VT-x
  • 4G以上解碼
  • Hyper-Threading
  • Execute Disable Bit
  • EHCI/XHCI Hand-off
  • 操作系統類型:Windows 8.1 / 10 UEFI模式
  • 舊版RTC設備(與Z370 +相關)


要配置 OpenCore 的文件夾結構,您需要從 OpenCorePkg 抓取那些文件,並構建您的EFI使其類似於以下內容:

OpenCore 檔案結構

ㄧ、收集 OPENCORE 文件

  • 請打開下載好的OC引導文件,把Doc文件夾下面的 SampleFull.plist 改名為 config.plist,並把此文件移動到EFI目錄裡面。
  • 打開EFI ㄧ> Kexts 資料夾,把主機板相關硬體的kexts 先放進去。
  • 根據作者指示,放入KEXT有一定的順序排列。
OC-ACPI、Drivers、Kexts、Tools 已經內建許多工具,我們只保留自己所需要的工具即可。




EFI-OC-ACPI 修補程式的製作方法

根據CPU架構的不同,在ACPI所需要的SSDT.aml 修正檔也會不同,請依以下的說明來編譯所需要SSDT.efi。官方內建的SSDT.dsl ,為該版本所需要的文件。你可以在Docsㄧ>AcpiSamples 資料夾當中,找到以下的修正檔。

SSDT 修正檔

這裡所列舉的SSDT-xxx.dsl ,都是要透過 MacASL 工具來編譯。以下以SSDT-PMC.dsl為例。直接雙擊該SSDT-PMC.dsl,如圖示。這裡的程式碼無需動它,直接另存檔案。

SSDT-PMC.dsl 編譯

當選擇另存檔案時,文件格式要改為ACPI Macline Language Binary ,檔名為SSD-PMMC.aml,後綴名為aml 。編譯好的SSDT 修正檔,就大功告成了。接下來就直接放入在ACPI的資料夾內。

Firmware Drivers 我最常用的有:

  • CrScreenshotDxe.efi 用於在UEFI中拍攝屏幕截圖。
  • OpenCanopy.efi 這是OpenCore GUI 所需要文件,若只想要文字目錄者去刪除。
  • OpenRuntime.efi 記憶體分配驅動。
  • HfsPlus.efi 讓系統認出HFS格式的硬碟文件(自行加入)

EFI-OC-Drivers 詳細說明

Firmware Drivers

你可以把從AppleSupportPkg必要的韌體驅動程序(.efi)插入驅動程序文件夾和kext文件/ ACPI到各自的文件夾中。請注意,OpenCore不支持Clover的UEFI驅動程序!(EmuVariableUEFI,AptioMemoryFix,OsxAptioFixDrv等)。請參閱Clover 韌體驅動程序轉換,以獲取有關支持的驅動程序以及已合併到OpenCore中的驅動程序的更多信息。

  • 這些是OpenCore使用的驅動程序,對於大多數係統來說,只需要3個.efi驅動程序即可啟動並運行:OpenCore可以使用的驅動程序包括。這裡請注意,根據作者指示,放入efi 有一定的順序排列,不可以排錯,否則OC無法運行。
  • ApfsDriverLoader.efi  APFS文件系統引導驅動程序在UEFI固件的可啟動APFS容器中添加了對嵌入式APFS驅動程序的支持。
  • OpenRuntime.efi 協議通過支持只讀,只寫NVRAM變量,提升了的OpenCore和黎路的安全性。有些怪癖如RequestBootVarRouting。此依賴程序驅動
    由於運行時驅動餓性質(與目標操作系統並行運行),因此它不能在的OpenCore本身實現,而是與OpenCore 捆綁在一起。
  • VBoxHfs.efi HFS格式支持。
  • HFSPlus.efi HFS格式支持。

For legacy users::

  • AppleUsbKbDxe.efi 用於在拾取的OpenCore 運行DuetPkg遺留系統不建議甚至是有害的UEFI(Ivy Bridge的更新版本)
  • NvmExpressDxe.efi 當韌體中未內置NVMe驅動程序時,用於Haswell及更早版本,如果您不使用NVMe驅動器,則不需要
  • XhciDxe.efi 當固件中未內置XHCI驅動程序時,用於Sandy Bridge及更早版本,如果不使用USB 3.0擴展卡則不需要。
  • HfsPlusLegacy.efi HfsPlus的舊版變體,用於缺少RDRAND指令支持的系統。通常在SandyBridge和更舊的版本上看到
  • MemoryAllocation.efi 這個程序可以幫助z390系列,空出第一個512MB內存。當你在開啟內顯時,不會因為BIOS分配內存不一時,既使使用了slide 參數,也會卡在++++++ 或是slide 這裏,無法進入系統。


  1. AudioDxe.efi 與macOS中的音頻支持無關
  2. CrScreenshotDxe.efi 用於在UEFI中拍攝屏幕截圖。
  3. HiiDatabase.efi 用於修復GUI支持,例如Sandy Bridge和更早版本上的Shell.efi
  4. NvmExpressDxe.efi 當BIIOS未內建NVMe驅動程序時,用於Haswell及更早版本
  5. OpenCanopy.efi OpenCore的可選GUI 介面
  6. OpenRuntime.efi 記憶體分配驅動。
  7. OpenUsbKbDxe.efi 用於運行DuetPkg的舊系統上的 OpenCore選擇器,不推薦使用,在Ivy Bridge和更高版本上甚至有害
  8. Ps2KeyboardDxe.efi PS2鍵盤驅動
  9. Ps2MouseDxe.efi PS2滑鼠驅動
  10. UsbMouseDxe.efi USB滑鼠驅動
  11. XhciDxe.efi BIOS 未內建 XHCI 驅動程序時,用於Sandy Bridge和更早的版本。

有關兼容驅動程序的完整列表,請參見OpenCorePkg Docs中的11.2屬性。這些文件將放在EFI的Drivers文件夾中。


  • VirtualSMC 模擬在實際macs上找到的SMC晶片,如果沒有此macOS,它將無法啟動。
  • Lilu 一個修補程序,用於修補許多過程,這些過程對於AppleALC和WhateverGreen是必需的,對於VirtualSMC是推薦的。
  • SMCProcessor.kext –用於監視CPU溫度,不適用於基於AMD CPU的系統
  • SMCSuperIO.kext 用於監視風扇速度,不適用於基於AMD CPU的系統
  • WhateverGreen 顯示卡驅動
  • AppleALC 音效卡驅動
  • IntelMausi.kext  Intel 網路卡驅動
  • USBInjectAll  USB 驅動。



蘋果電腦所用的硬體驅動,除了自家產品所用晶片驅動,都會放在系統裡以外,包括蘋果認定第三方廠商支援蘋果系統的以外,任何PC零組件都不會mac 驅動程式。然而蘋果所有使用硬體驅動副檔名為kext,故在黑蘋果所使用的仿驅動,都會以kext 作為副檔名。

OC 內建的 Kexts 資料夾,你可以當作硬體驅動的系統核心,把這些文件將進入kext文件文件夾中EFI載入引導系統。你可以在Kext Repo中預編譯以下列出的所有kext 。每次有新提交時,都會編譯此處的Kext。

Must haves:

  • VirtualSMC 模擬在實際macs上找到的SMC芯片,如果沒有此macOS,它將無法啟動。
  • Lilu 一個修補程序,用於修補許多過程,這些過程對於AppleALC和WhateverGreen是必需的,對於VirtualSMC是推薦的。


  • SMCProcessor.kext –用於監視CPU溫度,不適用於基於AMD CPU的系統
  • SMCSuperIO.kext 用於監視風扇速度,不適用於基於AMD CPU的系統
  • SMCLightSensor.kext 用於筆記本電腦上的環境光傳感器,台式機可以忽略,如果您沒有環境光傳感器,請勿使用,否則可能導致問題。
  • SMCBatteryManager.kext 用於測量筆記本電腦上的電池讀數,台式機可以忽略。除非已為電池充好電,否則請勿使用,否則可能導致問題。


  • WhateverGreen 用於圖形補丁DRM,boardID,幀緩衝區修復等,所有GPU都將從此kext中受益。


  • AppleALC 用於AppleHDA修補,用於為您提供板載音頻。AMD 15h / 16h可能與此有關,而Ryzen / Threadripper系統很少支持麥克風。



  • USBInjectAll 用於注入Intel USB控制器的H370,B360,H310和X79 / X99 / X299系統也可能需要不受XHCI支持的系統。USBInjectAll在基於AMD CPU的系統上不起作用。

WiFi and Bluetooth:BloggerAds 部落格行銷BloggerAds 部落格行銷

  • AirportBrcmFixup 用於修補非Apple Broadcom卡,不適用於Intel,Killer,Realtek等。
  • BrcmPatchRAM 用於在Broadcom藍牙芯片組上上傳固件,這是所有非Apple Airport卡所必需的。與BrcmFirmwareData.kext配對。適用於10.14+的BrcmPatchRAM3(必須與BrcmBluetoothInjector配對)。適用於10.11-10.14的BrcmPatchRAM2。適用於10.10或更舊版本的BrcmPatchRAM。

順序應為:Kernel -> Add
2.Brcm 韌體數據


  • AppleMCEReporterDisabler 從Catalina開始有用以禁用AppleMCEReporter kext,這將導致AMD CPU和雙插槽系統上的內核崩潰。受影響的SMBIOS:MacPro6,1、MacPro7,1、iMacPro1,1
  • VoodooTSCSync 在沒有此macOS的情況下,需要在某些英特爾的HEDT和服務器主板上同步TSC,這可能會非常慢甚至無法啟動。Skylake-X應該改用TSCAdjustReset
  • TSCAdjustReset 在Skylake-X上,包括華碩和EVGA在內的許多固件都不會將TSC寫入所有內核。因此,我們需要在冷啟動和喚醒時重置TSC。編譯版本可以在這裡找到:TSCAdjustReset.kext。請注意,您必須打開kext(finder中的ShowPackageContents ),並將Info.plist->更改為您從中開始的CPU線程數(i9 7980xe 18核將是因為它共有36個線程)Contents -> Info.plistIOKitPersonalities -> IOPropertyMatch -> IOCPUNumber035 
  • NVMeFix 用於在非Apple NVMe上修復電源管理和初始化,需要macOS 10.14或更高版本

備註:備註:從2019 年9 月以後,Acidanthera 開發的內核驅動(Lilu, AppleALC 等等) 不再會在Clover 上做兼容性測試。

備註:從2019 年9 月以後,Acidanthera 開發的內核驅動(Lilu, AppleALC 等等) 不再會在Clover 上做兼容性測試。

Tools 選擇所需要韌體驅動文件:

  • CFGLock.efi 解鎖 CFG 工具(自行加入)
  • CleanNvram.efi  清除NVRAM的工具。
  • OpenControl.efi 開啟主控臺
  • OpenShell.efi 調適用工具
  • ResetSystem.efi 重啟系統

EFI-OC-Tools 詳細說明
  1. BootKicker.efi:用於在正版Mac上修復Apple Picker。
  2. ChipTune.efi
  3. CleanNvram.efi  清除NVRAM的工具。
  4. GopStop.efi 用於測試的GOP
  5. HdaCodecDump.efi  用於查找AudioDxe設置的信息,本指南未涵蓋,因此不需要
  6. KeyTester.efi
  7. MmapDump.efi
  8. OpenControl.efi 開啟主控臺
  9. OpenShell.efi
  10. ResetSystem.efi 重啟系統
  11. RtcRw.efi
  12. VerifyMsrE2.efi 用於驗證MSR鎖,對於安裝,我們可以忽略

新增主題的文件:OC引導主題設定方法。例如主題NDK 相關制定和製作方法,請到這裡。(這裡先不寫)

我把下載、編譯好的文件,放入該處的資料夾中,整個 EFI 文件夾大致如下:



原 config.plist 文件是沒有做過任何編寫的過程。官方雖然推薦使用蘋果官方XCode工具軟體來編寫文件,但因為該軟體檔案過於巨大,許多小夥伴不會使用該工具,所以本教學採用這個 OpenCore Configuration 軟體來直接『編寫』在config.plist ,該圖像式GUI 介面有具有親和力,小夥伴更容易上手。同時也是一種簡單快速整合的方法。但是要注意OC版本對應其該工具,就不會容易出錯。以下的教學,以 OpenCore Configuration 作為示範。如果你是喜歡使用 ProperTree  工具編輯的用戶者,請參考這裡。

使用 ProperTree 工具軟體的方法

請打開 ProperTree  資料夾,雙擊 ProperTree.command,終端機自動執行程序。出現以下的視窗。

這張圖片的 alt 屬性值為空,它的檔案名稱為 Screenshot-2020-05-04-at-7.57.54-PM.png
這張圖片的 alt 屬性值為空,它的檔案名稱為 Screenshot-2020-05-04-at-7.58.01-PM-1024x587.png

再從左上面命令列的Flieㄧ>Open 打開你的OC資料夾的引導文件。EFI/OC/config.plist。

這張圖片的 alt 屬性值為空,它的檔案名稱為 Screenshot-2020-05-04-at-7.59.49-PM.png

打開之後的config.plist ,是官方原廠設定值。

這張圖片的 alt 屬性值為空,它的檔案名稱為 截圖-2020-05-09-上午7.47.39-1018x1024.png

這個時候,我們要把OC資料夾的ACPI、Drivers、Kexts、Tools 裡面的文件,全數編寫在config.plist。那麼我們使用按鍵盤上的此按鈕組合。command+ SHIFT + R,並選擇您的OC文件夾。

這張圖片的 alt 屬性值為空,它的檔案名稱為 截圖-2020-05-09-上午7.58.53-1024x898.png


這張圖片的 alt 屬性值為空,它的檔案名稱為 截圖-2020-05-09-上午9.26.58-1024x1018.png

做到這裡,記得要儲存,不要做任何的設定。若是使用windows 使用者,可以繼續使用該工具,根據我以下的教程來編寫cconfig.plist。使用macOS 使用者,請改用XCode 10.3 軟體。


做到這裡,記得要儲存,不要做任何的設定。若是使用windows 使用者,可以繼續使用該工具,根據我以下的教程來編寫cconfig.plist。使用macOS 使用者,請改用XCode 10.3 軟體。


如果你目前使用的Clover 引導的話,可以事先下載有關於目前主機所有的DTST和SSDT相關訊息,最間單的方法,使用這個軟體讓它跑完整個程序,所有的文件包括CLOVER、kext、DTST、SSDT等相關文件,結合成一個壓縮檔,請務必要保留該檔案備用,我們會在OC優化課程當中會用到。

二、Config.plist 引導文件修改

這個章節我會把 config 文件 的由上而下來說明。內容可能會寫的因翻譯的不同結果會有所差異,敬請見諒。這是為了為了讓『小白』能夠明白各個選項的用途,而寫的引導教程。OpenCore 官方強烈建議使用 Apple XCode 軟體來編輯這個 Config.plist,其他的任何編輯軟體未經官方認可,包括 Plistedit pro 軟體,即有可能會傷害 config.plist 文件的本體。

首先讓我們開啟剛剛編寫好的config.plist 文件,並由 Xcode 軟體來進行編寫。如下圖。



  • 這只是一個示例。不要嘗試加載它。
  • 在啟動之前,請確保您了解每個字段。
  • 在大多數情況下,建議使用Sample.plist。
  • 僅在特殊情況下使用SampleCustom.plist。


  • ACPI:用於加載,阻止和修補ACPI。
  • DeviceProperties:在此處設置PCI設備補丁,例如Intel Framebuffer補丁。
  • Kermel:我們在哪裡告訴OpenCore要加載哪些kext,要加載的順序以及要阻止的kext。
  • Mise:OpenCore引導加載程序本身的設置。
  • NVRAM:在這裡設置引導標誌和SIP之類的NVRAM屬性。
  • Platforminfo:這是我們設置您的SMBIOS的地方。
  • UEFI:告訴OpenCore加載哪些驅動程序以及加載順序。




ACPI 選項包括了四個部分:Add, Block, Patch, Quirks。這是為系統添加SSDT的地方,這些對於啟動macOS非常重要,並且具有許多用途,假設你有修改的SSDT或者DSDT文件能力,請先將文件放入EFI/OC/ACPI下。

對於我們來說,我們需要幾個SSDT 修正檔,將 PC 的環境,進而修護模擬成macOS 的環境。

  • SSDT-PLUG:允許在Haswell及更高版本上進行本機CPU電源管理,有關更多詳細信息,請參閱《ACPI入門指南》
  • SSDT-EC-USBX:固定嵌入式控制器和USB電源,要進行設置,您需要PNP0C09在DSDT中找出設備的名稱EC0,即H_ECPGECECDV
  • SSDT-AWAC:這是300系列RTC 插件,對於大多數B360,B365,H310,H370,Z390和某些Z370主板都是必需的,它們會阻止系統引導macOS。如果AWAC SSDT由於遺漏了傳統RTC時鐘而與AWAC SSDT不兼容,則可以選擇SSDT-RTC0 來檢查您是否需要它以及使用哪個時鐘,請參閱“ ACPI入門”頁面。
  • SSDT-PMC:因此,真正的300系列主板(非Z370)不會在ACPI中將FW芯片聲明為MMIO,因此XNU會忽略UEFI內存映射所聲明的MMIO區域。該SSDT帶回了NVRAM支持。有關更多詳細信息,請參見《ACPI入門指南》

在這裡,您將為系統添加SSDT修補程序,這些修補程序對筆記本電腦和OEM台式機最有用,但對於 USBMap禁用不受支持的GPU等也很常見。

我們可以使用 CorpNewt 的 SSDTTime 來設置正確SSDT 修正檔。其餘的SSDT可以使用 MaciASL 進行編譯,編譯後的SSDT具有.aml附檔名(已彙編),並將進入EFI / OC / ACPI文件夾。您可以通過運行File-> SaveAs-> ACPI Machine Language 使用MaciASL進行編譯。


對應Clover-ACPI-Drop Tables,除非你明白確切意義,暫時不填寫。


這裡我們需要填寫一下熱補丁。取得熱補丁的方法,可以是對應Clover-ACPI-補丁用來做熱補丁,你也可以用Hackintool 工具軟體,製作OC 引導文件的臨時config.plist。使用XCode 程式將熱補丁拷貝過去。10.15中,把EC控制器 (EC0) 改名為 EC 來確保能進入Cataline 作業系統。假設你還不知道你的控制器叫什麼名字,請將下面熱補丁都填上:

Comment:EC0 to EC


Comment:Fix AsRock Z390 BIOS DSDT Device(RTC) bug
Find:A00A9353 54415301
Replace:A00A910A FF0BFFFF

注意:某些主機板的 EC 控制器名字可能會叫 H_EC 等,請自行提取 DSDT並蒐索PNP0C09,來獲取EC控制器的名字。


該項目共有有五項,選擇Yes or No ,大致解釋如下:

Quirks Value 解釋
FadtEnableReset NO 主要用於老舊主板的開關機功能,如果你關機變重啟,可以勾選,一般情況下不勾選
NormalizeHeaders NO 清理ACPI標頭字段,僅與macOS High Sierra 10.13相關(Z390選Yes)
RebaseRegions NO 嘗試試探性地重定位ACPI內存區域,除非使用了自定義DSDT,否則不需要。
ResetHwSig NO 休眠相關項:在重新啟動後,無法維持硬體簽名,並導致從休眠中喚醒的問題的硬體設備。(桌機不需要設定)
ResetLogoStatus NO  重置日誌,一般不勾选
SyncTablelds NO 將表標識符與 SLIC 表同步。 這可以解決修補表與 SLIC 表不兼容的問題,從而導致舊版本的許可問題




2-1 MmioWhitelist


2-2 Patch




Boorer 0.7.2

  1. AllowRelocationBlock:No
  2. AvoidRuntimeDefrag:YES
  3. DevirtualiseMmio:Yes
    減少被盜的內存佔用空間,擴展slide=N值的選項,對於解決Z390上的內存分配問題非常有幫助。需要ProtectUefiServices以及對IceLake和 Z390 Coffeelake 搭配使用。如何找出 slide值(請參考這裡)。使用Z490主板者,因支援 NVRAM 之緣故,故毋須勾選此項。
  4. DisableSingleUser:No
  5. DisableVariableWrite:Yes
    這是一個安全選項,允許在macOS中限制NVRAM訪問。這種Quick的要求OC_FIRMWARE_RUNTIME 實現的協議 OpenRuntime.efi,對一些非原生NVRAM主板需要模擬nvram.plist,進而寫入variable值。因此我們要禁止此項來防止其他程序對nvram進行寫入。
    注意:如果你的主機板若是支持原生nvram ,請選擇NO!已加入SSDT-PMC.aml者請選擇No
  6. DiscardHibernateMap:No
  7. EnableSafeModeSlide:Yes
    此Quick的必要性取決於安全模式的可用性。如果啟動到安全模式失敗,則可以嘗試啟用此選項。此選項與在啟動到安全模式時遇到問題的用戶有關(例如,通過按住shift或使用-x boot參數)。默認情況下,安全模式強制滑動0,就好像系統是使用slide = 0 引導參數啟動的。此 Quick 嘗試修補boot.efi 以解除該限制,並使用其他值(從1到255)。需搭配ProvideCustomSlide一起啟用此Quick。像z390這樣本來也不用分佈式註入內存方式的(KASLR),我就選擇YES
  8. EnableWriteUnprotector:
    此選項通過在執行期間從CR0寄存器中刪除寫保護(WP)位來繞過UEFI運行時服務的代碼頁中的RˆX權限。這個 Quick 需要OC_FIRMWARE_RUNTIME在中實現的協議 FwRuntimeServices.efi。所以 nvram 能正常寫入而不受到UEFI內的一些服務的影響,任何主機板必須要選擇 YES
  9. ForceExitBootServices:
    確保ExitBootServices調用即使MemoryMap發生了更改也成功,除非有必要,否則請勿使用) 正常情況下選 NO
  10. ProtectMemoryRegions:
  11. ProtectSecureBoot:保護 UEFI 安全引導變量寫入參數時不被干擾而引起衝突。選擇Yes
  12. ProtectUefiServices
    這是保護UEFI Service 不被韌體給覆蓋的功能。包括硬體和虛擬機(例如VMware)在內的某些現代韌體可能會在驅動程序加載和相關操作期間更新指向UEFI Service 。這會直接破壞了影響記憶體管理的其他 Quirks,例如 DevirtualiseMmioProtectCsmRegion ShrinkMemoryMap,並且還可能破壞其他 Quirks,具體取決於這些 Quirks。

    當使用Z390主板的用戶請選擇 Yes ,在 boot-args 的參數 slide=x and UEFI /Drivers/MemoryAllocation.efi 二者刪除,選擇No時,二者得保留。需與DevirtualiseMmio 搭配使用。

  13. ProvideCustomSlide:Yes
    當在記憶體不足時,提供自定義的KASLR slide,此選項強制 macOS 在可用的當中使用偽隨機值。這也確保了slide=出於安全原因,永遠不會將參數傳遞給操作系統。我選擇 Yes
    Only N/255 slide values are usable!
  14. ProvideMaxSlide:0
  15. RebuildAppleMemoryMap:No
  16. SetupVirtualMap:Yes
    該Quick的必要性由早期啟動故障確定,通過執行分配的虛擬記憶體到物理記憶體的早期啟動身份映射來解決此問題。因此,我們通過虛擬記憶體來建立連續性記憶體來提供OC使用,並同時映射到分散的物理記憶體當中。所以這個選項我們選擇 YES。若是開啟此項無法開機時,嘗試開啟RebuildAppleMemoryMap,兩者選擇其一。
  17. SignalAppleOS(新增):No
    讓電腦以為每次開機都是macOS,適用於部分 MacBook Pro 不允許 iGPU 於 Windows 使用。
  18. SyncRuntimePermissions:Yes




3-1 ADD:設置設備屬性

PciRoot(0x0)/Pci(0x1b,0x0) -> Layout-id

  • 應用AppleALC音頻注入,您需要對主板具有的編解碼器進行自己的研究,並將其與AppleALC的佈局相匹配。AppleALC支持的編解碼器
  • 對於我們來說,我們將使用boot-arg alcid=xxx來完成此操作。alcid將覆蓋存在的所有其他佈局ID
  • 有趣的事實:字節順序被換的原因是由於字節序,特別是小Endians現代的CPU使用排序字節。你知道的越多!

我們可以透過 Hackintool 工具來尋找在Z390 音效卡的位置,。

PciRoot(0x0)/Pci(0x1f,0x3) 就是音效卡的位置。然後在注入音效ID 07000000即可。


PciRoot(0x0)/Pci(0x2,0x0) 內顯設定




  • 0x3E9B0007 -使用Desktop iGPU驅動顯示器時使用
    • 07009B3E 十六進制交換時
  • 0x3E920003 -當Desktop iGPU僅用於計算任務且不驅動顯示器時使用
    • 0300923E 十六進制交換時

值得注意的是,對於10.12-> 10.13.5,您需要在Kaby Lake指南中將iGPU偽造為相同的值,因為這是在原生Coffee Lake iGPU出現之前。10.13.6本地支持Coffee Lake


對於在B360,B365,H310,H370,Z390上顯示詳細信息後出現黑屏問題的用戶,請參閱BusID iGPU修補頁面

AAPL,ig-platform-id 數據 07009B3E
framebuffer-patch-enable 數據 01000000
framebuffer-stolenmem 數據 00003001

(這是不帶dGPU且沒有iGPU內存的BIOS選項的桌機 UHD 630的範例)




Kernel edit

4-1ADD:在這裡指定要加載的 kext,原來的排序非常重要,在編寫config 文件時,請確保 Lilu.kext 始終是第一個!Lilu之後依序為 VirtualSMC、AppleALC、WhateverGreen 等。提醒您,ProperTree用戶可以運行Cmd / Ctrl + Shift + R以正確的順序添加其所有kext,而無需手動鍵入每個kext。但排序可能會弄亂。

  • Comment
    • Name of the kext
    • ex: Lilu.kext
  • 已啟用
    • Self-explanatory,啟用或禁用kext
  • ExecutablePath
    • 實際可執行文件的路徑隱藏在kext中,您可以通過右鍵單擊並選擇kext的路徑Show Package Contents。通常,它們將是文件夾,Contents/MacOS/Kext但有些Plugin文件夾中隱藏了kext 。請注意,只有plist kexts不需要填寫。
    • 例如: Contents/MacOS/Lilu
  • PlistPath
    • info.plist隱藏在kext中的路徑
    • ex: Contents/Info.plist

4-2 BLOCK:禁用一些驅動。默認即可。

4.3 Emulate:欺騙不受支持的CPU(如奔騰和賽揚)時需要

  • Cpuid1Mask:將此留空
  • Cpuid1Data:將此留空

此屬性滿足兩個需求: •啟用對不受支持的CPU型號的支持。為不受支持的CPU變體啟用XCPM支持。 通常,只需要注意EAX的值,因為它代表完整的CPUID。其餘字節將保留為零。字節順序為Little Endian,因此,例如,A9 06 03 00代表CPUID 0x0306A9 (Ivy Bridge)。
Cpuid1Data:C3 06 03 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask::FF FF FF FF 00 00 00 00 00 00 00 00 00 00
•Broadwell-E (0x0406F1)to Broadwell(0x0306D4):
Cpuid1Data:D4 06 03 00 00 00 00 00 00 00 00 00 00 00
Cpuid1Mask::FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00。

Cpuid1Mask 類型:plist數據,16字節
說明:Cpuid1Data中有效位的位掩碼。 當每個Cpuid1Mask位設置為0時,將使用原始CPU位,否則,設置位採用Cpuid1Data的值。

4-4 Patch:範例裡面的4個一般情況下不用,2個RTC的補丁可以用於華碩的主板(二選一),但需要測試。主要解決華碩主板重啟BIOS重置,需要按F1跳過的問題。

4-5 Quirks:與內核,設置對我們來說,我們將實現DisableIOMapper, 除了AppleCpuPmCfgLockAppleXcpmCfgLock先解鎖CFG以外,這裏只要勾選DisableIoMapper、PanicNoKextDumpPowerTimeoutKernelPanic、XhciPortLimit。其他的應保留為默認值。


以下為Quires 簡易說明

  1. AppleCpuPmCfgLock:是
    • 僅當無法在BIOS中禁用CFG-Lock時才需要,如果你BIOS裡面CFG/MSR已經关闭,則不勾选。反之選。如何檢查CFG是否關閉?利用Hackintool-工具-點擊Intel標誌-從appleintellnfo獲取,查找CFG Lock,如果顯示0(MSR not lockde)則是啟用,如果顯示1(MSR locked)則是關閉。BIOS裡面沒有CFG/MSR相關選項的,如何CFG Lock 啟用的方法請看這裡。
  2. AppleXcpmCfgLock:是
    • 僅當無法在BIOS中禁用CFG-Lock時才需要,Clover對應的對像是KernelPM。請確認您可以禁用CFG-Lock,大多數係統無法使用它啟動,因此需要使用此Quirks
  3. AppleXcpmExtraMsrs:否
    • 主要是在無原生電源管理的CPU上使用,一般是Haswell-EBroadwell-ESkylake-X這三種CPU,必須勾选其他CPU不用勾選。
  4. AppleXcpmForceBoost:否
    • 此補丁將0xFF00寫入到MSR_IA32_PERF_CONTROL (0x199),一般CPU都不勾選。
  5. CustomSMBIOSGuid:否
    • 對UpdateSMBIOSMode自定義模式執行GUID修補。通常與戴爾筆記本電腦有關
  6. DisableIoMapper:是
    • 禁用VT-D,如果BIOS有相關設定就關閉它,若無在Boot-args加入dart=0加入此參數。SIP可以留在Catalina中,因此是更好的替代選擇。
  7. DisableRtcChecksum:這個選項讓Lilu。在沒有keepsyms=1引導參數的情況下,kext和其他一些可能在macOS Big Sur中發揮最佳性能。一般不勾選
  8. DisableRtcChecksum:一般 在AppleRTC中禁用校驗和寫入(0x58-0x59)。
  9. ExtendBTFeatureFlags:否。
  10. ExternalDiskIcons:否
  11. ForceSecureBootScheme:
  12. IncreasePciBarSize:否
    將IOPCIFamily中的32位PCI磁條大小從1 GB增加到4 GB,在BIOS中啟用Above4GDecoding是一種更加干淨和安全的方法。某些X99板可能需要這樣做,如果需要,通常會在IOPCIFamily上遇到內核恐慌。請注意,在Mojave和更高版本上不需要
  13. LapicKernelPanic:否
    禁用HP系統通常需要的AP核心lapic中斷的內核恐慌。三葉草等效為Kernel LAPIC
  14. LegacyCommpage:否
  15. PanicNoKextDump:是
  16. PowerTimeoutKernelPanic:是
  17. ProvideCurrentCpuInfo:否。
    向內核提供當前CPU信息。一般 這個quirk目前為內核提供了正確的TSC和FSB值,並且禁用了CPU拓撲驗證。注意:這些修補程序當前以Microsoft Hyper-V為目標,可能需要擴展以用於其他目不勾選
  18. ThirdPartyDrives:否
  19. XhciPortLimit:是
    這實際上是15端口限制補丁程序,請不要依賴它,因為它不是固定USB的保證解決方案。請盡可能創建一個USB3.0端口編譯。原因是UsbInjectAll 重新實現了內置的macOS功能,而沒有適當的當前調整。僅在一個僅plist的kext中描述您的端口會更清潔,這不會浪費運行時內存,

4-6 Scheme



Mise 編譯

5-1 BlessOverride:這個選擇是尋找一些不同位置的EFI,一般空。

5-2 BOOT:引導屏幕設置(將所有內容保留為默認值)

  1. ConsoleAttributes:0
  2. HibernateMode:None。最好避免一起使用Hackintoshes進行休眠
    None — 禁用休眠
    Auto — 從RTC 或NVRAM 中檢測RTC — 從RTC 檢測NVRAM — 從NVRAM 檢測
  3. HideAuxiliary:否。
    隱藏引導是磁盤一些輔助選項,勾選時,隱藏如:recovery、Clean NVRAM等,按ESC、0或空格後,顯示而不隱藏。除非按下空格鍵,否則會更接近真實的Mac行為
    Description :默認情況下,隱藏開機引導項菜單中的輔助條目。滿足任一以下條件的引導項條目即會被視為「輔助項目」該引導項是macOS Recovery 分區引導項目是macOS Time Machine 分區引導項目被標註為 Auxiliary 引導項目是一個系統(如Clean NVRAM)即使被隱藏,仍然可以通過空格進入「擴展模式」查看所有條目(引導項菜單會被重新加載):隱藏輔助條目則助於加快啟動速度。
  4. PickerAttributes
  5. LauncherOption:啟動器中的選項
    Disabled-什麼都不做。Full -在引導加載程序啟動時,在UEFI變量存儲中創建或更新優先級最高的引導選項。要使該選項生效,必須啟用RequestBootVarRouting。Short -創建一個短啟動選項而不是一個完整的啟動選項。這種變體對於一些較老的固件很有用,特別是Insyde,但也可能是其他不能處理完整設備路徑的軟件。該選項提供了與第三方操作系統安裝的集成,並在它們覆蓋\EFI\BOOT\BOOTx64時進行升級。efi文件。通過在這個文件路徑中創建一個自定義選項,OpenCore不再用於引導。用於引導的路徑在LauncherPath選項中指定。
  6. LauncherPath:
  7. PickerVariant:
    用於引導管理的特定圖標集的選擇,一般選擇 Acidanthera\GoldenGate
  8. PickerAudioAssist:否,開啟/關閉(true/false)啟動時音頻。
    Description :在開機引導菜單中啟用螢幕中朗讀。macOS Bootloader屏幕朗讀的偏好設置是存在isVOEnabled.int32文件的preferences.efires中、並受操作系統控制。這裡僅提供一個等效的開關。切換OpenCore開機引導菜單和macOS BootLoader FileVault 2登錄界面也可以使用快捷鍵CommandF5:螢幕幕朗讀依賴可以正常工作的音效設備。
  9. PollAppleHotKeys:
  10. PickerMode:是否顯示開機啟動盤顯示,一般勾選

    在Apple模式下,可以繞過強制策略。要實現External模式,使用者可自定義界面,使用OcSupportPkg、 OcBootManagementLib庫,外部圖形接口參考在ExternalUi測試驅動程序中提供。OpenCore-Builtin模式引導包含在引導過程中支持幾個快捷鍵,類似於蘋果的BDS,目前有以下幾個:
    三、ResetNvram項:在勾選AllowNvramReset的情況下,可以使用CMD+OPT+P+R組合鍵來實現清除(Reset) NVRAM,當然還可以用另一種方​​式來清除NVRAM。



  11. PollAppleHotKeys:否
    • 允許您在引導過程中使用Apple的熱鍵,具體取決於您可能需要使用OpenUsbKbDxe.efi而不是OpenCore的內置支持的固件。請注意,如果您可以在OC的選擇器中選擇任何內容,則禁用此選項會有所幫助。常用命令:
      • Cmd+V:啟用-V
      • Cmd+Opt+P+R:清理NVRAM
      • Cmd+R:引導恢復分區
      • Cmd+S:以單用戶模式引導
      • Option/AltShowPicker設置為時顯示啟動選擇器NO,替代方法是ESCCMD+S+MINUS — 禁用KASLR slide,需要事先禁用SIP。
      • Shift — 啟用安全模式。1
  12. ShowPicker:Yes
  13. TakeoffDelay0
  14. Timeout5


  1. AppleDebug:No
    • 啟用boot.efi日誌記錄,對於調試非常有用。請注意,這僅在10.15.4及更高版本上受支持
  2. ApplePanic:No
  3. DisableWatchDog:NO
    • 禁用UEFI看門狗,可以幫助解決早期啟動問題
  4. DisplayDelay:0
    • 顯示更多的調試信息,需要OpenCore的調試版本
  5. DisplayLevel2147483650
    • 顯示更多的調試信息,需要OpenCore的調試版本
  6. SerialInit:No
  7. SysReport:No
  8.  Target:3
    • 一般設定值。

5-3 Entries:添加一些路徑。現在暫時不管

5-4 Security:安全設置

  1. AllowNvramReset:是
    允許在啟動選擇器中和按下時重置NVRAM Cmd+Opt+P+R
  2. AllowSetDefault:是
  3. AllowToggleSip:啟用OpenCore選擇器中禁用和啟用系統完整性保護的入口,一般不勾选
  4. ApECID:蘋果磁盤加密引導標識。
    將此值設置為任何非零64位整數,將允許使用個性化的Apple Secure Boot標識符。如果要使用此設置,請確保使用加密安全的隨機數生成器生成一個64位隨機數。使用此值集和SecureBootModel有效且未被禁用,可以實現Apple Secure Boot的安全引導或實現完整全面的系統文件加密驗證。
  5. AuthRestart:否:
  6. ExposeSensitiveData:由於使用nvram,填入3
  7. BlacklistAppleUpdate:勾選時,忽略試圖更新蘋果外圍固件的啟動選項(如multiupdate .efi)。
  8. DmgLoading:定義用於macOS恢復的磁盤映像(DMG)加載策略
    Signed —引導有Apple簽名的DMG鏡像。只選擇此項
    Any —引導任何DMG鏡像
  9. EnablePassword:啟用密碼保護。
  10. ExposeSensitiveData6
  11. HaltLevelOptional
  12. SecureBootModel:蘋果安全啟動硬件參數,一般不啟用安全模式的情況下選擇默認 Default。這裏我選擇 Disabled。原因是PlatformInfo和SecureBootModel是獨立的,允許使用任何SMBIOS啟用Apple安全引導。將SecureBootModel設置為任何有效值,但要實現完全的安全性,還需要指定ApECID值。注意:默認值會隨著時間的推移而增加,以支持最新的主要發行版操作系統。不建議同時使用ApECID和默認值。Disabled
  13. ScanPolicy0
    • 0掃描所有硬體等的設備。
    • 默認17760515即可。
  14. Vault:磁盤加密
    • 當Optional時,為選擇磁盤不加密,一般情況下都填寫Optional
    • 當Basic時,啟用基本的系統文件加密驗證
    • 當Secure時,啟用完整全面的系統文件加密驗證

5-5 Tools:用於運行OC調試工具。你可以使用OC文件內建的工具來使用它,這裏我只列出我常用的工具。




6-1 ADD
6-1-1 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14(Booter路徑,主要用於UI縮放)

  • DefaultBackgroundColor:boot.efi使用的背景色
    • 00000000:Syrah Black
    • BFBFBF00: 淺灰
  • UIScale
    • 01:標準分辨率(相當於三葉草0x28
    • 02:HiDPI(通常要求FileVault在較小的顯示器上正常運行,等效於Clover 0x2A

6-1-2 UID:4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102 OpenCore的NVRAM GUID,主要與RTCMemoryFixup 用戶有關,

rtc-blacklist:data <>

  • 要與RTCMemoryFixup結合使用,請參見此處以獲取更多信息:修復RTC寫入問題
  • 大多數用戶可以忽略此部分

6-1-3 UUID:7C436110-AB2A-4BBB-A880-FE41995C9F82(系統完整性保護位掩碼)

  • General Purpose boot-args:
  • SystemAudioVolume:系統音量大小調節,默認46,建議60.
引導參數 描述
-v 這將啟用詳細模式,該模式顯示啟動時滾動顯示的所有幕後文本,而不是Apple徽標和進度條。對於任何Hackintosher來說,它都是無價之寶,因為它可以讓您深入了解啟動過程,並可以幫助您確定問題,問題擴展等。
調試= 0x100 這會禁用macOS的看門狗,這有助於防止內核崩潰時重啟。這樣,您可以希望收集一些有用的信息,並按照麵包屑來解決問題。
keepsyms = 1 這是debug = 0x100的輔助設置,它告訴OS還在內核崩潰時打印符號。這樣可以對引起恐慌的原因提供更多有用的見解。
alcid = 1 用於設置AppleALC的layout-id,請參閱支持的編解碼器,以找出要用於特定係統的佈局。有關更多信息,請參見安裝後頁面
  • GPU 特定的 boot-args
引導參數 描述
agdpmod = pikera 用於禁用Navi GPU(RX 5000系列)上的boardID,否則,您將獲得黑屏。如果您沒有Navi,請不要使用(例如Polaris和Vega卡不應該使用此功能)
nvda_drv_vrl = 1 用於在Sierra和HighSierra的Maxwell和Pascal卡上啟用Nvidia的Web驅動程序
-wegnoegpu 用於禁用除集成英特爾iGPU以外的所有其他GPU,對於那些希望運行不支持其dGPU的較新版本的macOS的用戶有用
  • csr-active-config00000000


  • 00000000 -完全啟用SIP
  • 03000000 -允許未簽名的kext和寫入受保護的fs位置
  • FF030000 -禁用macOS High Sierra(0x3ff)中的所有標誌
  • FF0F0000 -禁用macOS Big Sur(0xfff)中的所有標誌,該標誌具有用於身份驗證的root的另一個新標誌
    寫入macOS系統分區使用macOS Catalina和更高版本,Apple將OS和用戶數據分為2個卷,默認情況下系統卷為只讀。為了使這些驅動器可寫,我們需要做一些事情:macOS Catalina
    1. 禁用SIP
    2. 將驅動器安裝為可寫(sudo mount -uw /在終端中運行)

    macOS Big Sur

    1. 禁用SIP
    2. 將驅動器安裝為可寫(請參見下面的鏈接以獲取命令)
    3. 更改後創建一個新的快照(有關命令,請參見下面的鏈接)
    4. 將此快照標記為下次啟動(有關命令,請參見下面的鏈接)



  • NVRAM -> Block -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config


  • nvda_drv:<>
    • 要啟用Nvidia WebDrivers,請在運行Maxwell或Pascal GPU時將其設置為31 。這與設置nvda_drv = 1相同,但是我們將其從文本轉換為十六進制,等效 Clover NvidiaWebAMD,Intel和Kepler GPU用戶應刪除此部分。
  • prev-lang:kbd:<>
    • 格式為的非拉丁鍵盤需要lang-COUNTRY:keyboard使用,儘管您可以指定空白,但建議保持空白(“示例”配置中的默認值為“俄語”):
    • 美國:en-US:0656e2d55533a30十六進制)
    • 完整列表可在AppleKeyboardLayouts.txt中找到
    • 提示:prev-lang:kbd可以更改為字符串,因此您可以en-US:0直接輸入而不用轉換為十六進制
prev-lang:kbd String zh-Hant:2 繁體中文

6-2 Block:強制重寫NVRAM變量,請注意Add 不會覆蓋 NVRAM中已經存在的值,因此boot-args應單獨保留類似的值。

6-3 LegacyEnable:否

6-4 LegacyOverwrite:否

6-5 LegacySchema






在這個Coffee Lake的示例中,我選擇了iMac19,1 SMBIOS 出於兼容性的考量,故意這樣做。Coffee Lake有兩種主要的SMBIOS:

  • iMac19,1 -為的是要接近於蘋果產品的型號。相似度比較高。
  • iMac19,2 -僅用於使用dGPU進行顯示而使用iGPU進行計算任務的計算機。
    • 注意:使用第九代主板使用者,應該使用 iMac19,1SMBIOS,為的就是能夠發揮iGPU+dGPU 雙硬解的功能。


 #               iMac19,1 SMBIOS Info                  #

Type:         iMac19,1
Serial:       C02YTKZFJV3Q
Board Serial: C02923401QXLNV98C
SmUUID:       A64E502A-0D76-4D48-AF92-46BBA02DC630

Type零件將復製到通用-> SystemProductName。
Serial零件將復製到通用-> SystemSerialNumber。
Board Serial零件將復製到通用-> MLB。
SmUUID零件將復製到通用-> SystemUUID。

我們將Generic-> ROM設置為Apple ROM(從真實Mac轉儲),您的NIC MAC地址或任何隨機MAC地址(可以是6個隨機字節,對於本指南,我們將使用11223300 0000


7-1 Automatic:Yes

7-2 Generic

  • AdviseWindows
  • MLB:用macserial讀取或生成
  • ROM:<>可以是任意6 Byte MAC地址,如0x112233000000
  • SpoofVendor:YES (仿冒製造商為Acidanthera來避免出現衝突)
  • SystemUUID:建議留空並讓OpenCore自動注入設備自帶UUID或填入設備自帶UUID以防出現Windows激活問題
  • SystemProductName:用macserial讀取或生成
  • SystemSerialNumber:用macserial讀取或生成如何獲取該值,請參考這裡。

7-3 UpdateDataHub:選擇YES。更新數據中心分段。根據Automatic的值,這些細分會從GenericDataHub中讀取。
7-4 UpdateNVRAM:選擇YES。是否更新NVRAM中關於樣本信息的相關類別。根據Automatic的值,這些細分會從GenericPlatformNVRAM中讀取。所有其他細分都將在NVRAM部分中指定。如果替換值設置為false,則可以使用nvram部分更新上述變量;反之若替換值設置為true,而同時nvram部分存在任何分裂,會產生意料之外的行為。
7-5 UpdateSMBIOS:選擇YES。更新SMBIOS字段。
7-6 UpdateSMBIOSMode:選擇Create。用新分配的EfiReservedMemoryType替換錶,​​在需要CustomSMBIOSGuid怪癖的Dell筆記本電腦上使用Custom。


  1. EnableJumpstart:加載APFS驅動程序勾選(YES)。此選項執行已簽名APFS的加載
  2. GlobalConnect:No
  3. HideVerbose:勾選(YES)是隱藏APFS驅動程序的詳細日誌。
  4. JumpstartHotPlug :支持包含APFS的USB設備熱插拔,一般不勾選(NO)
  5. MinDate :APFS驅動的日期。一般填寫0。Catalina 之前版本則填入 -1
  6. MinVersion:APFS驅動的版本。一般填寫0。Catalina 之前版本則填入 -1


  • AppleEvent :確定是使用OC內置還是OEM Apple事件協議。此選項決定是否使用Apple的OEM Apple事件協議(如果可用),或者是否使用OpenCore的反向工程和更新的重新實現。一般來說,OpenCore的重新實現應該是首選,因為它包含了一些更新,比如顯著改進的鼠標光標精細移動和可配置的按鍵重複延遲。默認為 •Builtin-即使在可以使用OEM版本的Apple硬件上,依然建議使用此設置。推薦。•OEM-在大多數使用情況下,建議首選內置。Builtin
  • CustomDelays:啟用自定義密鑰重複延遲。一般選Auto。
    Auto — 當KeySupport為真時,視為啟用,否則視為禁用。Enabled — 使用值KeyInitialDelay和KeySubsequentDelay。Disabled — 使用Apple默認值500ms(50)和50ms(5)
  • KeyInitialDelay:選擇為0
  • KeySubsequentDelay :在Apple事件協議的OpenCore實現中配置後續鍵盤重複延遲,單位為10ms。一般設置為1
  • PointerSpeedDiv:在Apple事件協議的OpenCore實現中配置指針速度除數。為指針移動配置除數。Apple OEM默認值為 0是此選項的無效值。1
  • PointerSpeedMul :在Apple事件協議的OpenCore實現中配置指針速度倍增器。配置指針移動的乘數。Apple OEM默認值為1

建議採用默認值。如果你想要向白果那樣,開機會有『咚~』一聲,那麼你需要 Resources文件,裡面包含開機聲音、圖形界面所需的圖片以及相應驅動。以下是我個人的設定。

  1. AudioSupport-(false/true):關閉/開啟末端驅動以停止/啟用開機音頻
  2. AudioDevice-指定音頻控制器路徑,如:PciRoot(0x0)/Pci(0x1f,0x3)。
  3. SetupDelay-音頻編解碼器重新配置延遲(微秒),一般默認為0。
  4. AudioCodec-設置音頻控制器上解碼器的地址,如:0。
  5. AudioOut-設置解碼器輸出端口數,如1或4或7等。
  6. MinimumVolume-音量大小選擇,默認是20。
  7. ResetTrafficClass-在legacy HDA上將TCSEL重置為T0,一般默認為否
  8. PlayChime-Auto/false/true,自動/關閉/開啟啟動時播放鈴聲。
  9. VolumeAmplifier-音頻增益係數。0~1000。




  • CrScreenshotDxe— 按F10可以保存文件或圖像到OpenCore分區EFI(ESP)根目錄下
  • OpenRuntime — 使用OpenCore引導必須使用
  • OpenCanopy—圖形界面驅動
  • AudioDxe—開機聲音驅動
  • Ps2MouseDxe—PS/2鼠標驅動程序,用於UEFI圖形界面中觸摸板的驅動
  • Ps2KeyboardDxe.efi-鍵盤PS/2鼠標驅動程序,用於UEFI圖形界面中觸摸板的驅動
  • EnhancedFatDxe — 對FAT格式的支持
  • NvmExpressDxe — 對於Haswell或更早不支持NVMe SSD添加的驅動
  • OpenUsbKbDxe — 將USB鍵盤模擬為蘋果鍵盤的驅動
  • OpenHfsPlus.efi—對HFS格式的支持
  • HiiDatabase.efi
  • OpenPartitionDxe.efi-
  • XhciDxe — XHCI USB驅動,Sandy Bridge以前的CPU、主板或者USB3.0PCI卡需要此驅動
  1. KeyFiltering:默認不勾選(false),啟用時,則是檢查鍵盤輸入完整性。只針對部分老舊主板。
  2. KeyForgetThreshold:設置為5
  3. KeyMergeThreshold:設置為2
  4. KeySupport勾选
  5. KeySupportMode:選擇Auto
  6. KeySwap勾选
  7. PointerSupport:如果是華碩Z87/Z97,勾選,其他不勾选
  8. TimerResolution:延遲選50000
  9. PointerSupportMode:範例是ASUS。不改

8-6 :Output

8-6 Output: Relating to visual output

  1. ClearScreenOnModeSwitch: NO。當需要保留一半以前繪製的圖像時,將在切換到TextMode之前強制黑屏。請注意,僅在使用SystemTextRenderer的情況下才需要這樣做
  2. ConsoleMode: Max
  3. DirectGopCacheMode:No
  4. DirectGopRendering: No
  5. GopPassThrough一般 此選項通過基於UGA的代理為未實現該協議的固件提供GOP協議。該選項支持的值如下:Disabled
  6. IgnoreTextInGraphics: NO。修復了文字和圖形輸出均只與使用SystemTextRenderer的用戶相關的UI損壞的問題
  7. ProvideConsoleGop: YES。啟用GOP(圖形輸出協議),這是macOS引導程序進行控制台處理所必需的,一旦內核接管,圖形輸出所需要的GOP
  8. ReconnectOnResChange: NO
  9. ReplaceTabWithSpace: NO根據固件的不同,某些系統在無法處理Tabs時可能需要此工具來正確編輯UEFI Shell中的文件。而是將其交換為空格,但是大多數人可以忽略它,但請注意,可能需要將ConsoleControl設置為True
  10. ResolutionMax
  11. SanitiseClearScreen: NO
  12. TextRendererBuiltinGraphics用於固定OpenCore本身的分辨率,Resolution必須設置為Max正確運行
  13. UgaPassThrough:No

8.7 ProtocolOverrides

  1. AppleAudio:No。關閉/開啟蘋果音頻協議(不支持10.13以前的版本)。
  2. AppleBootPolicy:No。虛擬機的Mac需要用。
  3. AppleDebugLog:No。調用Apple調試日誌協議。
  4. AppleEvent:No。虛擬機並有vault需要用。
  5. AppleFramebufferInfo:
  6. AppleImageConversion:No。重建apple圖標。
  7. AppleImg4Verification:
  8. AppleKeyMap:No。重建apple功能鍵。
  9. AppleRtcRam:No。一般不勾選。04-19新增。
  10. AppleSecureBoot:No
  11. AppleSmcIo:No。替代之前的 VirtualSmc.efi。添加/No,未添加/Yes
  12. AppleUserInterfaceTheme :No。與主題有關。
  13. DataHub:No。重建DataHub。
  14. DeviceProperties:No。虛擬機需要。
  15. FirmwareVolume:No。File Vault的相關。
  16. HashServices:No。File Vault的相關。
  17. OSInfo:No。操作系統信息協議。
  18. UnicodeCollat​​ion:No。老舊主板需要。
8-8 Quirks
  1. ActivateHpetSupport:激活對HPET的支持,一般不勾选
  2. DisableSecurityPolicy:NO。一般 這個設置禁用了固件的各種安全特性,解除任何安全引導。如果您使用UEFI Secure Boot,請不要啟用該功能。
  3. EnableVectorAcceleration:關閉/啟用SHA-512和SHA-384 算法的AVX矢量加速。
  4. ExitBootServicesDelay:較新的主板直接填入0,老舊主板填入3000000-5000000。
  5. ForgeUefiSupport:No。勾選時允許在舊版EFI 1.x固件(如MacPro5,1)的硬件上運行為UEFI 2.x固件一般不勾選。
  6. IgnoreInvalidFlexRatio:如果没有解鎖CFG,必须勾选
  7. ReleaseUsbOwnership:如果開機鍵盤鼠標卡死,勾選試試,一般是No。
  8. ReloadOptionRoms:No。一般 勾選時允許在固件版本通過forguefisupport升級後,在較舊的mac上重新加載NVIDIA GOP Option ROM。
  9. TscSyncTimeout:No。一般推薦用VoodooTSCSync、TSCAdjustReset或CpuTscSync (VoodooTSCSync的一個更專業的驅動)來解決TSC問題。
  10. RequestBootVarRouting:如果要使用“啟動磁碟”的選項,Yes
  11. UnblockFsConnect:與惠普NB相關,一般不勾选

8-9 ReservedMemory(04-19新增),用於填充plist dict值,避免系統寫入和使用特定設備或硬件的內存。

  • Address:例如-268435456,設預留記憶體區域的起始地址,防止系統訪問。
  • Comment:例如-HD3000: IGPU memory corruption errata。
  • Size:例如-268435456,設置保留內存區域的大小,必須與頁面對齊(4 kb)。
  • Enabled:默認為false(關閉)則不預留上面的內存。


現在,您可以把編譯好config.plist 文件,存放在EFI / OC下的EFI中測試看看摟。



  • 檢查config.plist設定值連結