本文是基於OpenCore-0.6.5 發行版所編寫的,並且已Opencore Vanilla Desktop Guide 為做基礎,有可能會有英翻中的錯誤,在此事先說明。本教學內容皆取自於自各大黑蘋果教學網站精髓,經個人多次測試除錯之後,重新編譯中文引導教學。針對Z300型主機板過去曾說不支援NVRAM的部分,已經有解決方案。請參考這裡。
以下是我個人推薦 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.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
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.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 inRequestBootVarRouting
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 inPlayChime
- 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
andBOOTIA32.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 toGeneric
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
toReservedMemory
to fulfil hibernation hack needs - Added workaround to displaying
Preboot
instead ofMacintosh 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 setFeatureFlags
for Bluetooth (which substitutes BT4LEContinuityFixup) - Added
MinKernel
/MaxKernel
to CPUID emulation andDummyPowerManagement
- Fixed
-legacy
not being added inKernelArch
Auto
mode - Fixed
i386-user32
not forcingi386
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 forTextRenderer
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 toAdd
,Block
,Force
, andPatch
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 toResetSystem
to reboot into preferences - Replaced
BlacklistAppleUpdate
withrun-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 toocvalidate
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 recognisingBOOTx64.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 NVRAMDelete
- Renamed
Block
toDelete
inACPI
,DeviceProperties
, andNVRAM
- 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
toProtocolOverrides
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 fixDevirtualiseMmio
on Z390 - Replaced
BOOTCAMP Windows
withWindows
to match the original - Added bundled
OpenShell
originally available as OpenCoreShell - Rework
readlabel
utility intodisklabel
with encoding support - Renamed
FwRuntimeServices
driver toOpenRuntime
- Renamed
AppleUsbKbDxe
driver toOpenUsbKbDxe
- 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 advancedRebuildAppleMemoryMap
- Marked
EnableWriteUnprotector
as deprecated on modern systems - Introduced
ProtectMemoryRegions
to fix memory region handling - Removed
ProtectCsmRegion
in favour ofProtectMemoryRegions
- Renamed
PickerAttributes
toConsoleAttributes
- 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 toOutput
section - Moved console-related UEFI quirks to
Output
section - Replaced
ConsoleControl
andBuiltinTextRenderer
withTextRenderer
- Removed
ConsoleBehaviourOs
andConsoleBehaviourUi
- Fixed providing ConsoleOutHandle GOP when running from Shell
- Added
PickerAttributes
option to colour picker - Added
ProtectSecureBoot
option through FwRuntimeServices - Replaced
RequireVault
andRequireSignature
withVault
- 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
andAuxiliary
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
withOpenCorePkg
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
withAdviseWindows
enabling UEFI mode - Fixed issues with default boot path selection on some boards
- Update builtin firmware versions
- Fixed
AdviseWindows
not settingFirmwareFeatures
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 inPlatformInfo/Generic
- Added
OSInfo
protocol support - Added
SignalAppleOS
Booter
quirk to enable IGPU on Macs in other OS - Added
AppleSmcIo
protocol support (replacesVirtualSmc
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 inAdd
- 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 ofThirdPartyDrives
- 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
andMaxKernel
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
withMinKernel
andMaxKernel
- Added
Arguments
toTools
andEntries
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 toAppleXcpmExtraMsrs
quirk (thx @mrmiller) - Added
DevirtualiseMmio
quirk toBooter
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
準備工作
- 請下載下列軟體:
- Xcode (從app store下載)
- Apple 開發人員下載頁面
- OpenCore(下載官方版下載最新的release版本)
- OpenCore (下載最新的BETA-release版本)
- ProperTree 編輯的.plist軟件
- OpenCore Configurator OpenCore 適配器(建議不用該軟件編譯)
- MacASL aml編輯軟件
- Hackintool
- AppleSupportPkg (官方版)
- AppleSupportPkg (下載最新的BETA-release版本)
- AptioFixPkg
本教學是針對我個人使用技嘉 Z390 AORUS PRO WIFI 主機板製作,同時也支援其他主機板。 會因版本隨時更新修改。
Coffee Lake 版本
技嘉 Z390 AORUS PRO WIFI
製作USB引導碟
ㄧ、安裝映像檔:隨取一隻USB碟,打開磁碟工具。從左邊的欄位找到要製作USB引導碟的『主體』。選擇『清除』,選擇格式:Mac OS 擴充格式(日誌式),架構為GUID分區圖配置表,名稱暫時為USB。

二、安裝macOS映像檔:請下載官方的macOS映像檔下來,打開終端機,key in 安裝macOS終端機參數。若是想要製作其他系統的引導碟,可按下詳細說明。
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/USB
如何製作可開機的 macOS 安裝程式
您可以使用外接磁碟或次要卷宗做為啟動磁碟,用來安裝 Mac 作業系統。
這些進階步驟主要適用於系統管理者及其他熟悉命令列的人員。您不需要可開機安裝程式也能升級 macOS 或重新安裝 macOS,但想要在多部電腦上安裝 macOS 時,有了它會很實用,因為不必每次都下載安裝程式。
下載 macOS
請在各版 macOS 的升級指示中尋找正確的下載連結:
macOS Catalina、macOS Mojave 或 macOS High Sierra
上述各 macOS 版本的安裝程式會以「安裝 macOS Catalina」、「安裝 macOS Mojave」或「安裝 macOS High Sierra」App 的形式,直接下載到您的「應用程式」檔案夾。如果安裝程式在下載後開啟,請將它結束,不要繼續安裝。
在「終端機」中使用 createinstallmedia 指令
- 插入要做為可開機安裝程式的 USB 隨身碟或其他卷宗。確保至少有 12 GB 可用儲存空間,並已格式化為 Mac OS 擴充格式。
- 開啟「終端機」(位於「應用程式」檔案夾的「工具程式」檔案夾中)。
- 在「終端機」中輸入或貼上以下其中一個指令。這些指令假設安裝程式仍位於「應用程式」檔案夾,且所使用的 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
- 輸入指令後按下 Return 鍵。
- 出現提示時,輸入您的管理者密碼,然後再按一次 Return 鍵。當您輸入密碼時,「終端機」不會顯示任何字元。
- 出現提示時,輸入
Y
確認您要清除卷宗,然後按下 Return 鍵。製作可開機安裝程式時,「終端機」會顯示進度。 - 當「終端機」告知已完成時,卷宗會與所下載的安裝程式名稱相同,如「安裝 macOS Catalina」。您現在可以結束「終端機」並退出卷宗。
* 如果 Mac 是執行 macOS Sierra 或之前版本,請加入 --applicationpath
引數,就像在 El Capitan 的指令中使用此引數的方式一樣。
使用可開機安裝程式
製作可開機安裝程式之後,再加入CLOVER 或是OC引導文件,就可以安裝黑蘋果了

做到這裡,我們可以把它白果專用的引導碟。若是加入CLOVER 或 OpenCore 程序,就是黑果專用的引導碟。
三、在教學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系統,來達到多引導功能的安裝救援碟。

以下的教學是以第三種方式來做示範。
BIOS設置
禁用:
- 快速啟動
- 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 文件
- 請打開下載好的OC引導文件,把Doc文件夾下面的 SampleFull.plist 改名為 config.plist,並把此文件移動到EFI目錄裡面。
- 打開EFI ㄧ> Kexts 資料夾,把主機板相關硬體的kexts 先放進去。
- 根據作者指示,放入KEXT有一定的順序排列。
OC-ACPI、Drivers、Kexts、Tools
已經內建許多工具,我們只保留自己所需要的工具即可。
ACPI:加入修補程式
Coffeelake:
- SSDT-PLUG
- SSDT-EC-USBX
- SSDT AWAC
- SSDT-PMC
- SSDT-UIAC.efi 這是USB端口位置定制的重要文件(自行製作)
- SSDT-EC-USBX.aml 這是USB端口定義的重要文件(自行製作)
備註:如果想要自行編譯SSDT修補程式,請看下製作修補方法
根據CPU架構的不同,在ACPI所需要的SSDT.aml 修正檔也會不同,請依以下的說明來編譯所需要SSDT.efi。官方內建的SSDT.dsl ,為該版本所需要的文件。你可以在Docsㄧ>AcpiSamples 資料夾當中,找到以下的修正檔。

這裡所列舉的SSDT-xxx.dsl ,都是要透過 MacASL 工具來編譯。以下以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格式的硬碟文件(自行加入)
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自帶的文件如下:
- AudioDxe.efi 與macOS中的音頻支持無關
- CrScreenshotDxe.efi 用於在UEFI中拍攝屏幕截圖。
- HiiDatabase.efi 用於修復GUI支持,例如Sandy Bridge和更早版本上的Shell.efi
- NvmExpressDxe.efi 當BIIOS未內建NVMe驅動程序時,用於Haswell及更早版本
- OpenCanopy.efi OpenCore的可選GUI 介面
- OpenRuntime.efi 記憶體分配驅動。
- OpenUsbKbDxe.efi 用於運行DuetPkg的舊系統上的 OpenCore選擇器,不推薦使用,在Ivy Bridge和更高版本上甚至有害
- Ps2KeyboardDxe.efi PS2鍵盤驅動
- Ps2MouseDxe.efi PS2滑鼠驅動
- UsbMouseDxe.efi USB滑鼠驅動
- 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文件的說明,請看這裡
蘋果電腦所用的硬體驅動,除了自家產品所用晶片驅動,都會放在系統裡以外,包括蘋果認定第三方廠商支援蘋果系統的以外,任何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:
- IntelMausi.kext 對於Intel NIC,基於I211-AT的晶片組將需要SmallTreeIntel82576 kext
- SmallTreeIntel82576.kext I211-AT NIC必需,基於SmallTree kext,但已打補丁以支持I211-AT。大多數運行Intel NIC的AMD板必需。
- AtherosE2200Ethernet Atheros和Killer NIC需要。
- RealtekRTL8111 Realtek NIC必需
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
Brcm藍牙注射器
1.
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.plist
IOKitPersonalities -> IOPropertyMatch -> IOCPUNumber
0
35
- 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 重啟系統
新增主題的文件:OC引導主題設定方法。例如主題NDK 相關制定和製作方法,請到這裡。(這裡先不寫)
我把下載、編譯好的文件,放入該處的資料夾中,整個 EFI 文件夾大致如下:

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


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

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

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

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

做到這裡,記得要儲存,不要做任何的設定。若是使用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 軟體來進行編寫。如下圖。

從上圖有看到四個警告標語,分別為:
- 這只是一個示例。不要嘗試加載它。
- 在啟動之前,請確保您了解每個字段。
- 在大多數情況下,建議使用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

ACPI 選項包括了四個部分:Add, Block, Patch, Quirks。這是為系統添加SSDT的地方,這些對於啟動macOS非常重要,並且具有許多用途,假設你有修改的SSDT或者DSDT文件能力,請先將文件放入EFI/OC/ACPI下。
對於我們來說,我們需要幾個SSDT 修正檔,將PC的環境,進而修護模擬成macOS的環境。
Required_SSDT | Description |
---|---|
SSDT-PLUG | 允許在Haswell及更高版本上進行本機CPU電源管理,有關更多詳細信息,請參閱《ACPI入門指南》。 |
SSDT-EC-USBX | 固定嵌入式控制器和USB電源,要進行設置,您需要PNP0C09 在DSDT中找出設備的名稱EC0 ,即H_EC ,PGEC 和ECDV 。 |
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 | 重置日誌,一般不勾选 。 |
2.Booter
本節專門討論與OpenRuntime進行boot.efi修補有關的怪癖,它是AptioMemoryFix.efi的替代品

2-1 MmioWhitelist
暫不討論。
2-2 Patch
本節允許設備直通通常被忽略的macOS,對於我們來說,我們可以忽略本節。
2-3.Booter-Quirks
本節是針對有關boot.efi修補和韌體修復設置,以下是我們需要做的變化DevirtualiseMmio
,RebuildAppleMemoryMap
,SyncRuntimePermissions
和SetupVirtualMap
- AllowRelocationBlock:No
- AvoidRuntimeDefrag:YES
此選項可修復UEFI運行時服務(日期,時間,NVRAM,電源控制等)。不支援NVRAM的主機板,必須啟動該功能。 - DevirtualiseMmio:Yes
減少被盜的內存佔用空間,擴展slide=N
值的選項,對於解決Z390上的內存分配問題非常有幫助。需要ProtectUefiServices
以及對IceLake和 Z390 Coffeelake 搭配使用。如何找出 slide值(請參考這裡)。使用Z490主板者,因支援 NVRAM 之緣故,故毋須勾選此項。 - DisableSingleUser:No
是否開啟單用戶模式(-s)。禁用Cmd+S
和-s
,這更接近基於T2的計算機的行為。一般是不勾選,黑蘋果無需使用。 - DisableVariableWrite:Yes
這是一個安全選項,允許在macOS中限制NVRAM訪問。這種Quick的要求OC_FIRMWARE_RUNTIME
實現的協議 OpenRuntime.efi,對一些非原生NVRAM主板需要模擬nvram.plist,進而寫入variable值。因此我們要禁止此項來防止其他程序對nvram進行寫入。
注意:如果你的主機板若是支持原生nvram ,請選擇NO!已加入SSDT-PMC.aml者請選擇No。 - DiscardHibernateMap:No
重用原始的休眠記憶體訪問,僅某些舊版硬件需要。 - EnableSafeModeSlide:Yes
此Quick的必要性取決於安全模式的可用性。如果啟動到安全模式失敗,則可以嘗試啟用此選項。此選項與在啟動到安全模式時遇到問題的用戶有關(例如,通過按住shift或使用-x boot參數)。默認情況下,安全模式強制滑動0,就好像系統是使用slide = 0 引導參數啟動的。此 Quick 嘗試修補boot.efi 以解除該限制,並使用其他值(從1到255)。需搭配ProvideCustomSlide
一起啟用此Quick。像z390這樣本來也不用分佈式註入內存方式的(KASLR),我就選擇YES。 - EnableWriteUnprotector:
此選項通過在執行期間從CR0寄存器中刪除寫保護(WP)位來繞過UEFI運行時服務的代碼頁中的RˆX權限。這個 Quick 需要OC_FIRMWARE_RUNTIME
在中實現的協議FwRuntimeServices.efi
。所以 nvram 能正常寫入而不受到UEFI內的一些服務的影響,任何主機板必須要選擇 YES。 - ForceExitBootServices:
確保ExitBootServices調用即使MemoryMap發生了更改也成功,除非有必要,否則請勿使用) 正常情況下選 NO。 - ProtectMemoryRegions:
- ProtectSecureBoot:保護 UEFI 安全引導變量寫入參數時不被干擾而引起衝突。選擇Yes。
- ProtectUefiServices:
這是保護UEFI Service 不被韌體給覆蓋的功能。包括硬體和虛擬機(例如VMware)在內的某些現代韌體可能會在驅動程序加載和相關操作期間更新指向UEFI Service 。這會直接破壞了影響記憶體管理的其他 Quirks,例如 DevirtualiseMmio、ProtectCsmRegion 或 ShrinkMemoryMap,並且還可能破壞其他 Quirks,具體取決於這些 Quirks。
當使用Z390主板的用戶請選擇 Yes ,在 boot-args 的參數 slide=x and UEFI /Drivers/MemoryAllocation.efi 二者刪除,選擇No時,二者得保留。需與DevirtualiseMmio 搭配使用。 - ProvideCustomSlide:Yes
當在記憶體不足時,提供自定義的KASLR slide,此選項強制 macOS 在可用的當中使用偽隨機值。這也確保了slide=
出於安全原因,永遠不會將參數傳遞給操作系統。我選擇 Yes。
Only N/255 slide values are usable! - ProvideMaxSlide:0
- RebuildAppleMemoryMap:No
生成與macOS兼容的內存映射,用於修復戴爾5490上啟動macOS的問題,默認不勾选
(false)。 - SetupVirtualMap:Yes
該Quick的必要性由早期啟動故障確定,通過執行分配的虛擬記憶體到物理記憶體的早期啟動身份映射來解決此問題。因此,我們通過虛擬記憶體來建立連續性記憶體來提供OC使用,並同時映射到分散的物理記憶體當中。所以這個選項我們選擇 YES。若是開啟此項無法開機時,嘗試開啟RebuildAppleMemoryMap,兩者選擇其一。 - SignalAppleOS(新增):No
讓電腦以為每次開機都是macOS,適用於部分 MacBook Pro 不允許 iGPU 於 Windows 使用。 - SyncRuntimePermissions:Yes
更新運行時環境的記憶體權限,主要用於早期的macOS或Linux/Windows,默認不勾选
(false)。
3-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即可。


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-enable
和framebuffer-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

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
- 實際可執行文件的路徑隱藏在kext中,您可以通過右鍵單擊並選擇kext的路徑
- 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:與內核,設置對我們來說,我們將實現AppleCpuPmCfgLock
,AppleXcpmCfgLock
,DisableIOMapper
, PanicNoKextDump
,PowerTimeoutKernelPanic
和XhciPortLimit
。其他應保留為默認值
- 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 啟用的方法請看這裡。
- 僅當無法在BIOS中禁用CFG-Lock時才需要,如果你BIOS裡面
- AppleXcpmCfgLock:是
- 僅當無法在BIOS中禁用CFG-Lock時才需要,Clover對應的對像是KernelPM。請確認您可以禁用CFG-Lock,大多數係統無法使用它啟動,因此需要使用此Quirks。
- AppleXcpmExtraMsrs:否
- 主要是在無原生電源管理的CPU上使用,一般是
Haswell-E
,Broadwell-E
,Skylake-X
這三種CPU,必須勾选
,其他CPU不用勾
選。
- 主要是在無原生電源管理的CPU上使用,一般是
- AppleXcpmForceBoost:否
- 此補丁將
0xFF00
寫入到MSR_IA32_PERF_CONTROL (0x199),
一般CPU都不勾
選。
- 此補丁將
- CustomSMBIOSGuid:否
- 對UpdateSMBIOSMode自定義模式執行GUID修補。通常與戴爾筆記本電腦有關
- DisableIoMapper:是
- 禁用VT-D,如果BIOS有相關設定就關閉它,若無在Boot-args加入
dart=0
加入此參數。SIP可以留在Catalina中,因此是更好的替代選擇。
- 禁用VT-D,如果BIOS有相關設定就關閉它,若無在Boot-args加入
- DisableRtcChecksum:
- DummyPowerManagement:否
- 由於沒有本地電源管理,因此所有基於AMD CPU的系統都需要NullCPUPowerManagement的新替代產品。英特爾可以忽略。
- ExternalDiskIcons:否
- AHCI控制器相關。現在主流機板對AHCI支持都很好,對於Z87及以下版本的NVMe,您只需通過DeviceProperties添加內置屬性。
- IncreasePciBarSize:否
- 將IOPCIFamily中的32位PCI磁條大小從1 GB增加到4 GB,在BIOS中啟用Above4GDecoding是一種更加干淨和安全的方法。某些X99板可能需要這樣做,如果需要,通常會在IOPCIFamily上遇到內核恐慌。請注意,在Mojave和更高版本上不需要
- LapicKernelPanic:否
- 禁用HP系統通常需要的AP核心lapic中斷的內核恐慌。三葉草等效為
Kernel LAPIC
- 禁用HP系統通常需要的AP核心lapic中斷的內核恐慌。三葉草等效為
- PanicNoKextDump:是
- 顯示kext出錯信息,一般選NO
- PowerTimeoutKernelPanic:是
- 當遇到睡眠不能喚醒,只有重啟後才能喚醒的情況下勾選,台式機選NO。
- ThirdPartyDrives:否
- 啟用TRIM,NVMe不需要,但是基於AHCI的驅動器可能需要此功能。請檢查系統報告下的內容,以查看您的驅動器是否支持TRIM
- XhciPortLimit:是
- 這實際上是15端口限制補丁程序,請不要依賴它,因為它不是固定USB的保證解決方案。請盡可能創建一個USB3.0端口編譯。
原因是UsbInjectAll 重新實現了內置的macOS功能,而沒有適當的當前調整。僅在一個僅plist的kext中描述您的端口會更清潔,這不會浪費運行時內存,
4-6 Scheme
無須理會
5-Misc

5-1 BlessOverride:這個選擇是尋找一些不同位置的EFI,一般空。
5-2 BOOT:引導屏幕設置(將所有內容保留為默認值)
- ConsoleAttributes:0
- 設置圖形界面背景與前景顏色,默認為0,此處將不介紹,但請參見Configuration.pdf的 8.3.8 了解更多信息
- HibernateMode:None。最好避免一起使用Hackintoshes進行休眠
None
— 禁用休眠Auto
— 從RTC 或NVRAM 中檢測RTC
— 從RTC 檢測NVRAM
— 從NVRAM 檢測
- HideAuxiliary:否。隱藏恢復和其他分區,除非按下空格鍵,否則會更接近真實的Mac行為
- Description :默認情況下,隱藏開機引導項菜單中的輔助條目。滿足任一以下條件的引導項條目即會被視為「輔助項目」該引導項是macOS Recovery 分區引導項目是macOS Time Machine 分區引導項目被標註為
Auxiliary
引導項目是一個系統(如Clean NVRAM
)即使被隱藏,仍然可以通過空格
進入「擴展模式」查看所有條目(引導項菜單會被重新加載):隱藏輔助條目則助於加快啟動速度。
- Description :默認情況下,隱藏開機引導項菜單中的輔助條目。滿足任一以下條件的引導項條目即會被視為「輔助項目」該引導項是macOS Recovery 分區引導項目是macOS Time Machine 分區引導項目被標註為
- PickerAttributes:
1
- 用於設置自定義選擇器屬性,此處將不介紹,但有關更多信息,請參閱Configuration.pdf的 8.3.8。
- PickerAudioAssist:否
- Description :在開機引導菜單中啟用螢幕中朗讀。macOS Bootloader屏幕朗讀的偏好設置是存在
isVOEnabled.int32
文件的preferences.efires
中、並受操作系統控制。這裡僅提供一個等效的開關。切換OpenCore開機引導菜單和macOS BootLoader FileVault 2登錄界面也可以使用快捷鍵Command
+F5
。注:屏幕朗讀依賴可以正常工作的音頻設備。
- Description :在開機引導菜單中啟用螢幕中朗讀。macOS Bootloader屏幕朗讀的偏好設置是存在
- 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。
- PollAppleHotKeys:否
- 允許您在引導過程中使用Apple的熱鍵,具體取決於您可能需要使用OpenUsbKbDxe.efi而不是OpenCore的內置支持的固件。請注意,如果您可以在OC的選擇器中選擇任何內容,則禁用此選項會有所幫助。常用命令:
Cmd+V
:啟用-VCmd+Opt+P+R
:清理NVRAMCmd+R
:引導恢復分區Cmd+S
:以單用戶模式引導Option/Alt
:ShowPicker
設置為時顯示啟動選擇器NO
,替代方法是ESC
鍵CMD+S+MINUS
— 禁用KASLR slide,需要事先禁用SIP。Shift
— 啟用安全模式。1
- 允許您在引導過程中使用Apple的熱鍵,具體取決於您可能需要使用OpenUsbKbDxe.efi而不是OpenCore的內置支持的固件。請注意,如果您可以在OC的選擇器中選擇任何內容,則禁用此選項會有所幫助。常用命令:
- ShowPicker:Yes
- 是否顯示開機啟動盤顯示。
- TakeoffDelay:
0
- 在選擇啟動硬碟之前與快捷鍵操作的延遲。一般是0,對於一些鍵盤驅動需要填寫5000-10000(微秒)。
- Timeout:
5
- 這設置了OpenCore從默認選擇中自動啟動之前要等待的時間
Debug:有助於調試OpenCore引導問題
- AppleDebug:No
- 啟用boot.efi日誌記錄,對於調試非常有用。請注意,這僅在10.15.4及更高版本上受支持
- ApplePanic:No
- DisableWatchDog:NO
- 禁用UEFI看門狗,可以幫助解決早期啟動問題
- DisplayDelay:0
- 顯示更多的調試信息,需要OpenCore的調試版本
- DisplayLevel:
2147483650
- 顯示更多的調試信息,需要OpenCore的調試版本
- SerialInit:No
- SysReport:No
- Target:3
- 一般設定值。
5-3 Entries:添加一些路徑。現在暫時不管
5-4 Security:安全設置
- AllowNvramReset:是
- 允許在啟動選擇器中和按下時重置NVRAM
Cmd+Opt+P+R
- 允許在啟動選擇器中和按下時重置NVRAM
- AllowSetDefault:是
- 允許
CTRL+Enter
並CTRL+Index
在選擇器中設置默認啟動設備
- 允許
- ApECID:0
- AuthRestart:否:
- 為FileVault2啟用經過身份驗證的重啟,因此重啟時不需要密碼。可以視為安全風險,因此是可選的
- BootProtect:新增GUI啟動的介面選項。
- 在OC資料夾當中,多了Bootstrap資料夾。這是要啟動OC GUI介面另一個選項。
- DmgLoading:Signed
- ExposeSensitiveData:
6
- 顯示更多的調試信息,需要OpenCore的調試版本
- HaltLevel:
Optional
- 我們不會處理文件庫,因此我們可以忽略,您不會在將此設置為安全的情況下啟動
- SecureBootModel:Default
- ScanPolicy:
0
0
掃描所有硬盤或是光區等的設備。- 默認
983299
即可
- Vault:磁盤加密
- 當Optional時,為選擇磁盤不加密,一般情況下都填寫
Optional
- 當Basic時,啟用基本的系統文件加密驗證
- 當Secure時,啟用完整全面的系統文件加密驗證
- 當Optional時,為選擇磁盤不加密,一般情況下都填寫
5-5 Tools:用於運行OC調試工具(如外殼程序)的ProperTree的快照功能將為您添加這些工具。對於我們來說,我們不會使用任何工具
- Comment
- OpenCore中顯示的名稱
- Enabled
- 不言自明,啟用或禁用
- Path
- 文件
Tools
夾後的文件路徑例如:OpenShell.efi
- 文件
- 條目:用於指定OpenCore自然找不到的不規則引導路徑此處將不涉及,有關更多信息,請參見Configuration.pdf的 8.6。
6-NVRAM

6-1 ADD:
6-1-1 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14(Booter路徑,主要用於UI縮放)
- DefaultBackgroundColor:boot.efi使用的背景色
00000000
:Syrah BlackBFBFBF00
: 淺灰
- UIScale:
01
:標準分辨率(相當於三葉草0x28
)02
:HiDPI(通常要求FileVault在較小的顯示器上正常運行,等效於Clover0x2A
)
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-config:
00000000
csr-active-config設置為00000000
啟用系統完整性保護。您可以選擇許多其他選項來啟用/禁用SIP部分。常見的如下:
00000000
-完全啟用SIP03000000
-允許未簽名的kext和寫入受保護的fs位置FF030000
-禁用macOS High Sierra(0x3ff)中的所有標誌。- FF0F0000 -禁用macOS Big Sur(0xfff)中的所有標誌,該標誌具有用於身份驗證的root的另一個新標誌。
寫入macOS系統分區使用macOS Catalina和更高版本,Apple將OS和用戶數據分為2個卷,默認情況下系統卷為只讀。為了使這些驅動器可寫,我們需要做一些事情:macOS Catalina- 禁用SIP
- 將驅動器安裝為可寫(
sudo mount -uw /
在終端中運行)
- 禁用SIP
- 將驅動器安裝為可寫(請參見下面的鏈接以獲取命令)
- 更改後創建一個新的快照(有關命令,請參見下面的鏈接)
- 將此快照標記為下次啟動(有關命令,請參見下面的鏈接)
注意:與Clover相比,使用OpenCore禁用SIP有很多不同,特別是除非在本Delete
節中明確說明,否則NVRAM變量將不會被覆蓋。因此,如果您已經通過OpenCore或在macOS中設置了一次SIP,則必須覆蓋該變量:
NVRAM -> Block -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config

建議保持啟用狀態,以實現最佳安全做法
- nvda_drv:<>
- 要啟用Nvidia WebDrivers,請在運行Maxwell或Pascal GPU時將其設置為31 。這與設置nvda_drv = 1相同,但是我們將其從文本轉換為十六進制,等效於 Clover
NvidiaWeb
。AMD,Intel和Kepler GPU用戶應刪除此部分。
- 要啟用Nvidia WebDrivers,請在運行Maxwell或Pascal GPU時將其設置為31 。這與設置nvda_drv = 1相同,但是我們將其從文本轉換為十六進制,等效於 Clover
- prev-lang:kbd:<>
- 格式為的非拉丁鍵盤需要
lang-COUNTRY:keyboard
使用,儘管您可以指定空白,但建議保持空白(“示例”配置中的默認值為“俄語”): - 美國:
en-US:0
(656e2d55533a30
十六進制) - 完整列表可在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:否
非原生nvram主板勾选
。原生nvram主板不勾选
。經過測試非原生nvram主板
(主要是300系列主板)使用SSDT-PMC以後,就可以當原生nvram主板使用,不勾選此項。
6-4 LegacyOverwrite:否
- 允許從nvram.plist重寫固件變量,只有沒有本機NVRAM的系統才需要
6-5 LegacySchema
- 用於分配NVRAM變量,將LegacyEnable設置為YES
WriteFlash:No
- 允許為所有添加的變量寫入閃存。
7-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
的值,這些細分會從Generic
或DataHub
中讀取。
7-4 UpdateNVRAM:選擇YES。是否更新NVRAM中關於樣本信息的相關類別。根據Automatic
的值,這些細分會從Generic
或PlatformNVRAM
中讀取。所有其他細分都將在NVRAM
部分中指定。如果替換值設置為false
,則可以使用nvram
部分更新上述變量;反之若替換值設置為true
,而同時nvram
部分存在任何分裂,會產生意料之外的行為。
7-5 UpdateSMBIOS:選擇YES。更新SMBIOS字段。
7-6 UpdateSMBIOSMode:選擇Create。用新分配的EfiReservedMemoryType替換錶,在需要CustomSMBIOSGuid怪癖的Dell筆記本電腦上使用Custom。
8-UEFI

8.1:APFS,按照下面APFS屬性配置,用於提供APFS的支持(即不用Config-UEFI-Drivers裡面的ApfsDriverLoader)04-13新增項。
- EnableJumpstart:加載APFS驅動程序勾選(YES)。此選項執行已簽名APFS的加載
驅動與掃描策略。 - GlobalConnect:No
- HideVerbose:勾選(YES)是隱藏APFS驅動程序的詳細日誌。
- JumpstartHotPlug :支持包含APFS的USB設備熱插拔,一般不勾選(NO)
- MinDate :APFS驅動的日期。一般填寫0。
- MinVersion:APFS驅動的版本。一般填寫0。
8.2:Audio,包括此項下7個小項,建議默認不動,所需Resources文件點這裡下載,裡麵包含開機聲音、圖形界面所需的圖片以及相應驅動。
- AudioSupport-(false/true):關閉/開啟末端驅動以停止/啟用開機音頻
- AudioDevice-指定音頻控制器路徑,如:PciRoot(0x0)/Pci(0x1f,0x3)。
- AudioCodec-設置音頻控制器上解碼器的地址,如:0。
- AudioOut-設置解碼器輸出端口數,如1或4或7等。
- MinimumVolume-音量大小選擇,默認是20。
- PlayChime-false/true,關閉/開啟啟動時播放鈴聲。
- VolumeAmplifier-音頻增益係數。0~1000。
8.3:ConnectDrivers
連接驅動程序。Yes。
8.4:Drivers
UFEI驅動,一般情況下,新版OC只用二個:HfsPlus.efi,ApfsDriverLoader.efi和OpenRuntime.efi,至於UsbKbDxe.efi等根據自己的需要選擇。
。由於增加了Config-UEFI-APFS項可以不用此驅動。04-13改變。ApfsDriverLoader
— 對APFS格式的支持OpenRuntime
— 使用OpenCore引導必須使用EnhancedFatDxe
— 對FAT格式的支持NvmExpressDxe
— 對於Haswell或更早不支持NVMe SSD添加的驅動OpenUsbKbDxe
— 將USB鍵盤模擬為蘋果鍵盤的驅動VBoxHfs
或HFSPlus
—對HFS格式的支持XhciDxe
— XHCI USB驅動,Sandy Bridge以前的CPU、主板或者USB3.0PCI卡需要此驅動
8.5:Input
- KeyFiltering:默認不勾選(false),啟用時,則是檢查鍵盤輸入完整性。只針對部分老舊主板。
- KeyForgetThreshold:設置為
5
。 - KeyMergeThreshold:設置為
2
。 - KeySupport:
勾选
。 - KeySupportMode:選擇
Auto
。 - KeySwap:
勾选
。 - PointerSupport:如果是華碩Z87/Z97,勾選,其他
不勾选
。 - TimerResolution:延遲選
50000
。 - PointerSupportMode:範例是ASUS。
不改
。
8-6 :Output
8-6 Output: Relating to visual output
- ClearScreenOnModeSwitch: NO。當需要保留一半以前繪製的圖像時,將在切換到TextMode之前強制黑屏。請注意,僅在使用
System
TextRenderer的情況下才需要這樣做 - ConsoleMode: [Blank]
指定控制台輸出大小,最好保持空白 - DirectGopCacheMode:No
- DirectGopRendering: No
使用內置的圖形輸出協議渲染器作為控制台,主要與MacPro5,1用戶有關 - IgnoreTextInGraphics: NO。修復了文字和圖形輸出均只與使用
System
TextRenderer的用戶相關的UI損壞的問題 - ProvideConsoleGop: YES。啟用GOP(圖形輸出協議),這是macOS引導程序進行控制台處理所必需的,一旦內核接管,圖形輸出所需要的GOP
- ReconnectOnResChange: NO
- ReplaceTabWithSpace: NO根據固件的不同,某些系統在無法處理Tabs時可能需要此工具來正確編輯UEFI Shell中的文件。而是將其交換為空格,但是大多數人可以忽略它,但請注意,可能需要將ConsoleControl設置為True
- Resolution:
Max
- 設置OpenCore的分辨率,
Max
將使用最高可用分辨率或可以指定(WxH@Bpp (e.g. 1920x1080@32) or WxH (e.g. 1920x1080)
)
- 設置OpenCore的分辨率,
- SanitiseClearScreen: NO
- 修復了高分辨率顯示,以1024×768顯示OpenCore,僅與使用
System
TextRenderer的用戶有關
- 修復了高分辨率顯示,以1024×768顯示OpenCore,僅與使用
- TextRenderer:
BuiltinGraphics
用於固定OpenCore本身的分辨率,Resolution
必須設置為Max
正確運行 - UgaPassThrough:No
8.7 ProtocolOverrides
- AppleAudio:No。關閉/開啟蘋果音頻協議(不支持10.13以前的版本)。
- AppleBootPolicy:No。虛擬機的Mac需要用。
- AppleDebugLog:No。調用Apple調試日誌協議。
- AppleEvent:No。虛擬機並有vault需要用。
- AppleFramebufferInfo:
- AppleImageConversion:No。重建apple圖標。
- AppleImg4Verification:
- AppleKeyMap:No。重建apple功能鍵。
- AppleRtcRam:No。一般不勾選。04-19新增。
- AppleSecureBoot:No
- AppleSmcIo:No。替代之前的 VirtualSmc.efi。添加/No,未添加/Yes
- AppleUserInterfaceTheme :No。與主題有關。
- DataHub:No。重建DataHub。
- DeviceProperties:No。虛擬機需要。
- FirmwareVolume:No。File Vault的相關。
- HashServices:No。File Vault的相關。
- OSInfo:No。操作系統信息協議。
- UnicodeCollation:No。老舊主板需要。
8-8 Quirks
- DeduplicateBootOrder:Yes
- ExitBootServicesDelay:較新的主板直接填入
0
,老舊主板填入3000000-5000000。 - IgnoreInvalidFlexRatio:
如果没有解鎖CFG,必须勾选
。 - ReleaseUsbOwnership:如果開機鍵盤鼠標卡死,勾選試試,一般是No。
- RequestBootVarFallback:與雙系統有關,一般
不勾选
。 - RequestBootVarRouting:
如果要使用“啟動磁碟”的選項,Yes
。 - 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設定值連結