OpenCore 0.5.8 發行版中文教學

Spread the love

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

以下是我個人推薦 OpenCore 相關的教學網站。
Opencore Vanilla Desktop Guide
Getting Started With OpenCorer
OpenCore Configuration
精解OpenCore(黑果小兵)
AppleLife.ru in Russian
Hackintosh-Forum.de in German
InsanelyMac in English
Xjn’s Blog 中國 Xjn’s 部落格
Open Core 官方討論群
NSK 主題下載

OpenCore更新日誌

0.5.8-05-04

  • 修復了SSDT-PLUG中無效的CPU對象引用
  • 修復了錯誤的實用程序和資源包裝
  • 修復了Custom UpdateSMBIOSMode修改SMBIOSv3表的問題
  • 更新了文檔以涵蓋通過以下方式分離SMBIOS UpdateSMBIOSMode
  • 修復了OpenCanopy中渲染macOS安裝程序圖標的問題
  • 通過Fusion Drive添加了APFS支持並增強了安全性
  • 在OpenCanopy中添加了AppleEvent鼠標支持
  • 修復了具有OVMF TPL限制的AppleEvent和OpenCanopy兼容性
  • 由於OVMF需要一個驅動程序,因此在軟件包中添加了鼠標驅動程序
  • 添加了內存區域保留支持
  • 添加了RtcRw工具來操縱RTC內存
  • 添加了PatchAppleRtcChecksum內核怪癖
  • 添加了AppleRtcRam協議實施
  • 更名ProtocolsProtocolOverrides為清楚起見
  • 添加了ResetSystem工具以允許菜單中的關閉/重置操作
  • 添加了實驗BootProtect Security選項
  • 在10.8安裝程序中修復了kext注入
  • 為OpenCanopy用戶界面添加了超時支持
  • 固定處理24位屏幕分辨率
  • 添加Ps2KeyboardDxe了DuetPkg的驅動程序
  • 更新了BootInstallDuetPkg版本(現在為開源)
  • 在OpenCanopy中添加了對HiDPI的部分支持
  • 更新內置固件
  • 修復了創建保管庫時無效的校驗和檢查

BIOS設置

禁用:

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

啟用:

ㄧ、創建USB很簡單。您所需要做的就是選擇格式:Mac OS 擴充格式(日誌式),架構為GUID分區圖配置表,名稱為OpenCore EFI、EFI皆可。

二、當你安裝macOS 映像檔時,該USB自然就會產生ESP分區,該分區會自動分割為200MB的容量,大部分載這分區裡,我們是安裝CLOVER 引導程序,若沒有安裝CLOVER EFI,也可以直接安裝OC引導程序。

三、在教學EP-6教學影片中,教給大家採用且親自製作『多功能引導安裝救援碟』的方式,我另外把USB安裝碟再分割約1GB的容量,該分區格式化FAT-DOS 32BIT的格式,因為UEFI只認得該格式,所以我們要格式化為FAT-DOS 32BIT,由於OpenCore的整個EFI只小於5MB容量,再加上放置PE系統,來達到多引導功能的安裝救援碟。

以下的教學是以第三種方式來做示範。

基本文件夾結構

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

ㄧ、 OPENCORE目錄和文件

  • 請打開下載好的最新版OC(0.5.8)BEAT版,把Doc文件夾下面的SampleFull.plist 改名為 config.plist,並把此文件移動到EFI目錄裡面。
  • 打開EFI—Kexts 資料夾,把主機板相關硬體的kexts 先放進去。
  • 根據作者指示,放入KEXT有一定的順序排列。
現在,您會注意到,它和文件夾中附帶了一堆文件,我們不需要其中的大多數:DriversTools

從驅動程序中刪除:

    • AppleUsbKbDxe.efi  用於在拾取的OpenCore 運行DuetPkg遺留系統
    • NvmExpressDxe.efi 當固件未內置NVMe驅動程序時,用於Haswell及更早版本
    • XhciDxe.efi 固件未內置XHCI驅動程序時,用於Sandy Bridge和更早的版本
    • HiiDatabase.efi 用於修復GUI支持,例如Sandy Bridge和更早版本上的Shell.efi

從Tools 刪除程序檔:

    • BootKicker.efi:用於在正版Mac上修復Apple Picker
    • CleanNvram.efi  我們將使用OpenCore的內置功能
    • GopStop.efi 用於測試的GOP
    • HdaCodecDump.efi  用於查找AudioDxe設置的信息,本指南未涵蓋,因此不需要
    • VerifyMsrE2.efi 用於驗證MSR鎖,對於安裝,我們可以忽略

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

Firmware Drivers

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

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

Kexts
一個KEXT是ķernel 分機 ension,你可以認為這是MacOS的驅動程序,這些文件將進入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

  • 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

AMD CPU Specific kexts:(AMD部分不再教學內)

  • NullCPUPowerManagment
    感謝的OpenCore 0.5.5,目前更好的解決方案。找到DummyPowerManagementKernel -> Quirks
  • XLNCUSBFIX
    USB修復AMD FX系統,對Ryzen無影響

  • VoodooHDA
    FX系統的音頻和Ryzen系統的前面板Mic + Audio支持,請勿與AppleALC混用。音頻質量明顯比Zen CPU上的AppleALC差

額外的程序:

  • 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 上做兼容性測試。

  • 新增主題的文件:NDK 相關制定和製作方法,請到這裡。

根據CPU架構的不同,在ACPI所需要的SSDT.aml修護檔也會不同,請依以下的說明來編譯所需要SSDT.efi

Coffeelake:

  •  

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

整個EFI檔資料夾的架構

提取主機硬件訊息

如果你目前使用的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不同。它們不能混合和匹配。而且,如果您不知道所有內容,您還需要閱讀文檔。
首先讓我們複製sample.plist,將重複的名稱重命名為config.plistXcode並打開。

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

  • 這只是一個示例。不要嘗試加載它。
  • 在啟動之前,請確保您了解每個字段。
  • 在大多數情況下,建議使用Sample.plist。
  • 將SampleFull.plist用於壽命終止模型:2011年或更早。
  • https://docs.google.com/spreadsheets/d/1kGFz3_kp5xCDRRQpfnIUOvbiHXTmxEgyx97u73ImXXE/edit#gid=0

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

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

1.ACPI

ACPI 選項包括了四個部分:Add, Block, Patch, Quirks。首先我們先把 root下面的五條WARNING警語 刪除,該訊息是沒有實際意義。

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

對於我們來說,我們需要幾個SSDT來恢復Clover提供的功能:

  • SSDT-PLUG
    • 允許進行本機CPU電源管理,Clover替代項將在下Acpi -> GenerateOptions -> PluginType。請注意,此SSDT是針對AppleACPICPU連接了附件的系統製作的CPU0,儘管某些ACPI表的開頭是PR00這樣,所以請相應地進行調整。在IORegistryExplorer中查看首先連接了哪個設備的AppleACPICPU 也會給您提示。
  • SSDT-EC-USBX
    • 糾正所有Catalina用戶所需的EC設備。要進行設置,您需要PNP0C09在DSDT中找出設備的名稱EC0,即H_ECPGECECDV。您可以在此處閱讀有關Catalina中嵌入式控制器問題的更多信息:macOS Catalina中的新增功能
  • SSDT-AWAC
    • 這是300系列RTC補丁程序,對於大多數B360,B365,H310,H370,Z390和某些Z370闆卡來說都是必需的,它們會阻止系統引導macOS。如果AWAC SSDT因遺漏舊版RTC時鐘而不兼容,則替代方法是SSDT-RTC0,以檢查自己需要搜索的內容AWAC,如果顯示出來,則STAS在DSDT中搜索。如果STAS搜索沒有任何結果,則需要RTC0補丁
  • SSDT-PMC
    • 因此,真正的300系列主機板(非Z370)不會在ACPI中將FW芯片聲明為MMIO,因此XNU會忽略UEFI記憶體訪問所聲明的MMIO區域。該SSDT帶回了NVRAM支持,並且可以按原樣進行編譯,使用該補丁。SSDT-PMC.aml

對於那些不了解有關插件類型和EC 的SSDT 的,可以使用CorpNewt的SSDTTime正確設置您的SSDT。其餘的SSDT可以使用MaciASL進行編譯,別忘了編譯後的SSDT具有.aml附檔名(已彙編),並將進入EFI / OC / ACPI文件夾。您可以通過運行File-> SaveAs-> ACPI Machine Language使用MaciASL進行編譯。有關包括Windows和Linux在內的ACPI的更深入的了解,請參閱ACPI入門頁面。

  • MaciASL – >另存為,確保文件格式是ACPI機器語言的二進制System DSDT
    • 請注意,所有ACPI補丁程序都將應用於DSDT
  • SSDTTime可以在Linux和Windows解壓
    • 請注意,如果通過OpenCore引導,ACPI補丁將應用於DSDT
  • 三葉草啟動菜單中的F4
    • DSDT可以在 EFI/CLOVER/ACPI/origin
  • acpidump.efi
    • 將此添加到並在您的配置下,然後在Opencore的選擇器中選擇此選項。將DSDT.dat重命名為DSDT.aml。工具提供的EFI/OC/ToolsMisc -> Toolsacpica

1-1.ACPI-Add

這個單元主要填寫我們使用常常使用的SSDT以及DSDT文件,如果沒有的話,請把0-8項默認的ssdt選項全部給刪除掉。假設你有修改的SSDT或者DSDT文件能力,請先將文件放入EFI/OC/ACPI下。
範例:

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 ,大致解釋如下:

QuirksValue解釋
FadtEnableResetNO主要用於老舊主板的開關機功能,如果你關機變重啟,可以勾選,一般情況下不勾选
NormalizeHeadersNO清理ACPI標頭字段,僅與macOS High Sierra 10.13相關(Z390選Yes)
RebaseRegionsNO嘗試試探性地重定位ACPI內存區域,除非使用了自定義DSDT,否則不需要。
ResetHwSigNO休眠相關項:在重新啟動後,無法維持硬體簽名,並導致從休眠中喚醒的問題的硬體設備。(桌機不需要設定)
ResetLogoStatusNO 重置日誌,一般不勾选

2.Booter

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

2-1.Booter-MmioWhitelist:

默認第一項是為Haswell晶片提供內存尋址修復,此類晶片如果遇到記憶體的相關問題,就勾選啟用。默認第二項是開機卡PCI Configuration。ACPI、PCI device同時釋放到記憶體時,發生0x1000內存地址被佔用,而卡在PCI Configuration,則勾選,否則就不管它!

2-2.Booter-Quirks

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

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

3-DeviceProperties

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

設備屬性

ADD:設置設備屬性。

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
啟用幀緩衝區補丁數據01000000
幀緩衝區被盜數據00003001

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

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

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

  • 應用AppleALC音頻注入,您需要對主板具有的編解碼器進行自己的研究,並將其與AppleALC的佈局相匹配。AppleALC支持的編解碼器

對於我們來說,我們將使用boot-arg alcid=xxx來完成此操作。alcid將覆蓋存在的所有其他佈局ID

有趣的事實:字節順序被換的原因是由於字節序,特別是小Endians現代的CPU使用排序字節。你知道的越多!

:從地圖上刪除設備屬性,對我們來說我們可以忽略此

4-Kernel

核心

4-1ADD:在這裡指定要加載的kext,在這裡訂購很重要,因此請確保Lilu.kext始終是第一個!Lilu之後還有其他更高優先級的kext,例如VirtualSMC,AppleALC,WhateverGreen等。提醒您,ProperTree用戶可以運行Cmd / Ctrl + Shift + R以正確的順序添加其所有kext,而無需手動鍵入每個kext。

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

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

  • CpuidMask:將此留空
  • CpuidData:將此留空

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

4-3 Emulate
此屬性滿足兩個需求: •啟用對不受支持的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)至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。
2. Cpuid1Mask 類型:plist數據,16字節
故障安全:全零
說明:Cpuid1Data中有效位的位掩碼。 當每個Cpuid1Mask位設置為0時,將使用原始CPU位,否則,設置位採用Cpuid1Data的值。

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

4-5 Quirks:

與內核,設置對我們來說,我們將實現AppleCpuPmCfgLockAppleXcpmCfgLockDisableIOMapper, PanicNoKextDumpPowerTimeoutKernelPanicXhciPortLimit。其他應保留為默認值

  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. DummyPowerManagement:否
    • 由於沒有本地電源管理,因此所有基於AMD CPU的系統都需要NullCPUPowerManagement的新替代產品。英特爾可以忽略。
  8. ExternalDiskIcons:否
    • AHCI控制器相關。現在主流機板對AHCI支持都很好,對於Z87及以下版本的NVMe,您只需通過DeviceProperties添加內置屬性。
  9. 增加PciBarSize:否
    • 將IOPCIFamily中的32位PCI磁條大小從1 GB增加到4 GB,在BIOS中啟用Above4GDecoding是一種更加干淨和安全的方法。某些X99板可能需要這樣做,如果需要,通常會在IOPCIFamily上遇到內核恐慌。請注意,在Mojave和更高版本上不需要
  10. LapicKernelPanic:否
    • 禁用HP系統通常需要的AP核心lapic中斷的內核恐慌。三葉草等效為Kernel LAPIC
  11. PanicNoKextDump:是
    • 顯示kext出錯信息,一般選NO
  12. PowerTimeoutKernelPanic:是
    • 當遇到睡眠不能喚醒,只有重啟後才能喚醒的情況下勾選,台式機選NO。
  13. ThirdPartyDrives:否
    • 啟用TRIM,NVMe不需要,但是基於AHCI的驅動器可能需要此功能。請檢查系統報告下的內容,以查看您的驅動器是否支持TRIM
  14. XhciPortLimit:是
    • 這實際上是15端口限制補丁程序,請不要依賴它,因為它不是固定USB的保證解決方案。請盡可能創建一個USB映射

原因是UsbInjectAll重新實現了內置的macOS功能,而沒有適當的當前調整。僅在一個僅plist的kext中描述您的端口會更清潔,這不會浪費運行時內存,例如

5-Misc

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

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

  • HibernateMode:None
    • 最好避免一起使用Hackintoshes進行休眠
  • HideAuxiliary
    • 否隱藏恢復和其他分區,除非按下空格鍵,否則會更接近真實的Mac行為
  • HideAuxiliary:否
    • 隱藏恢復和其他分區,除非按下空格鍵,否則會更接近真實的Mac行為
  • HideSelf:是
    • 在OC的啟動選擇器中將EFI分區隱藏為啟動選項
  • ConsoleAttributes0
    • 設置圖形界面背景與前景顏色,默認為0,此處將不介紹,但請參見Configuration.pdf的 8.3.8 了解更多信息
  • PickerAttributes0
    • 用於設置自定義選擇器屬性,此處將不介紹,但有關更多信息,請參閱Configuration.pdf的 8.3.8。
  • PickerAudioAssist:否
    • 用於在選擇器中啟用VoiceOver之類的支持,除非您希望與您的黑客交談時將其保持禁用狀態
  • 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組合鍵可選擇此選項。
  • PollAppleHotKeys:否
    • 允許您在引導過程中使用Apple的熱鍵,具體取決於您可能需要使用OpenUsbKbDxe.efi而不是OpenCore的內置支持的固件。請注意,如果您可以在OC的選擇器中選擇任何內容,則禁用此選項會有所幫助。常用命令:
      • Cmd+V:啟用詳細Cmd+Opt+P+R:清理NVRAMCmd+R:引導恢復分區Cmd+S:以單用戶模式引導Option/AltShowPicker設置為時顯示啟動選擇器NO,替代方法是ESC
  • ShowPicker:Yes
    • 是否顯示開機啟動盤顯示。
  • TakeoffDelay0
    • 在選擇啟動硬碟之前與快捷鍵操作的延遲。一般是0,對於一些鍵盤驅動需要填寫5000-10000(微秒)。
  • Timeout5
    • 這設置了OpenCore從默認選擇中自動啟動之前要等待的時間

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

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

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

5-4 Security:安全設置

  • AllowNvramReset:是
    • 允許在啟動選擇器中和按下時重置NVRAM Cmd+Opt+P+R
  • AllowSetDefault:是
    • 允許CTRL+EnterCTRL+Index在選擇器中設置默認啟動設備
  • AuthRestart:否:
    • 為FileVault2啟用經過身份驗證的重啟,因此重啟時不需要密碼。可以視為安全風險,因此是可選的
  • ExposeSensitiveData6
    • 顯示更多的調試信息,需要OpenCore的調試版本
  • HaltLevelOptional
    • 我們不會處理文件庫,因此我們可以忽略,您不會在將此設置為安全的情況下啟動
  • ScanPolicy0
    • 0掃描所有硬盤或是光區等的設備。
    • 默認983299即可
  • Vault:磁盤加密
    • 當Optional時,為選擇磁盤不加密,一般情況下都填寫Optional
    • 當Basic時,啟用基本的系統文件加密驗證
    • 當Secure時,啟用完整全面的系統文件加密驗證

5-5 Tools:用於運行OC調試工具(如外殼程序)的ProperTree的快照功能將為您添加這些工具。對於我們來說,我們不會使用任何工具

  • 名稱
    • OpenCore中顯示的名稱
  • 已啟用
    • 不言自明,啟用或禁用
  • 路徑
  • 條目:用於指定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 Black
    • BFBFBF00: 淺灰
  • UIScale
    • 01:標準分辨率(相當於三葉草0x28
    • 02:HiDPI(通常要求FileVault在較小的顯示器上正常運行,等效於Clover 0x2A

6-1-2 UID:4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102 (從GUID的映射(plist dict)到plist字符串格式的變量名數組(plist數組)中刪除NVRAM變量。) 暫時刪除該項9-1說明

  • rtc-blacklist:data <>

6-1-3 UUID:7C436110-AB2A-4BBB-A880-FE41995C9F82(引導參數與引導界面裡面的相關內容。

  • SystemAudioVolume:系統音量大小調節,默認46,建議60.
  • boot-args
    • -v-這將啟用詳細模式,該模式顯示啟動時滾動顯示的所有幕後文本,而不是Apple徽標和進度條。對於任何Hackintosher來說,它都是無價之寶,因為它可以使您深入了解啟動過程,並可以幫助您確定問題,問題擴展等。
    • debug = 0x100-禁用macOS的看門狗,這有助於防止內核崩潰時重啟。這樣,您可以希望收集一些有用的信息,並遵循麵包屑來解決問題。
    • keepsyms = 1-這是debug = 0x100的輔助設置,它告訴OS還在內核崩潰時打印這些符號。這樣可以對引起恐慌的原因提供更多有用的見解。
    • alcid = 1-用於設置AppleALC的layout-id,請參閱支持的編解碼器以找出要用於特定係統的佈局。
  • csr-active-config:SIP的設置,通常建議csrutil通過恢復分區在恢復分區內手動更改此設置

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

  • 00000000 -完全啟用SIP
  • 03000000 -允許未簽名的kext和寫入受保護的fs位置
  • E7030000 -SIP完全禁用

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

  • 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:kbdStringzh-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的示例中,我選擇了iMac18,1 SMBIOS-出於兼容性的考慮,故意這樣做。Coffee Lake有兩種主要的SMBIOS:

  • iMac18,1 -用於使用iGPU進行顯示的計算機。
  • iMac18,3 -僅用於使用dGPU進行顯示而使用iGPU進行計算任務的計算機。
    • 注意:儘管iMac19,1和iMac19,2更接近,但這些SMBIOS與比Mojave早的macOS版本不兼容,並且並非所有修復程序都與它們兼容(即:USBInjectAll)

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

  #######################################################
 #               iMac18,1 SMBIOS Info                  #
#######################################################

Type:         iMac18,1
Serial:       C02XG0FDH7JY
Board Serial: C02839303QXH69FJA
SmUUID:       DBB364D6-44B2-4A02-B922-AB4396F16DA8

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

8.1:APFS,按照下面APFS屬性配置,用於提供APFS的支持(即不用Config-UEFI-Drivers裡面的ApfsDriverLoader)04-13新增項。
  • EnableJumpstart:加載APFS驅動程序勾選(YES)。此選項執行已簽名APFS的加載
    驅動與掃描策略。
  • 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,

連接驅動程序。勾选

8.4:Config-UEFI-Drivers,

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

  • ApfsDriverLoader — 對APFS格式的支持。由於增加了Config-UEFI-APFS項可以不用此驅動。04-13改變。
  • OpenRuntime — 使用OpenCore引導必須使用
  • EnhancedFatDxe — 對FAT格式的支持
  • NvmExpressDxe — 對於Haswell或更早不支持NVMe SSD添加的驅動
  • OpenUsbKbDxe — 將USB鍵盤模擬為蘋果鍵盤的驅動
  • VBoxHfsHFSPlus—對HFS格式的支持
  • XhciDxe — XHCI USB驅動,Sandy Bridge以前的CPU、主板或者USB3.0PCI卡需要此驅動

Audio:與AudioDxe設置相關,包括此項下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.5:Config-UEFI-Apple快捷鍵相關(Input):
  • KeyFiltering:默認不勾選(false),啟用時,則是檢查鍵盤輸入完整性。只針對部分老舊主板。
  • KeyForgetThreshold:設置為5
  • KeyMergeThreshold:設置為2
  • KeySupport:勾选
  • KeySupportMode:選擇Auto
  • KeySwap:勾选
  • PointerSupport:如果是華碩Z87/Z97,勾選,其他不勾选
  • TimerResolution:延遲選50000
  • PointerSupportMode:範例是ASUS。不改
8.4 Drivers,

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

  • ApfsDriverLoader — 對APFS格式的支持。由於增加了APFS項可以不用此驅動。
  • OpenRuntime — 使用OpenCore引導必須使用
  • EnhancedFatDxe — 對FAT格式的支持
  • NvmExpressDxe — 對於Haswell或更早不支持NVMe SSD添加的驅動
  • OpenUsbKbDxe — 將USB鍵盤模擬為蘋果鍵盤的驅動
  • VBoxHfsHFSPlus—對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 ProtocolOverrides
  1. AppleAudio:No。關閉/開啟蘋果音頻協議(不支持10.13以前的版本)。
  2. AppleBootPolicy:No。虛擬機的Mac需要用。
  3. AppleDebugLog:No。調用Apple調試日誌協議。
  4. AppleEvent:No。虛擬機並有vault需要用。
  5. AppleImageConversion:No。重建apple圖標。
  6. AppleKeyMap:No。重建apple功能鍵。
  7. AppleRtcRam:No。一般不勾選。04-19新增。
  8. AppleSmcIo:No。替代之前的VirtualSmc.efi。
  9. AppleUserInterfaceTheme :No。與主題有關。
  10. DataHub:No。重建DataHub。
  11. DeviceProperties:No。虛擬機需要。
  12. FirmwareVolume:No。File Vault的相關。
  13. HashServices:No。File Vault的相關。
  14. OSInfo:No。操作系統信息協議。
  15. UnicodeCollat​​ion:No。老舊主板需要。
8-7 Quirks
  • ExitBootServicesDelay:較新的主板直接填入0,老舊主板填入3000000-5000000。
  • IgnoreInvalidFlexRatio:如果没有解鎖CFG,必须勾选
  • ReleaseUsbOwnership:如果開機鍵盤鼠標卡死,勾選試試,一般是不勾选的。
  • RequestBootVarFallback:與雙系統有關,一般不勾选
  • RequestBootVarRouting:如果要使用“启动磁盘”的选项,勾选
  • UnblockFsConnect:與惠普本本相關,一般不勾选
8-8 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設定值連結

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *