OPENCORE 精闢解說

公告:由於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(黑果小兵)
AppleLife.ru in Russian
Hackintosh-Forum.de in German
InsanelyMac in English
Xjn’s Blog 中國 Xjn’s 部落格
NSK 主題下載

OpenCore更新日誌

V0.9.2

  • 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





歷代OC版本更新速查表

V0.9.2

  • 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

v0.9.1

  • 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

v0.9.0

  • 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

v0.8.9

  • 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

v0.8.8

  • 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

v0.8.7

  • 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 com.apple.recovery.boot 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

v0.8.6

  • 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
v0.8.5
  • 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

v0.8.4

  • 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

v0.8.3

  • 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

v0.8.2

  • 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

v0.8.1

  • 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

v0.8.0

  • 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

v0.7.9

  • 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

v0.7.8

  • 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

v0.7.7

  • 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

v0.7.6

  • 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

v0.7.5

  • 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

v0.7.4

  • 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

v0.7.3

  • 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 Flavours.md
  • 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

v0.7.2

  • 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

v0.7.1

  • 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

v0.7.0

  • 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

v0.6.9

  • 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

v0.6.8

  • 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

v0.6.7

  • 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

v0.6.6

  • 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

v0.6.5

  • 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

v0.6.4

  • 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.

v0.6.3

  • 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

v0.6.2

  • 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

v0.6.1

  • 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

v0.6.0

  • 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

v0.5.9

  • 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 com.apple.recovery.boot 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

v0.5.8

  • 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)

v0.5.7

  • 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

v0.5.6

  • 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

v0.5.5

  • 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

v0.5.4

  • 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.

v0.5.3

  • 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.

v0.5.2

  • 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.

v0.5.1

  • 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.

v0.5.0

  • 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碟,打開磁碟工具。從左邊的欄位找到要製作USB引導碟的『主體』。選擇『清除』,選擇格式:Mac OS 擴充格式(日誌式),架構為GUID分區圖配置表,名稱暫時為USB。

《OPENCORE 精闢解說》
磁碟工具

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

Ventura

sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/USB

Monterey

sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/USB 

Big Sur

sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/USB

Catalina

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --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 Beta.app/Contents/Resources/createinstallmedia --volume /Volumes/USB

    Catalina*:

    sudo /Applications/Install macOS Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/USB 

    Mojave*:

    sudo /Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/USB 

    High Sierra*:

    sudo /Applications/Install macOS High Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/USB 

    El Capitan

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

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

使用可開機安裝程式

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

《OPENCORE 精闢解說》
用終端機來安裝macOS引導安裝碟

做到這裡,我們可以把它白果專用的引導碟。若是加入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 檔案結構

ㄧ、收集 OPENCORE 文件

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

ACPI:加入修補程式

Coffeelake:

備註:如果想要自行編譯SSDT修補程式,請看下製作修補方法





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 這裏,無法進入系統。

OC自帶的文件如下:

  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文件夾中。

Kexts:根據主機板的晶片加入適當的仿驅動,以下是我主機板常用的kext

  • VirtualSMC 模擬在實際macs上找到的SMC晶片,如果沒有此macOS,它將無法啟動。
    替代方法是FakeSMC,它可以具有更好或更壞的支持,而該支持通常在舊硬件上使用。
  • Lilu 一個修補程序,用於修補許多過程,這些過程對於AppleALC和WhateverGreen是必需的,對於VirtualSMC是推薦的。
  • SMCProcessor.kext –用於監視CPU溫度,不適用於基於AMD CPU的系統
  • SMCSuperIO.kext 用於監視風扇速度,不適用於基於AMD CPU的系統
  • WhateverGreen 顯示卡驅動
  • AppleALC 音效卡驅動
  • IntelMausi.kext  Intel 網路卡驅動
  • USBInjectAll  USB 驅動。

有關於其他KEXT文件的說明,請看這裡





EFI-OC-KEXTS 詳細說明

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

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

Must haves:

  • VirtualSMC 模擬在實際macs上找到的SMC芯片,如果沒有此macOS,它將無法啟動。
    替代方法是FakeSMC,它可以具有更好或更壞的支持,而該支持通常在舊硬件上使用。
  • Lilu 一個修補程序,用於修補許多過程,這些過程對於AppleALC和WhateverGreen是必需的,對於VirtualSMC是推薦的。

VirtualSMC插件

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

Graphics:

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

AUDIO:

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

Ethernet:

USB:

  • 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
1.
Brcm藍牙注射器
2.Brcm 韌體數據
3.BrcmPatchRAM3

額外的程序:

  • 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 文件夾大致如下:

《OPENCORE 精闢解說》
OC資料夾所需要的文件

整合OC資料夾所有文件

原 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

該命令將清理您的config.plist文件,並將kexts、Drivers、ACPI、Tools,添加到您的文件中。

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

做到這裡,記得要儲存,不要做任何的設定。若是使用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 文件的本體。

請記住,OpenCore中的Config.plist與Clover的config.plists不同。它們不能混合和匹配。而且,如果您不知道所有內容,您還需要閱讀文檔。
首先讓我們開啟剛剛編寫好的config.plist 文件,並由 Xcode 軟體來進行編寫。如下圖。

《OPENCORE 精闢解說》

從上圖有看到四個警告標語,分別為:

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

這四個標語是沒有任何意義,請直接刪除即可,但我們要留意的是以下項目:

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

1.ACPI

1-1.ACPI-Add

《OPENCORE 精闢解說》
ACPI

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進行編譯。

1-2.ACPI–Block

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

1-3.ACPI–Patch

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

1
2
3
Comment:EC0 to EC
Find:4543305F
Replace:45435F5F

解決RTC問題:

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

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

1-4.ACPI-Quirks

該項目共有有五項,選擇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.Booter

本節專門討論與OpenRuntime進行boot.efi修補有關的怪癖,它是AptioMemoryFix.efi的替代品

《OPENCORE 精闢解說》
Booter

2-1 MmioWhitelist

暫不討論。

2-2 Patch

本節允許設備直通通常被忽略的macOS,對於我們來說,我們可以忽略本節。

2-3.Booter-Quirks

本節是針對有關boot.efi修補和韌體修復設置,以下是我們需要做的變化DevirtualiseMmioRebuildAppleMemoryMapSyncRuntimePermissionsSetupVirtualMap

《OPENCORE 精闢解說》
Boorer 0.7.2

  1. AllowRelocationBlock:No
  2. AvoidRuntimeDefrag:YES
    此選項可修復UEFI運行時服務(日期,時間,NVRAM,電源控制等)。不支援NVRAM的主機板,必須啟動該功能。
  3. DevirtualiseMmio:Yes
    減少被盜的內存佔用空間,擴展slide=N值的選項,對於解決Z390上的內存分配問題非常有幫助。需要ProtectUefiServices以及對IceLake和 Z390 Coffeelake 搭配使用。如何找出 slide值(請參考這裡)。使用Z490主板者,因支援 NVRAM 之緣故,故毋須勾選此項。
  4. DisableSingleUser:No
    是否開啟單用戶模式(-s)。禁用Cmd+S-s,這更接近基於T2的計算機的行為。一般是不勾選,黑蘋果無需使用。
  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
    生成與macOS兼容的內存映射,用於修復戴爾5490上啟動macOS的問題,默認不勾選(false)。
  16. SetupVirtualMap:Yes
    該Quick的必要性由早期啟動故障確定,通過執行分配的虛擬記憶體到物理記憶體的早期啟動身份映射來解決此問題。因此,我們通過虛擬記憶體來建立連續性記憶體來提供OC使用,並同時映射到分散的物理記憶體當中。所以這個選項我們選擇 YES。若是開啟此項無法開機時,嘗試開啟RebuildAppleMemoryMap,兩者選擇其一。
  17. SignalAppleOS(新增):No
    讓電腦以為每次開機都是macOS,適用於部分 MacBook Pro 不允許 iGPU 於 Windows 使用。
  18. SyncRuntimePermissions:Yes
    更新運行時環境的記憶體權限,主要用於早期的macOS或Linux/Windows,默認不勾选(false)。

3-DeviceProperties

《OPENCORE 精闢解說》
DeviceProperties

此項是用來描述/注入設備信息。主要是顯卡與聲卡,當然,也可以定制一些設備到關於本機-系統報告-PCI列表中去。

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即可。

《OPENCORE 精闢解說》
《OPENCORE 精闢解說》

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

本部分是通過WhateverGreen的幀緩衝器修補指南設置的,用於修復某些iGPU屬性,例如ig-platform-id。我們為此獲得適當值的方法是查看打算使用的幀緩衝區,然後交換成對的十六進製字節。

如果我們將ig-plat視為0xAABBCCDD,我們的交換版本將如下所示DDCCBBAA

我們使用的兩個ig-platform-id如下:

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

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

另外再添加了2個屬性,framebuffer-patch-enableframebuffer-stolenmem。第一個通過WhateverGreen.kext啟用修補程序,第二個將最小失竊內存設置為19MB。這通常是不必要的,因為可以在BIOS中配置(建議64MB),但在不可用時需要配置。

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

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

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

特別說明:移動用戶應參考移動iGPU部分以了解應使用的屬性:iGPU修補

Delete:刪除設備屬性,可忽略此部分

4-Kernel

《OPENCORE 精闢解說》
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)。
對於XCPM支持,建議使用以下組合仿冒。
•Haswell-E(0x306F2)至Haswell(0x0306C3):
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。其他的應保留為默認值。

《OPENCORE 精闢解說》
Kernel-Quires

以下為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:否。
    將FeatureFlags設置為0x0F以獲得藍牙的全部功能,包括連續性。
  10. ExternalDiskIcons:否
    AHCI控制器相關。現在主流機板對AHCI支持都很好,對於Z87及以下版本的NVMe,您只需通過DeviceProperties添加內置屬性。
  11. ForceSecureBootScheme:
    IMG4驗證的強制x86方案。
  12. IncreasePciBarSize:否
    將IOPCIFamily中的32位PCI磁條大小從1 GB增加到4 GB,在BIOS中啟用Above4GDecoding是一種更加干淨和安全的方法。某些X99板可能需要這樣做,如果需要,通常會在IOPCIFamily上遇到內核恐慌。請注意,在Mojave和更高版本上不需要
  13. LapicKernelPanic:否
    禁用HP系統通常需要的AP核心lapic中斷的內核恐慌。三葉草等效為Kernel LAPIC
  14. LegacyCommpage:否
    對10.4-10.6有效。
  15. PanicNoKextDump:是
    顯示kext出錯信息,一般選NO
  16. PowerTimeoutKernelPanic:是
    當遇到睡眠不能喚醒,只有重啟後才能喚醒的情況下勾選,桌機選NO。
  17. ProvideCurrentCpuInfo:否。
    向內核提供當前CPU信息。一般 這個quirk目前為內核提供了正確的TSC和FSB值,並且禁用了CPU拓撲驗證。注意:這些修補程序當前以Microsoft Hyper-V為目標,可能需要擴展以用於其他目不勾選
  18. ThirdPartyDrives:否
    啟用TRIM,NVMe不需要,但是基於AHCI的驅動器可能需要此功能。請檢查系統報告下的內容,以查看您的驅動器是否支持TRIM
  19. XhciPortLimit:是
    這實際上是15端口限制補丁程序,請不要依賴它,因為它不是固定USB的保證解決方案。請盡可能創建一個USB3.0端口編譯。原因是UsbInjectAll 重新實現了內置的macOS功能,而沒有適當的當前調整。僅在一個僅plist的kext中描述您的端口會更清潔,這不會浪費運行時內存,

4-6 Scheme

無須理會

5-Misc

《OPENCORE 精闢解說》
Mise 編譯

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

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

  1. ConsoleAttributes:0
    設置圖形界面背景與前景顏色,默認為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
    使用純文本用戶界面時背景與前景顏色選擇。根據UEFI規範,用參數的選擇,來調節背景與前景的顏色,默認值為0
  5. LauncherOption:啟動器中的選項
    Disabled-什麼都不做。Full -在引導加載程序啟動時,在UEFI變量存儲中創建或更新優先級最高的引導選項。要使該選項生效,必須啟用RequestBootVarRouting。Short -創建一個短啟動選項而不是一個完整的啟動選項。這種變體對於一些較老的固件很有用,特別是Insyde,但也可能是其他不能處理完整設備路徑的軟件。該選項提供了與第三方操作系統安裝的集成,並在它們覆蓋\EFI\BOOT\BOOTx64時進行升級。efi文件。通過在這個文件路徑中創建一個自定義選項,OpenCore不再用於引導。用於引導的路徑在LauncherPath選項中指定。
  6. LauncherPath:
    啟動程序選項的啟動路徑。Default是默認OpenCore.efi,其他路徑如\EFI\Launcher.efi。
  7. PickerVariant:
    用於引導管理的特定圖標集的選擇,一般選擇 Acidanthera\GoldenGate
  8. PickerAudioAssist:否,開啟/關閉(true/false)啟動時音頻。
    Description :在開機引導菜單中啟用螢幕中朗讀。macOS Bootloader屏幕朗讀的偏好設置是存在isVOEnabled.int32文件的preferences.efires中、並受操作系統控制。這裡僅提供一個等效的開關。切換OpenCore開機引導菜單和macOS BootLoader FileVault 2登錄界面也可以使用快捷鍵CommandF5:螢幕幕朗讀依賴可以正常工作的音效設備。
  9. PollAppleHotKeys:
    是否開一些組合熱鍵,如command+K;command+S。如果發現開機鍵槃無法選擇,則不勾選。並刪除OC/Drivers下的UsbKbDxe.efi。
  10. PickerMode:是否顯示開機啟動盤顯示,一般勾選
    Builtin設置OpenCore默認值。純文字介面。
    External模式:如果圖形界面引導可用則啟用,否則使用純文本用戶界面。Resources資料夾,包含開機聲音、圖形界面所需的圖片以及相應驅動。
    文件下載。
    Apple模式:如果蘋果引導可用則啟用,否則使用純文本用戶界面。在External模式下,完全禁用OpenCore對所有引導管理,除非有強制策略。

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

    BootApple項:執行此選項會找到的蘋果操作系統的第一個引導,除非蘋果已經創建了默認選擇的操作系統。按住X鍵可選擇此選項。

    BootAppleRecovery項:此選項執行引導到Apple操作系統恢復模式。當在默認選擇的操作系統,或者不是由蘋果公司創建,在沒有恢復的情況下首先找到的操作系統。按住CMD+R組合鍵可選擇此選項。

  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
    在選擇啟動硬碟之前與快捷鍵操作的延遲。一般是0,對於一些鍵盤驅動需要填寫5000-10000(微秒)。
  14. Timeout5
    這設置了OpenCore從默認選擇中自動啟動之前要等待的時間
《OPENCORE 精闢解說》
MISE-Boot

Debug:有助於調試OpenCore引導問題

  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:安全設置

《OPENCORE 精闢解說》
  1. AllowNvramReset:是
    允許在啟動選擇器中和按下時重置NVRAM Cmd+Opt+P+R
  2. AllowSetDefault:是
    允許CTRL+EnterCTRL+Index在選擇器中設置默認啟動設備
  3. AllowToggleSip:啟用OpenCore選擇器中禁用和啟用系統完整性保護的入口,一般不勾选
  4. ApECID:蘋果磁盤加密引導標識。
    將此值設置為任何非零64位整數,將允許使用個性化的Apple Secure Boot標識符。如果要使用此設置,請確保使用加密安全的隨機數生成器生成一個64位隨機數。使用此值集和SecureBootModel有效且未被禁用,可以實現Apple Secure Boot的安全引導或實現完整全面的系統文件加密驗證。
  5. AuthRestart:否:
    為FileVault2啟用經過身份驗證的重啟,因此重啟時不需要密碼。可以視為安全風險,因此是可選的
  6. ExposeSensitiveData:由於使用nvram,填入3
  7. BlacklistAppleUpdate:勾選時,忽略試圖更新蘋果外圍固件的啟動選項(如multiupdate .efi)。
  8. DmgLoading:定義用於macOS恢復的磁盤映像(DMG)加載策略
    Signed —引導有Apple簽名的DMG鏡像。只選擇此項
    Any —引導任何DMG鏡像
  9. EnablePassword:啟用密碼保護。
  10. ExposeSensitiveData6
    顯示更多的調試信息,需要OpenCore的調試版本
  11. HaltLevelOptional
    顯示級別,填入:(0x80000000)的十進制2147483648
  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文件內建的工具來使用它,這裏我只列出我常用的工具。

《OPENCORE 精闢解說》
NISE-Tool

6-NVRAM

《OPENCORE 精闢解說》
NVRAM

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

csr-active-config設置為00000000啟用系統完整性保護。您可以選擇許多其他選項來啟用/禁用SIP部分。常見的如下:

  • 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. 將此快照標記為下次啟動(有關命令,請參見下面的鏈接)

    ASentientBot@mac_editor提供的完整信用和命令鏈接:

注意:與Clover相比,使用OpenCore禁用SIP有很多不同,特別是除非在本Delete節中明確說明,否則NVRAM變量將不會被覆蓋。因此,如果您已經通過OpenCore或在macOS中設置了一次SIP,則必須覆蓋該變量:

  • NVRAM -> Block -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config
《OPENCORE 精闢解說》

建議保持啟用狀態,以實現最佳安全做法

  • 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應單獨保留類似的值。
非原生nvram主板勾选原生nvram主板不勾选。經過測試非原生nvram主板(主要是300系列主板)使用SSDT-PMC以後,就可以當原生nvram主板使用,不勾選此項。

6-3 LegacyEnable:否

6-4 LegacyOverwrite:否
允許從nvram.plist重寫固件變量,只有沒有本機NVRAM的系統才需要

6-5 LegacySchema
用於分配NVRAM變量,將LegacyEnable設置為YES

WriteFlash:No
允許為所有添加的變量寫入快閃記憶體。

《OPENCORE 精闢解說》

7-PlatformInfo

《OPENCORE 精闢解說》
PlatformInfo

為了設置SMBIOS信息,我們將使用CorpNewt的GenSMBIOS應用程序。

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

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

GenSMBIOS:將為我們提供類似於以下內容的輸出:

  #######################################################
 #               iMac19,1 SMBIOS Info                  #
#######################################################

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

上面所述為機型之參數,是根據你主機原本所設定的SMBIOS值,所產生出來的。
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。

8-UEFI

《OPENCORE 精闢解說》
UEFI
8.1:APFS,按照下面APFS屬性配置,用於提供APFS的支持(即不用Config-UEFI-Drivers裡面的ApfsDriverLoader)0
  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
《OPENCORE 精闢解說》
UEFI-APFS
8.2:AppleInput屬性

這裏無需更動,採用預設值。

《OPENCORE 精闢解說》
UEFI-AppleInput
  • 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
8.2:Audio

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

《OPENCORE 精闢解說》
UEFI-AUDIO
  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。
8.3:ConnectDrivers

連接驅動程序。Yes。

8.4:Drivers
《OPENCORE 精闢解說》
UEFI-Drivers

UFEI驅動,一般情況下,新版OC只用二個:OpenHfsPlus.efiOpenRuntime.efi,至於UsbKbDxe.efi等根據自己的需要選擇。

  • 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卡需要此驅動
8.5:Input
  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。不改
《OPENCORE 精闢解說》
UEFI-Input

8-6 :Output

8-6 Output: Relating to visual output

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

8.7 ProtocolOverrides

《OPENCORE 精闢解說》
UEFI-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
《OPENCORE 精闢解說》
UEFI-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中測試看看摟。

因此,感謝Ramus的製作檢查工具,可以幫助你編譯好的文件驗證您的配置:

檢查引導文件

  • 檢查config.plist設定值連結
点赞
Share