黑蘋果教程——OpenCore引導黑蘋果 - 人人焦點
文章推薦指數: 80 %
如果你開機發現鍵盤無法選擇,也選NO,並且刪除OC/Drivers下的AppleUsbKbDxe.efi 。
ShowPicker: 是否顯示開機啓動盤選項,比如MAC,WINDOWS那些。
我們選擇 ...
人人焦點
影視
健康
歷史
數碼
遊戲
美食
時尚
旅遊
運動
星座
情感
動漫
科學
寵物
家居
文化
教育
故事
黑蘋果教程——OpenCore引導黑蘋果
2021-01-15SM瞳影新遊記
人世間有太多的情感與歸宿不能把握,構成了命運的不確定與愛情的不可求..簡介OpenCore(OC)是一種新的引導方式,隨著越來越多的kexts開始放棄Clover,我相信提早使用OC會對你未來使用黑蘋果會有很大的幫助。
這是一個自然的現象,就像變色龍被Clover淘汰,而現在OC代替Clover也是大勢所趨。
你應該需要看一些相關的文章,來幫助你理解我的正文內容,同時也需要下載我推薦的軟體: Xcode(從appstore或其他地方下載,強烈建議使用v10版本的xcode,v11花里胡哨已經勸退=。
=)ProperTree 最新推薦的config編輯器OpenCore (下載最新的release版本)Hackintool MaciASLIORegistryExplorer憲武大大oc部件0.0BIOS設置直接抄襲@黑果小兵了~嘻嘻嘻禁用如下:英文中文FastBoot快速啓動CFGLock(MSR0xE2writeprotection)CFG鎖(MSR0xE2寫入保護)VT-dVT-dCSM兼容性支持模塊 啓用如下:英文中文VT-xVT-xAbove4Gdecoding大於4G地址空間解碼HyperThreading處理器超線程ExecuteDisableBit執行禁止位EHCI/XHCIHand-off接手EHCI/XHCI控制OStype:othertypes作業系統類型:其他1.0整理OPENCORE目錄 *Lilu.kext ———-Acidanthera驅動全家桶的底層依賴/下載地址 *Applealc.kext ———-音效卡驅動/下載地址 *VirtualSMC.kext ———傳感器驅動依賴/下載地址 *SMCProcessor.kext ———-CPU核傳感器/同上 *SMCSuperIO.kext ———-IO傳感器/同上 *WhateverGreen.kext ———-核顯&顯卡驅動/下載地址 *IntelMausi.kext ———-Intel類千兆網卡驅動/下載地址 *Usbinjectall.kext ———-USB驅動(你也可以定製自己的USB補丁)/下載地址 *NVMeFix.kext ———-爲NVME硬碟增加ASPT屬性來保證節電,雖然對台式機沒啥用,但是官方推薦所有NVME用戶都使用此補丁/下載地址 *MemoryAllocation.efi ———-幫助主板空出第一個512MB內存,爲後面的內存注入做鋪墊,若要使用hibernation功能請不要使用它/下載地址 *OpenRuntime.efi ———-內存尋址補丁/在Opencore的程序包的drivers文件夾下。
*HFSPlus.efi ———-HFS格式支持,在安裝MAC或者更新時必須使用此補丁,並且此補丁的效率顯然高於官方的vboxhfs.efi/下載地址 *OpenUsbKbDxe.efi ———-鍵盤組合鍵的使用,在Opencore的程序包的drivers文件夾下。
*OpenCanopy.efi ————如果你想使用第三方主題,請加載此項, 在Opencore的程序包的drivers文件夾下。
下載完成後,我們的整個EFI文件夾如下圖所示:2.0Config.plist修改這一章會把config的各個大項目分開來,內容會寫的繁瑣一點,爲了讓小白明白各個選項的用途,當然有能力的人可以直接看我最前面的幾個連結來配置config.plist。
我這裡強制要求你使用XCode10或者Propertree來編輯Config.plist,其他的任何軟體我都不建議使用,包括Plisteditpro。
2.1Config—-ACPIACPI包括了四個部分:Add,Block,Patch,Quirks。
這裡我們先把root下面的兩條#WARNING–1和#WARNING–2刪除,這兩條沒有實際意義。
2.1.1 Config—-ACPI—–Add這部分主要填寫我們使用的SSDT以及DSDT文件,如果沒有請把0-8的ssdt全部刪除。
如果你有修改的SSDT或者DSDT文件,請先將文件放入EFI/OC/ACPI下。
因爲我使用雷電卡,我需要添加兩條關於雷電卡的ssdt文件: Item0 Comment String Thunderbolt3-DTGP //填一個你自己能辨別的名字,方便知道是啥 Enable Boolean YES //表示加載此SSDT,反之NO則爲不加載 Path String SSDT-DTGP.aml //爲你ssdt放在EFI/OC/ACPI下的文件名,必須一致Item1 Comment String Thunderbolt3 Enable Boolean YES Path String SSDT-TB3.aml 2.1.2 Config—-ACPI—–Delete這個目錄下是禁用一些SSDT/DSDT,沒什麼用,我把下面的item全都刪了。
2.1.3 Config—-ACPI—–Patch這裡我們需要填寫一下熱補丁。
Comment:EC0toECCount:0Enabled:YESFind:<4543305F>Limit:0Mask:<>OemTable:<>Replace:<45435F5F>ReplaceMask:<>Skip:0TableLength:0TableSignature:<> 需要注意的是,一些主板的EC控制器名字可能會叫H_EC等,請自行提取DSDT並搜索PNP0C09,來獲取EC控制器的名字,這些內容會在第三章中寫出。
Comment:RTCfixCount:0Enabled:YESFind:
但如果補丁點亮系統,請試試NORebaseRegionsNO換硬體、升級BIOS等對硬體的操作會對ACPI表產生影響,一般不需要打開,若發現卡PCIConfiguraionBegin,請嘗試打開ResetHwSigNO休眠相關項,台式機不需要ResetLogoStatusNO顧名思義了,關了 2.2Config—–Booter內存相關選項設置。
2.2.1Config—Boot—MmioWhitelist默認的第一項是爲Haswell晶片提供的內存尋址修復,如果此類晶片碰到內存相關問題,請開啓它(enable選擇yes)。
默認第二項是開機卡PCIConfiguration這裡。
ACPI、PCIdevice同時釋放到內存時發生0x1000內存地址被占用而卡在PCIConfigration.如果碰到此類問題,請開啓它。
2.2.2Config—Boot—Quirks此項與OpenRuntime.efi有關。
在aptiomemoryfix停更後,此補丁已經更名爲Openruntime,並將一些功能與OC合併、模塊化。
對於無法原生nvram的主板來說,這裡的選項需要格外注意。
當然我也會把像300系列、x299、c422這樣支持原生nvram的選擇方法一併寫進去。
註:KASLR是更加高效的內存注入方式,但不代表每台機器都能使用這種方案,這裡我提供兩種關於內存的設置:1:DevirtualiseMmio選擇yes, ProtectUefiServices選擇yes,並刪除2.6.1中boot-args裡面的slide=1,以及刪除Drivers文件夾下的Memoryallocations.efi。
即開啓KASLR內存注入方式。
2:DevirtualiseMmio選擇yes, ProtectUefiServices選擇no,保留2.6.1中boot-args裡面的slide=1,以及保留Drivers文件夾下的Memoryallocations.efi。
即開啓連續性內存注入方式。
2.3Config—–DeviceProperties此項是用來注入你的設備的,主要是顯卡和音效卡兩部分。
同樣你也可以定製一些設備到你的關於本機–系統報告–PCI列表中,儘管沒有多大的意義。
2.3.1 音效卡這裡首先我們需要找自己音效卡的地址,打開hackintool,到PCI列表中尋找IORegIOname那欄,一般音效卡的設備名稱叫做HDEF或者HDAS:這裡我們找到的音效卡PCI路徑爲PciRoot(0x0)/Pci(0x1f,0x3)。
我們把預先填寫在那裡的PciRoot(0x0)/Pci(0x1b,0x0)項替換成我們真正的音效卡路徑。
後面一段我們看到預先填寫的音效卡ID爲<01000000>,這裡我們需要把它換成自己系統的ID。
打開黑果小兵關於音效卡的博客,並搜索我們的音效卡型號:ALC1220,我們發現我們的音效卡型號對應1,2,3,5,7,11,13,15,16,27,28,29,34的layoutID。
我們需要一個個測試過去,選定自己能用的。
這裡我們選擇7這個ID進行測試,將7轉化成16進位格式爲07,後面爲了滿足格式要求添加6個0,則爲07000000,將這個值替換剛才預先填的01000000中;如果我們測試ID爲27,27的16進位爲1b,補上6個0則爲1b000000。
PciRoot(0x0)/Pci(0x1f,0x3) device-id data <70a10000> //這個deviceid是固定的,不要問爲什麼是這個id layout-id data <0b000000> //這個Layoutid我瞎寫的,你按實際情況寫 2.3.2 核心顯卡打開PciRoot(0x0)/Pci(0x2,0x0)這項,此項爲驅動核心顯卡。
驅動核心顯卡我們要分情況討論:1.只有核心顯卡的DP顯示器用戶(HDMI我會在進階設置中寫);2.沒有核心顯卡的用戶;3.有核心顯卡並用獨顯做主力的用戶。
注意,這裡我們只討論8代和9代CPU的機器,其他CPU機型的請在論壇或者黑果小兵博客中搜索相關代碼。
2.3.2.1只有核心顯卡的DP顯示器用戶8代和9代的核顯ID爲:3E9b0007,deviceID爲3e9b0000,但是我們需要符合一定的順序格式填入進去,至於爲什麼是這麼奇怪的一個順序,我也不知道,你照抄就是了:你照抄就是了:AAPL,ig-platform-id data <07009b3e>device-id data <9b3e0000>enable-hdmi20 data <01000000> //如果你的hdmi不是2.0的(主板說明書會寫),不需要填寫這行。
framebuffer-unifiedmem data <00000080> //核顯顯存相關 2.3.2.2沒核心顯卡的用戶帶f的cpu(e.g.9100f9900kf),Xeon等不帶核心顯卡的用戶不需要管這項,直接把AAPL,ig-platform-id選項卡刪了。
2.3.2.3有核心顯卡並用獨顯做主力的用戶這種情況我們一般把核心顯卡作爲加速用,而顯示則用獨立顯卡。
這樣,我們填一個作爲加速用的核顯ID即可了:AAPL,ig-platform-id data <0300983e> 2.3.3Delete這裡是禁用一些設備的,我們按默認就行了,不需要任何修改。
2.4Config—–Kernel這裡是內核相關選項。
2.4.1Config—–Kernel—–Add這裡我們需要填寫kexts的相關資料。
值得注意的是OC的kexts填寫必須注意順序,比如applealc的依賴是lilu,那麼lilu必須填在第一個;SMCProcessor.kext依賴於Virtualsmc.kext。
那virtualsmc必須放在SMCProcessor.kext之前。
這裡默認情況下很多我們需要的補丁已經被加載裡面了,但是enabled那塊我們要手動改成yes去開啓它,把一些不用的刪了: Item0 BundlePath String Lilu.kext //kext的名字 Comment String //你自己填一個注釋,可以不填 Enabled Boolean YES //啓動此補丁,反之則爲關閉 ExecutablePath String Contents/MacOS/Lilu //通過右鍵kext顯示包內容查找lilu運行文件的真正路徑 MaxKernel String //此補丁支持的最大系統版本,填19爲10.15,18位10.14;我們一般情況下留空 MinKernel String //此補丁支持的最小系統版本 PlistPath String Contents/Info.plist //kext的plist位置,可以右鍵kext顯示包內容查找正確路徑........................Item4 BundlePath String WhateverGreen.kext Comment String Enabled Boolean YES ExecutablePath String Contents/MacOS/WhateverGreen MaxKernel String MinKernel String PlistPath String Contents/Info.plist ........................Item7 BundlePath String USBPorts.kext Comment String Enabled Boolean YES ExecutablePath String //一些沒有執行文件的kext不需要填寫 MaxKernel String MinKernel String PlistPath String Contents/Info.plist ........................ 2.4.2Config—–Kernel—–Block禁用一些kexts,這裡好像沒啥用,不用理會。
2.4.3Config—–Kernel—–Emulate此選項幫助IvyBridge和一些不受支持的CPU加載電源管理的,我們這裡不做此方面討論(我沒這麼老的CPU)。
所有選項按默認即可。
2.4.4Config—–Kernel—–Patch這裡是爲內核打補丁用的,我會在進階教程中詳細寫一下這一塊。
尤其是rtc相關的內容,我都會寫進第三章的進階教程。
如果你碰到華碩開機卡F1的,請看章節如果你碰到macos11安裝過程中卡pci的,請看章節 2.4.5Config—–Kernel—–Quirks這裡是內核相關的快捷選項,比較重要。
AppleCpuPmCfgLock:四代之前的CPU,如果未解鎖CFG(即MSR0xE2)請選擇YES。
如何解CFG鎖我在這篇文章中有詳細教程。
如果你不會解這個鎖,你就選擇YES,解鎖的情況下選擇NO。
AppleXcpmCfgLock: 四代之後的CPU若未解鎖CFG(即MSR0xE2)請選擇YES。
AppleXcpmExtraMsrs:主要在沒有原生電源管理的CPU上啓用,一般是Haswell-E,Broadwell-E,Skylake-X這三種CPU需要填寫YES。
除此之外的CPU選擇NO。
AppleXcpmForceBoost:選擇yes時將電腦的cpu頻率鎖定爲最高頻率,不建議開啓,我選擇NO。
CustomSMBIOSGuid:戴爾筆記本專用項,我們選擇NO。
DisableIoMapper:禁用vt-d,我們在BIOS里已經禁用vt-d了,這裡我們選擇NO就行了。
DisableRtcChecksum:越過兩條rtc檢查(0x58及0x59)。
一般情況下,卡RTC我們會更多地使用RTCMemoryFixup.kext來防止它。
我們一般情況下選擇NO。
DummyPowerManagement:替代NullCpuPowerManagement.kext,如果你使用此補丁,請刪除並選擇yes。
我們一般選擇no。
ExternalDiskIcons:修復蘋果系統把內部硬碟識別爲外置硬碟時(黃色圖標的硬碟)開啓,我們一般選擇NO。
IncreasePciBarSize:解決卡PCIconfiguration,如果碰到請選擇yes,我們選擇no。
注意,一般卡pciconfiguration都是因爲自己錯誤的設置和硬體問題。
LapicKernelPanic:適用於HP筆記本的內核奔潰選項,我們選擇NO。
PanicNoKextDump:防止kext出錯打報告而讓我們看不到真正的panic原因,這個隨便選,我選擇NO。
PowerTimeoutKernelPanic:10.15系統中存在一些設備自身的電源管理無法讓系統進入睡眠而超時,導致內核奔潰,如果有這個問題請選擇YES。
ThirdPartyDrives:開啓Sata類SSD的trim功能,我沒有sata類的ssd,我選擇NO。
自行根據情況選擇。
XhciPortLimit:解除15個埠限制,我選擇YES。
2.5Config—-Misc這裡都是一些開機引導類的設置。
2.5.1Config—–Misc—–BlessOverride這個選項是幫助我們尋找一些不尋常的EFI位置的,除非你有這種情況,不然我們不需要填寫任何東西。
2.5.2Config—–Misc—–Boot ConsoleAttributes:設置開機選擇界面的顏色,默認直接填0。
使用方法爲填入字體顏色和背景顏色的值的16進位之和例如藍色字(0x01)+紅色背景(0x40)=0x41。
色彩選擇如下:0x00—黑0x01—藍0x02—綠0x03—青0x04—紅0x05—艷紅0x06—棕0x07—淡灰0x08—深灰0x09—淡藍0x0A—淡綠0x0B—淡青0x0C—淡紅0x0D—淡艷紅0x0E—黃0x0F—白0x00—背景黑0x10—背景藍0x20—背景綠0x30—背景青0x40—背景紅0x50—背景艷紅0x60—背景棕0x70—背景淡灰 HibernateMode:檢測休眠模式。
我們的機器一般都不支持休眠,選none。
如果你的主板支持原生nvram、並想測試休眠,可以考慮填auto。
HideAuxiliary:在開機選擇畫面隱藏一些輔助項目,比如recovery盤,cleanNVRAM等。
一般我們選擇NO。
PickerAttributes:當你使用OC主題時,你可以通過計算以下數值之和來配合使用OC主題,OC主題至今還在測試階段。
默認填0,你可能使用到的值如下:0x0004簡化主題圖標下的文字0x0008使用老式的圖標 PickerAudioAssist:是否開啓開機朗讀文字功能,一般選擇NO,如果你要開啓,請同時閱讀章節2.8.5和2.8.7的相關音頻設置。
PickerMode:是否使用OC的開機啓動盤選項,如果我們填Builtin就是不使用任何主題;如果我們填External就會調用第三方主題。
*註:目前第三方主題只有https://github.com/acidanthera/OcBinaryData下載,請將下載好的文件如圖放置,同時,你需要將OpenCanopy.efi放入Drivers文件夾下並加載:PollAppleHotKeys:是否開啓一些熱鍵功能,包括Cmd+K;Cmd+S。
我選的是yes。
如果你開機發現鍵盤無法選擇,也選NO,並且刪除OC/Drivers下的AppleUsbKbDxe.efi。
ShowPicker:是否顯示開機啓動盤選項,比如MAC,WINDOWS那些。
我們選擇YES。
TakeoffDelay:開機熱鍵延時,如果你按熱鍵老是老不急按,你可以設置5000到10000之間的值讓你有更多時間按熱鍵。
Timeout:倒計時進入指定硬碟,這裡我們按需求填寫,我填寫5,代表5秒鐘進入指定硬碟。
2.5.3Config—–Misc—–Debug是否開啓debug模式,這裡我們暫時不需要,全部忽略過。
2.5.4Config—–Misc—–Entries這裡是幫助我們添加一些你希望的引導路徑,這個會在之後的進階教程中講,這裡暫時略過不填寫。
2.5.5Config—–Misc—–SecurityAllowNvramReset:是否在開機引導項中加入重置nvram緩存功能的選項,我們選YES。
AllowSetDefault:選擇yes後即可在開機選擇系統頁面中通過Ctrl+enter鍵設置默認啓動盤。
AuthRestart:filevault相關項,選擇NO。
BootProtect:請填寫Bootstrap。
此選項能保證OPENCORE.EFI的永久性而免遭到其他作業系統對開機順位的破壞。
在填寫此項後,你同樣需要保證RequestBootVarRouting是開啓的。
ExposeSensitiveData: 因爲要使用到模擬nvram,這個數值我們必須填3。
如果我們是原生nvram,填寫2。
HaltLevel:按默認設置即可。
ScanPolicy:這裡暫時填0。
我們也許會碰到開機的時候默認進入的系統永遠是WINDOWS,並無法更改,之後我們在進階教程中講述,如何讓MAC盤排在第一個,讓WIN排在後面。
Vault:黑蘋果的vault加密方式,我們不需要這個功能,填Optional。
2.5.6Config—–Misc—–Tools這裡是加入一些開機時候的工具的。
其實我覺得只有重置nvram的工具是有用的,但之前的設置裡面我們已經開啓了,這個選項就沒啥用了,不用理會。
2.6Config—-NVRAM這是關於nvram的選項卡。
2.6.1Config—–NVRAM—–Add4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 UIScale Data <02> //這裡填寫01爲普通的UI顯示模式,02爲開啓HIDPI的UI顯示模式,我選擇02 DefaultBackgroundColor Data <00000000> //默認開機背景色爲黑色7C436110-AB2A-4BBB-A880-FE41995C9F82 boot-args String Slide=1darkwake=0-vvsmcgen=1//slide=1表示從第一組內存開始連續注入;darkwake=0代表一鍵喚醒機器並偏好設置中節能選項的小憩功能。
如果你要用小憩功能請填8;-v是跑代碼,在沒裝好穩定的黑果前我建議加上,方便定位錯誤,弄完後再刪除-v;vsmcgen=1爲macos11專用,以便於暴露smc部件。
bootercfg String log=0debug=0level=0 //這條自己添加進去,是關閉開機時的代碼的。
csr-active-config Data
prev-lang:kbd Data <7a682d48616e733a323532> //語言設置相關,記得改成這個,這個是中文7C436110-AB2A-4BBB-A880-FE41995C9F82 填寫相關RTC屏蔽選項,具體參考AppleRtcRam
2.6.2Config—–NVRAM—–Delete禁用一些nvram變量,我們這裡按默認設置不必理會。
2.6.3Config—–NVRAM—–LegacyEnable如果你的主板不支持原生NVRAM,請一定要選擇YES! 如果你的主板支持原生nvram的,填no。
2.6.4Config—–NVRAM—–LegacySchema這裡是nvram的變量設置,大部分默認已經填好,我們只需添加兩個變量即可。
打開7C436110-AB2A-4BBB-A880-FE41995C9F82這一欄,添加兩個item如下:item11 String efi-boot-deviceitem12 String efi-boot-device-data 2.6.5LegacyOverwrite對模擬nvram用戶來說,將nvram.plist寫入硬體,我認爲不管是原生nvram還是模擬nvram,都選擇no。
2.6.6WriteFlash如果你的主板bios因爲nvram導入垃圾內容,請關閉它,一般都是選擇no。
2.7Config—-PlatformInfo這裡我們填合適的機型。
對於最近一代的主板來說,一般的原則,只有核顯的機器我們選Macmini8,1;只有獨顯的機器我們選擇iMacPro1,1;有核顯和獨顯的我們選擇iMac19,1。
因爲這部分內容太過複雜,其實很多內容都不必要填寫,我們直接刪除Datahub,PlatfromNVRAM,SMBIOS這三項,無需填寫。
2.7.1Config—–PlatformInfo—–Automatic這裡意思是是否自動填寫系統信息。
因爲後面的很多選項都好繁瑣,我們只要認真填幾個選項就行了,這裡我選YES,不重要的信息讓它自動填。
2.7.2Config—–PlatformInfo—–Generic這裡是我們需要填寫的三碼部分。
獲得三碼,我們可以運用一下Clover的CloverConfigurator幫我們生成一下相關的數據:我們換到Rtvariables里,點擊ROM下的生成,獲得一個ROM編號,這樣我們就獲得了所有需要的信息了。
2.7.3Config—–PlatformInfo—–剩餘部分UpdateDataHub:選擇YES UpdateNVRAM:選擇YES UpdateSMBIOS:選擇YES UpdateSMBIOSMode:選擇Create 2.8Config—-UEFI這裡我們需要填寫UEFI相關的設置。
2.8.1Config—–UEFI—-ConnectDrivers是否加載補丁,我們選擇YES 2.8.2Config—–UEFI—-Drivers把我們之前放在OC/EFI/Drivers下面的驅動一一填上,這裡我們也注意一下填入的順序以及文件名的大小寫:Drivers item0 String ........................ ApfsDriverLoader.efi ........................ MemoryAllocation.efi ........................ OpenRuntime.efi ........................ HFSPlus.efi ........................ OpenUsbKbDxe.efi ........................ OpenCanopy.efi 2.8.3Config—–UEFI—-Input此選項是原生apple開機熱鍵的選項,需要配合我們之前設置的PollAppleHotKeys=yes以及AppleUsbKbDxe.efi補丁一起用。
下面的設置完全按照默認情況就行了。
因爲我的鍵盤是蘋果原生鍵盤,不支持這個功能,所以我直接PollAppleHotKeys里填了NO,這裡也不會生效的。
有一點需要說,如果你是華碩的z87或者z97,你需要打開PointerSupport這個選項。
2.8.4Config—–UEFI—-Output ClearScreenOnModeSwitch:消除開機時從圖形模式轉換到文本時出現殘影的問題,如果沒有這個問題我們選擇NO。
ConsoleMode:這裡填主機的輸出方式,一般情況下填MAX,或者留空 DirectGopRendering:是否使用內置顯卡直接渲染開機畫面,建議選擇no。
IgnoreTextInGraphics:修復在不使用-v跑馬模式時候,開機日誌導致的蘋果logo顯示不正確的問題。
如果有這種情況選擇YES,一般我們選擇NO。
ProvideConsoleGop:調用顯卡gop,我選擇YES。
ReconnectOnResChange:一些固件在GOP解析度改變後會重新連接顯示器才能輸出,一般情況下選擇NO。
ReplaceTabWithSpace:一些固件在UEFIShell下TAB功能鍵不生效。
開啓這個會用空格鍵代替。
一般我們選擇NO。
Resolution:開機解析度。
比如我的顯示器是4K、16:9的,我就填寫3840×2160。
這個你根據情況填寫或者不填。
SanitiseClearScreen:修復4k及以上顯示器的輸出問題,選擇YES。
TextRenderer:OC開機代碼字體渲染方式,我這裡填BuiltinGraphics UgaPassThrough:通過uga來代替那些無法使用gop的主板,一般帶uefi的主板以及顯卡請選擇no。
2.8.5Config—–UEFI—-ProtocolOverridesAppleAudio:如果你想要開啓如同白蘋果一樣的開機DUANG的聲音等,請開啓它,並且還需要配合UEFI—-Audio的正確設置。
AppleBootPolicy:虛擬機的mac需要用的,我們選擇NO。
AppleDebugLog:重新安裝蘋果錯誤日誌界面,一般選擇NO。
AppleEvent:虛擬機並具有vault的mac需要用的,我們選擇NO。
AppleFramebufferInfo:爲虛擬機使用,不是虛擬機選擇no。
AppleImageConversion:重建apple圖標,選擇NO。
AppleKeyMap:重建蘋果功能鍵,選擇NO。
AppleRtcRam:重裝applertc協議。
一般選擇NO,如果你要屏蔽相關選項,請在2.6.1章節中添加相關屏蔽項目。
項目可以通過RtcRW提取,或者閱讀此文章來指定你想屏蔽的內容。
AppleSmcIo:代替之前的VirtualSMC.efi,請選擇YES AppleUserInterfaceTheme:重新安裝AppleUserInterfaceTheme協議,選擇NO。
DataHub:重建datahub,這裡我們選NO。
DeviceProperties:虛擬機或者老款的電腦需要選擇YES才能注入deviceproperty,我們選NO。
如果你發現你注入deviceproperty無效,請選擇YES。
FirmwareVolume:VAULT相關項,我們選NO。
HashServices:VAULT相關項,我們選NO。
OSInfo:通知主板以及一些程序關於MAC引導的信息,一般情況選擇NO。
UnicodeCollation:舊的主板需要,我們選NO。
2.8.6Config—–UEFI—-Quirks DeduplicateBootOrder:當RequestBootVarRouting選項爲開啓時,一些其他的作業系統(e.g.windows)可能在某些主板(e.g.ASUS)中會找不到自己的引導而重新創建,最終導致黑果在沒有清理NVRAM的情況下是無法進入系統的,請選擇YES。
ExitBootServicesDelay:舊主板需要給予主板退出時間(單位爲微秒),較新的主板直接填0。
舊的主板比如Z87pro,填3000000-5000000 IgnoreInvalidFlexRatio:如果你沒有在bios中解鎖MSR0x194,一定要選YES。
ReleaseUsbOwnership:大部分的主板都有自動釋放USB所有權的功能,我們選NO。
如果你開機鍵盤滑鼠卡死了,或者USB失靈,試試選Yes。
RequestBootVarFallback:一些固件會主動掃描系統啓動盤的位置而阻止OC掃描,如果碰到這樣的問題選擇YES,一般這個BUG在華碩的主板中比較常見。
RequestBootVarRouting:增加」啓動磁碟」的可靠性,這裡選擇YES。
TscSyncTimeout:幫助一些X99X299的主板開啓全核同步功能。
此選項旨在代替TSCAdjustReset.kext等類似補丁,推薦的值是500000。
但是此選項並不能在睡眠喚醒後生效,所以請填寫默認值0,並使用TSCAdjustReset.kext來做全核同步。
UnblockFsConnect:惠普筆記本可能會讓OC無法掃描到啓動項,一般選擇NO,如果你是惠普筆記本,請選擇YES。
2.8.7Config—–UEFI—-AudioAudioCodec:填寫音頻音效卡in節點,一般爲數字10,20,33之類的。
可以用此軟體提取。
PinConfigurator2.2.2漢化版 AudioDevice:填寫你音效卡的路徑。
這裡我們填寫章節2.3.1中尋找到的音效卡路徑。
這裡我填了PciRoot(0x0)/Pci(0x1f,0x3),請按你自己的實際情況填寫。
AudioOut:音頻音效卡out節點,一般爲數字10,20,33之類的。
AudioSupport:是否開啓黑蘋果的開機提示音支持。
如果你選擇YES,後面的內容你必須認真看,不支持DP類的數字音頻。
MinimumVolume:聲音音量。
範圍在0-100之間,默認是20。
PlayChime:如果要使用開機duang聲音,請選擇YES。
VolumeAmplifier:按照默認設置。
注意,如果你選擇開啓音頻提示音,你需要下載此壓縮包,解壓後放到OC/目錄下,如圖。
2.8.8Config—–UEFI—-APFSEnableJumpstart:從APFS容器中加載內置APFS驅動,建議開啓YES。
此選項仍然依據你的Scanpolicy來做出決定,請確保在Scanpolicy中放開APFS格式。
GlobalConnect:一些主板需要選擇yes才能完全加載APFS,比如HP筆記本。
一般我們選擇NO。
HideVerbose:是否隱藏囉嗦模式,一般我們需要看日誌的時候才開啓,所以我們選擇隱藏,選擇YES。
JumpstartHotPlug:是否加載APFS格式的熱插設備,一般我們選擇YES。
MinDate:加載最低發行的APFS格式。
一些舊的apfs可能會危害電腦,我們填0。
如果你想加載舊的發行日期的APFS格式硬碟,請填-1。
MinVersion:加載最低版本的APFS格式。
填0代表從HIGHSIERRA開始加載。
填-1代表所有版本,建議填0。
2.8.9Config—–UEFI—-ReservedMemoryProperties此項爲保留內存所用。
一些硬體會把硬體EFI寫進內存過程中占據必要的UEFI運行空間,所以我們可以通過此項來預留內存來保證UEFI的運行。
填寫方式可以參考小兵的文章。
來尋找指定內存的起始位置,以4K爲一個節點。
一般情況下,此項我們並不需要理會。
2.9小節到這裡,我們應該可以通過OC正確引導MACOS了,但是還有很多問題需要去修補,包括模擬nvram,尋找EC控制器,原生的電源管理等。
3.0OpenCore完善3.1模擬NVRAM對OC而言,NVRAM是非常核心的一環,不管是原生還是模擬的。
如果你是原生nvram的主板,請不必理會這章節。
這張的主要內容爲生成模擬的NVRAM.plist。
sudodefaultswritecom.apple.loginwindowLogoutHook/Users/你的用戶名/Documents/LogoutHook/LogoutHook.command比如:sudodefaultswritecom.apple.loginwindowLogoutHook/Users/xjn/Documents/LogoutHook/LogoutHook.command 3.2建立自己的開機選擇系統目錄非原生nvram用戶必須完成以下幾點:通過3.1的教程建立nvram.plist.確保OpenCore的版本爲2019年11月20日之後的。
更新OpenCore替換BOOT/BOOTx64.efi以及OC/OpenCore.efi即可。
確保AppleSupportPkg版本爲2.1.4以及之後,可以在我這裡提供編譯好的。
確保config.plist下/Misc/Security/ExposeSensitiveData=3 ; Booter/Quirks/DisableVariableWrite=True/YES ; NVRAM/LegacyEnable=True/YES 確保文件夾OC/Drivers/下沒有VariableRuntimeDxe.efi 如果你是華碩的非原生nvram主板,你還需要做(此文件由羣友@哞提供): 在保證以上要素後,打開系統偏好設置---啓動磁碟,選擇你想要設置爲默認啓動的啓動磁碟即可。
3.2.1以及3.2.2也是排列啓動盤開機進入順序的,比較麻煩,不推薦。
3.2.1第一部分我們首先要對Config—Misc—Security—scanpolicy這個值進行修改,默認的是0,代表著掃描所有硬碟,而我們現在只讓它掃我們的蘋果系統硬碟。
感謝@xlivans提供的OC掃描策略:## OC-引導掃描策略– 設置位置:`Misc\Security\ScanPolicy`–**定義:** (01)0x00000001—限定爲文件系統,由以下`允許掃描文件系統子項`開啓 (02)0x00000002—限定爲設備類型,由以下`允許掃描設備類型子項`開啓 `允許掃描文件系統子項`: (03)0x00000100—允許掃描APFS文件系統 (04)0x00000200—允許掃描HFS文件系統 (05)0x00000400—允許掃描EFI系統分區文件系統 `允許掃描設備類型子項`: (06)0x00010000—允許掃描SATA設備 (07)0x00020000—允許掃描SAS和MacNVMe設備 (08)0x00040000—允許掃描SCSI設備 (09)0x00080000—允許掃描NVMe設備 (10)0x00100000—允許掃描CD/DVD設備 (11)0x00200000—允許掃描USB設備 (12)0x00400000—允許掃描FireWire設備 (13)0x00800000—允許掃描讀卡器設備 `掃描策略數值`=(01)+(02)+1個或數個`允許掃描文件系統子項`+1個或數個`允許掃描設備類型子項` 例如:希望掃描對象是APFS文件系統的USB設備,`掃描策略數值`=(01)+(02)+(03)+(11),經16進位加法計算得出,`掃描策略數值`=`0x200103`。
`注意`,使用時需將16進位轉換爲10進位。
示例最終`掃描策略數值`=`2097411`– 幾種掃描策略 – `F0103` —官方推薦值:(01)+(02)+(03)+(06)+(07)+(08)+(09) 最終`掃描策略數值` = `983299` – `0`—允許掃描所有已知文件系統+允許掃描所有已知設備類型。
– `2F0303` —官方推薦值+允許掃描HFS文件系統+允許掃描USB設備 最終`掃描策略數值` = `3080963` 我們這裡讓OC只掃描MAC盤。
根據說明,(1)+(2)是必須選的;因爲我的MAC是APFS,所以系統子項類我選(3);我的MAC是安裝在NVME上的,所以我在設備類型上選擇(09),如果你是安裝在sata盤上的,你應該選(6)。
這樣我們的公式就是:(1)+(2)+(3)+(9)=0x00000001+0x00000002+0x00000100+0x00080000 拿起蘋果自帶的計算器,按住coomand+3切換到編程型計算器,並轉換到16進位模式:輸入:1+2+100+80000=80103得到數值後,我們再按一下轉換10進位的按鍵,得出524547這個數值。
我們把524547填到scanpolicy中,重啓,你就會看到第一個選項就是你的MAC盤了。
但如果你還安裝了WINDOWS什麼的,選項中卻沒有了,別急,我們現在要把WIN的引導添加到mac的後面去。
注:似乎oc還不能引導ubuntu,請用Bios快捷鍵進入,未證實。
3.2.2第二部分現在我們要在開機畫面中,將其他的一些系統排在mac後面。
此項能需要你下載debug版本的Opencore,請在文章開始部分提到的Opencore程序下載界面進行下載,並備份好你目前的EFI。
首先我們需要把下載好的Opencore-Debug版本裡的efi/boot/BOOTx64.efi以及efi/OC/OpenCore.efi兩個文件替換到你正在使用中的EFI里去。
用XCODE修改你正在使用的EFI/OC/Config.plist,修改內容如下:Misc Debug DisableWatchDog Boolean YES Target Number 65 Security ScanPolicy Number 0 //這裡我們要先改爲0來尋找windows的地址,之後找到後改回之前算出來的即可 接著,我們需要尋找你其他系統的UUID,我們打開終端,輸入:diskutillist 我們找到你需要的盤的盤名,比如我的windows在disk0這個位置,而引導WIN的EFI文件夾的盤位是disk0s1。
注意,這裡我們不討論Gpt格式的WIN引導位置該在哪裡,如果你實在不清楚,可以把disk0s1以及dsik0s2都記錄下來。
接著輸入:diskutilinfodisk0s1在輸出內容里,我們需要的是Disk/PartitionUUID,我的是FF555974-AB3F-40B7-8530-AE6462E197CE,把它記下來。
現在我們通過oc的開機選項直接重啓到windows,我們打開diskgenius,並且到我們mac的EFI盤符下,我們看到有一個日誌報告opencore-xxxxx-xxxxx生成,爲了好記,我們右鍵把它改名叫111.txt。
重啓回到mac,加載efi分區,打開剛才的111.txt,我們搜索剛才記錄下來的FF555974-AB3F-40B7-8530-AE6462E197CE,我們搜到如下內容,而標註的即是WINDOWS的引導路徑:把之前我們備份好的EFI,全部替換回去。
把disablewatchdog,target,scanpolicy都改回原來的。
這樣我們的EFI又回到正式版本了,而不是DEBUG版本了。
打開config,我們把win的引導路徑添加到misc—-entries,並在此下面添加一個item,輸入如圖內容:保存即可,重啓後,你會看到windows10放在了mac的下面。
tips:你可以在config—-misc—boot—showpicker選擇no,就不會看到選擇界面了,而當你需要時,只需要在開機時候按住option或者esc就可以喚出選擇界面了,非常白果的體驗哦。
3.3提取DSDT提取DSDT是我們之後完善系統的必需品,沒有他我們無法找到相關的硬體位置,我們可以通過Clover直接提取,這裡我們需要一個空的U盤。
我的教程是非常偏向小白的,所以這裡提取我也會用到windows,以及Diskgenius這個軟體,做最簡單的示範。
3.4加載原生電源管理在提取dsdt後,我們可以得到相關里硬體名字及目錄,這樣我們就可以加載原生電源管理。
這裡非常感謝憲武大大在ssdt這塊的付出成果!我們先下載一下憲武大大的OC-SSDT包。
以下的內容,你需要文章開始階段提供下載的MaciASL以及剛才提取的DSDT.aml 用MaciASL打開DSDT.aml搜索你cpu的名字。
一般情況下,CPU的名字可能是: PR.CPU0,PR.P000,PR.PR00,SB.CPU0,SB.P000,SB.PR00, SCK0.C000, SCK0.CPU0。
請依次搜索直到找到自己的CPU名字,比如我的就是SB.PR00打開憲武大大的OC-SSDT包,到x86目錄下,我們看到憲武大大已經把大部分不同名字的CPU的dsl文件都做好了。
我的cpu名字叫SB.PR00,我直接打開SSDT-PLUG-_SB.PR00.dsl這個文件,左上角另存爲(saveas),其中文件格式(fileformat)必須選擇ACPIMachineLanguageBinary,文件名字隨便寫吧,我就叫plug-xcpm.aml,記住後綴爲aml。
將plug-xcpm.aml放入EFI/OC/ACPI下,並在config.plist中添加加載此aml文件:
3.5加載節能五項節能五項是白果台式機中,偏好設置—節能中的選項。
在加載原生電源管理後,我們一般有4項節能出現,而第五項「斷電後重啓」這項還需要加載PPMC以及LPCB下的PMCR才能出現。
雖然說這項功能沒啥鳥用,但對於強迫者而言,少一個一定很難受吧。
如果你是筆記本,不需要看這章,白果筆記本本身就沒有。
直接下載SSDT-PM.aml載入即可。
這個裡面的內容我不想解釋了。
SSDT-PM.aml 3.6MacOS10.15下解鎖S/L/E目錄在10.15系統中,儘管你已經通過config解鎖了SIP,但系統目錄仍然需要命令去開啓。
這裡羣友bugprogrammer給出了一個一勞永逸的解決方案,請到他的博客中查看方法:解鎖macOS10.15的系統分區 3.7關於EC控制器EC控制器是電腦自帶的一個叫embeddedcontroller的部件。
在10.15的系統環境中,筆記本電腦必須重命名原來的EC,而一些台式機主板則需要禁用。
下面我會分開來講解如何禁用EC、如何加載USB電源管理支持。
3.7.1禁用EC控制器之前我在2.1.3章節中提供了重命名這種方式去講EC0更名爲EC,其實這種方法是只適合筆記本的,台式機最好還是禁用EC。
我這裡會把筆記本重命名EC以及台式機禁用EC寫在一起。
打開之前提取出來的DSDT.aml,搜索PNP0C09,這裡我搜到我的ec真實名字叫做H_EC,你的可能叫EC0或者別的什麼奇怪的名字。
這裡我可以看到我的H_EC已經是屏蔽掉的,怎麼判定,你看下面有一個Return(Zero),意味著這個部件是不生效的,即禁用。
這樣的情況我們不需要做任何SSDT去禁用這個真的EC。
那麼什麼樣的情況是需要我們去屏蔽的呢?我發現基本上華碩的台式機主板都會啓用這個EC控制器,這裡我截圖了一張華碩主板的EC部件圖,我們同樣在DSDT中搜索PNP0C09,我們看到這種情況下,這個叫EC0的EC控制器是開啓的,注意他沒有return(Zero)這個語句,我們需要通過SSDT去屏蔽它。
這裡我提供了一個禁用EC0的補丁,請直接下載,打開後左上角另存爲(saveas),其中文件格式(fileformat)必須選擇ACPIMachineLanguageBinary,文件名字隨便寫吧,我就叫ssdt-no-EC.aml,記住後綴爲aml。
記得將ssdt-no-EC.aml放入EFI/OC/ACPI下,並在config.plist中添加加載此aml文件。
SSDT-no-EC.dsl如果你的EC名字叫H_EC或者別的什麼的,你打開這個.dsl文件,改一下圖中紅線中的字即可。
對筆記本而言,我們不能禁用EC,因爲禁用EC後會直接導致筆記本沒有電池。
那麼我們怎麼去重命名EC呢?按照上面提到的方法,找到你EC的真實名字,在章節2.1.3中我提供了假如你的筆記本的EC叫做EC0時候的重命名辦法,那如果你的EC叫別的亂七八糟的名字呢?我們先找到你的EC名字,比如你的EC叫做H_EC,我們打開在線的HEX轉換器,輸入H_EC,並點擊下面的16進位轉換,就可以看到轉換出來的值是485F4543,把這個值替換到find這個選項卡中就行了。
你也會注意到,EC的hex-16進位爲45435F5F,剛好是Replace的值。
這就是一個非常簡單實用的OC重命名。
但切記!OC萬不得已不要用重命名!筆記本的EC是實在沒有辦法。
Comment:H_ECtoECCount:0Enabled:YESFind:<485F4543>Limit:0Mask:<>OemTable:<>Replace:<45435F5F>ReplaceMask:<>Skip:0TableLength:0TableSignature:<> 3.7.2 USBX供電開啓apple自家的快速充電,這個需要設備支持此功能。
你可以比較下面兩張圖,顯然第二張是正確的。
從10.15開始,USB電源的控制被直接分配到了IOResources上面:我們只需要一個簡單的KEXT補丁來加載它USBPower.kext請你確定你已經用hackintool定製了你的usb口,並使用了usbports.kext(或者你直接實用USBInjectAll也行)!而不是ssdt類的定製,ssdt類的埠定製並沒有對win進行判斷請不要用!如何定製自己的usbports.kext,請看黑果小兵的視頻教程:https://www.bilibili.com/video/av38860673下載這個KEXT補丁,你可能需要對補丁進行修改才能用。
右鍵kext顯示包內容,一直點進去,直到打開info.plist。
我們展開IOKitPersonalities_x86_64,可以看到機型是iMac19,1,請把它改成你正在使用的機型,把補丁放入OC/kexts下,並在config.plist中加載這個補丁,重啓即可。
3.8RTC相關問題在之前的教程里我提供了一個rtcfix的重命名補丁(見2.1.3章節)。
對OC而言,重命名就是比較忌諱的,而且我也非常討厭重命名,所以這個不能忍啊!因此,我們現在需要通過對RTC進行修復,來拋棄那個RTC重命名補丁。
在一些主板中,自帶了AWAC部件,這個部件對於RTC來說是互相反鎖的,我們必須禁用AWAC才能啓動RTC,從而去掉之前使用的重命名補丁。
如何去確定你的ACPI中有AWAC,打開IORegistryExplorer,我們查找AppleACPIEventController欄目下有沒有AWAC這個部件,下面截圖中是有AWAC這種情況:這裡我們直接使用憲武大大提供的ssdt,放入acpi目錄下並在config中載入即可。
(這個包是憲武大大在羣裡面發的最新版,他的github還未更新此文件,目前是10月28日)。
加載此補丁後,你再打開IORegistryExplorer,你會發現awac已經沒有了,並且多出了一個rtc部件,表示此補丁生效,並且你也可以刪除之前在config裡面添加的rtcfix補丁。
SSDT-RTC_Y-AWAC_N.aml 3.8.1華碩X99及X299的RTC問題首先華碩的主板儘可能不要使用3xxx系列的bios版本,因爲更新比較大且無意義,我是在沒時間去整理新版本的acpi。
打開你的dsdt,搜索PNP0B00,如果發現內容如下,你需要修改你的rtc。
Device(RTC){ Name(_HID,EisaId("PNP0B00"))//_HID:HardwareID Name(_CRS,ResourceTemplate()//_CRS:CurrentResourceSettings { IO(Decode16, 0x0070, //RangeMinimum 0x0070, //RangeMaximum 0x01, //Alignment 0x02, //Length ) IO(Decode16, 0x0074, //RangeMinimum 0x0074, //RangeMaximum 0x01, //Alignment 0x04, //Length ) IRQNoFlags() {8} })}
上面的代碼中我們可以看到它把rtc資源分割成了兩個部分:從0x0070到0x0072之前,以及0x0074到0x0078之前。
這意味著0x0072以及0x0073被遺漏了。
因此我們需要填補以保證macos11的運行。
我們使用以下補丁(補丁來自OC-Little)DefinitionBlock("","SSDT",2,"ACDT","RTC0",0){ External(_SB.PCI0.LPCB,DeviceObj) Scope(_SB.PCI0.LPCB) { Device(RTC0) { Name(_HID,EisaId("PNP0B00")) Name(_CRS,ResourceTemplate() { IO(Decode16, 0x0070, 0x0070, 0x01, 0x08, ) IRQNoFlags() {8} }) Method(_STA,0,NotSerialized) { If(_OSI("Darwin")) { Return(0x0F) } Else { Return(0) } } } }} 我們根據自己的dsdt來修改,比如我的rtc位置在DSDT>_SB>PC00>LPC0,那麼我就把對應的PCI0改爲PC00;把LPCB改爲LPC0。
已經修改好的在這裡下載,具體位置請根據自己主板dsdt對應填入,並放入OC/ACPI下,並在config.plist中加載此ssdt。
SSDT-RTC0.aml 3.8.2華碩等一些主板開機卡F1的問題這篇文章的內容有點零散,我把這部分的內容寫到了3.11.1章節。
3.9FCPX加速FCPX在黑果下主要有兩個問題:1.核顯無法拉到最滿的1.2GHZ,獨顯尤其是vega晶片的顯卡不滿載工作,看戲。
這裡我們主要針對具有核顯和獨顯的機器進行優化(只有核顯或者只有獨顯的不用試了),讓核顯跑滿速度,提升整個FCPX的效率。
至於只有獨顯的機器,我暫時沒有找到比較好的方案,這也是我爲什麼不推薦買帶f的cpu,畢竟黑果沒有t2晶片,我們需要核顯來支撐一些東西。
提示:z170,z270,z370因BIOS缺陷可能無法使用。
這本來是一個比較繁瑣的教程,多虧了羣友@Bugprogrammer將whatevergreen簡化了:博主魔改版Whatevergreen解析,還你正常核顯頻率(1.2g)這裡我已經幫大家編譯好了,把原版的whatevergreen替換了就行了。
此WhateverGreen.kext保留了AGDP黑屏補丁、開機紫條補丁以及改名補丁,非常精簡。
現在看核顯(GFX)整個工作效率都能維持在1.2GHZ上,(我這裡對CPU做了優化,可能實際沒我這麼誇張)如圖: 此方法比較過時了,拉高核心顯卡的方法,請使用原版Whatevergreen,並在boot-args中加入igfxfw=2。
什麼?效率還是不夠高?大哥是開影視工作室的嗎!?好吧,請看「CPU的變頻優化」這章,記得CPU要有水冷哦! 3.10睡眠即醒的相關問題睡眠即醒很大程度上跟USB的定製相關,一般一個好的USB定製就能解決睡眠即醒的問題。
當然系統的更新,MacOS的也在做不斷的調整,比如藍牙不能在HUB下進行內建,比如雷電卡必須將4個埠全部內建才行,等等。
甚至有些時候我們都不知道爲什麼黑果會睡不著,那有沒有一個辦法讓黑果強制睡眠呢?答案是有的。
經過我的摸索,有幾種方法能達到強制睡眠的效果,只是方法不同而已,但主要圍繞的還是0d/6d的數值來做一些工作。
那剛好,這些方法涉及了很多黑果領域的一些小技巧,我也順便展示給大家。
注意:0d/6d補丁的本質是阻止一些部件參與喚醒工作,這其中包括了xhc部件,這意味著你無法使用滑鼠鍵盤喚醒,只能用電源鍵喚醒。
若你有一組除了xhc之外的usb控制器,那把鍵盤滑鼠插在那兩個控制器上,這樣可以即使用強制睡眠,也仍然可以鍵盤滑鼠喚醒電腦。
3.10.1 方法一:OC版本的0D/06補丁300系列的主板一般有5個部件是直接參與喚醒工作的,這五個部件分別是XHC(USB控制器)、CNVW(CNVI網卡,如果你的主板自帶的話)、GLAN(有線網卡)、XDCI(USB相關)、HDEF(音頻)。
舊的一些主板可能會有不同的命名,比如XHC有叫EH01,HDEF叫做HDAS等,這裡不做討論。
而這些設備往往會直接影響睡眠,比如你輸入小兵哥哥經常說的這個命令:logshow--last1d|grep"Wakereason" 我們有時候會看到如下結果:那麼即是這兩個部件導致了睡眠出現了問題。
於是,我們用幾種方法去屏蔽或者說修改這些部件,來達到電腦正常睡眠的效果。
我們打開之前提取的SSDT,隨便搜索五大部件中的一個,比如說XDCI:我們主要是看上圖中XDCI下的_PRW屬性值,可以直接看到Return的值爲GPRW(0x6D,0x04)。
其中6D這個數值看主板而定,有些主板叫做0D,而後面04這個值的含義爲S4級別的電源管理,即休眠甚至關機情況下的喚醒;有些後面的數值是03,代表著S3級電源管理。
這個我打一個大家比較熟悉的例子,GLAN這個部件的PRW值也是0x04,爲什麼要是04呢?因爲這樣我們可以使用遠程通過網絡啓動主機功能。
那說了這麼多,我們到底要做什麼呢?我們要做的就是屏蔽掉他們,不讓他們參與主機喚醒這個工作。
這樣可以徹底解決睡眠即醒的問題。
首先通過DSDT里確定你的返回值到底是0D還是6D,比如我這裡返回的是6D,就記住自己是6D的。
照舊打開憲武大大的OC-SSDT包,打開目錄下的0D6D補丁包,看到兩個plist的更名文件,我是6D的就直接實用6D更名補丁,打開我們看到兩個patches,一個是把03(即S3級別電源管理)改名爲00(即取消它的參與喚醒工作)。
另一個是把04(S4級電源管理)改成00(取消它的參與喚醒工作)。
整個過程其實很簡單,就是把憲武大大的兩個補丁加到自己的CONFIG里去而已。
這裡主要運用的方法是HOTPATCH的重命名功能。
3.10.2 方法二:沿用Clover版本的0D/06補丁&展示TgtBridge在OC下的用法憲武大大做的clover版本的0d/6d補丁,其實沒啥必要講,只是有留言問了tgtbridge在oc下怎麼用,那我就展示一下吧。
這個補丁原理是一樣的,通過重命名的方式改_prw。
直接下載憲武大大的cloverhotpatch補丁包,打開「11-1-睡了即醒(0D/6D)補丁」下的plist文件,按照clover的方式,其實把這些補丁直接拖到clover下就行了。
那我們拿出一組數據來講解怎麼把它翻譯成oc版本:Comment String XHC:_PRWtoXPRWDisabled Boolean True//此補丁並未生效,這裡要改成false才會生效Find 5F505257 //hex轉text的含義即是:_PRWReplace 58505257 //hex轉text的含義即是:XPRWTgtBridge 5848435F //hex轉text的含義即是:XHC_這裡我來解釋一下,這組改名是對xhc下的PRW進行改名爲xprw,這樣的話,之前prw下的(0x6D,0x04)即不生效了。
而指定xhc的方法即是使用了tgtbridge,因爲整張dsdt上有幾十上百個_PRW,你必須通過tgtbridge來指定到底是哪一個部件的_PRW。
那麼OC到底怎麼使用tgtbridge來特定某一部件下的內容重命名呢?我們先把上面一段clover的補丁轉換成oc的版本先吧:Comment String XHC:_PRWtoXPRWCount Number //需要重點解釋 Enabled Boolean True //表示應用此補丁,不應用選False Find Data 5F505257 //hex轉text的含義即是:_PRWLimit Number 0 //這個按默認即可不去管他Mask Data <> //這個按默認即可不去管他OemTableId Data <> //這個按默認即可不去管他Replace Data 58505257//hex轉text的含義即是:XPRWReplaceMask Data <> //這個按默認即可不去管他Skip Number //需要重點解釋TableLength Number 0 //這個按默認即可不去管他TableSignature Data 44534454 //hex轉text的含義即是:DSDT,這裡按默認即可,代表對dsdt進行修改 這裡就是一個還沒全部翻譯好的oc版改名xhc的prw。
那麼如何定位xhc下的_prw呢,主要是填寫Count和Skip。
其實oc的tgtbridge是通過一個個數過去來定位具體哪一個位置的。
比如xhc的prw是整張dsdt裡面的第55個,那skip填54,意味著跳過前54個,從第55個開始執行。
那執行多少次呢?執行一次count就填1;比如你要同時改第55個和56個,那count就填2。
說了這麼多,我來實操一下吧: 打開dsdt,在左下角直接搜索_PRW,就能把整張表的_PRW篩選出來了:我總共數了一下,一共有56個_PRW。
我們再在主內容欄上按command+f搜索xhc,直接找到xhc的_PRW,剛好我們看到我的xhc實在整張表的倒數第4個,也就是正數第53個:那麼我們就可以補充完整張表了:Comment String XHC:_PRWtoXPRWCount Number 1Enabled Boolean TrueFind Data 5F505257Limit Number 0Mask Data <>OemTableId Data <>Replace Data 58505257ReplaceMask Data <>Skip Number 52TableLength Number 0TableSignature Data 44534454 如果你想第53、54、55個都改掉,那count就寫3,意味著順序執行3次。
好了,就這樣,有問題留言。
3.10.3 方法三:配合SSDT+重命名的強制睡眠補丁(重點推薦)我之前也提過,我是一個比較反對在oc下進行直接重命名的用戶,如果真的要用重命名,也一定是搭配ssdt去做重命名,所以這個方法也是憲武大大和我最推薦的一種方法。
打開憲武大大的OC-SSDT包,找到0D/6D文件夾,打開SSDT-GPRW.dsl。
我來解釋一下裡面的內容////InconfigACPI,GPRWtoXPRW//Find: 4750525702//Replace: 5850525702 //這裡提示你要應用這個補丁,你必須在config中的ACPI-PATCH裡面加入如上重命名內容 //DefinitionBlock("","SSDT",2,"ACDT","GPRW",0){ External(XPRW,MethodObj) //尋找dsdt表中叫做XPRW的內容,這是要你在config中先把gprw改名成xprw才會生效,這就是爲什麼這個補丁的重命名必須是這個ssdt和重命名一起用的原因,你第一個重命名不生效,這個ssdt也不會生效。
Method(GPRW,2,NotSerialized) { If(_OSI("Darwin")) //爲了不破壞dsdt完整性,這裡做了系統判斷,當你運行windows的時候,此ssdt不生效 { If((0x6D==Arg0)) //如果你的dsdt中是6D進行判斷 { Return(Package() { 0x6D, Zero }) } If((0x0D==Arg0)) //如果你的dsdt中是0D進行判斷 { Return(Package() { 0x0D, Zero }) } } Return(XPRW(Arg0,Arg1)) //當運行mac系統時,如果你的dsdt中XPRW爲6d,或者0d時返回爲0,即屏蔽。
}} 這個ssdt不需要你改任何內容,打開後左上角另存爲(saveas),其中文件格式(fileformat)必須選擇ACPIMachineLanguageBinary,文件名字就叫,記住後綴爲aml。
記得將ssdt-gprw.aml放入EFI/OC/ACPI下,並在config.plist中添加加載此aml文件:並且,我們需要在ACPI—Patch中增加一條配合此ssdt的重命名:3.10.4 方法四:從白果DSDT中學習到的睡眠補丁最近羣友在看白果的dsdt中發現白果的5大部件_PRW值都是(0x69,0x03)。
那麼何不試試把這5大部件的s4級電源管理都改成s3級呢?實踐證明在某一些機器上把04改成03是有效的,方法如下:3.11OC官方內核補丁集介紹這裡會長期更新OC官方提供的KernelPatch(KP)補丁。
3.11.1華碩等機型開機卡F1注意此kp補丁只對10.14.4以上系統版本生效,舊的我懶得提供了,需要留言。
Kernel Patch Item0 Base String Comment String f1patch(隨便填,好記就行) Count Number 1 Enabled Boolean Yes或者True Find Data 75330fb7 Identifier String com.apple.driver.AppleRTC Limit Number 0 Mask Data MaxKernel String MinKernel String Replace Data eb330fb7 ReplaceMask Data Skip Number 0 如果你使用以上補丁仍然卡F1,你有必要使用RTCMemoryFixup.kext這個補丁對CMOS內存進行修補。
我們將此kext放入OC/Kexts下面,並在config中加載它。
一般來說,我們CMOS的總內存池是從00-FF(這個是16進位,換算成10進位就是從0-255),我們可以通過增加boot-args:rtcfx_exclude=00-FF來完全屏蔽cmos(當然這樣寫你完全失去了cmos記憶的功能了)我們需要通過二分法來定位你出錯的cmos位置。
把00-FF分成兩部分,也就是00-7F以及80-FF。
我們分別填一次rtcfx_exclude=00-7F以及rtcfx_exclude=80-FF,試試看開機還有沒有卡F1。
比如說我使用的rtcfx_exclude=80-FF是不卡f1了,那我們繼續對80-FF進行拆分爲:0x80-0xBF 和 0xC0-0xFF。
以此類推,直到你拆分到最後的那一段位置位置。
是不是覺得超級麻煩,我也這麼覺得。
3.11.2系統版本10.15.2開始無法自動進入睡眠補丁在@Bugprogrammer的qq羣中曾推廣過使用SSDT-SBUS.aml來解決這個問題,有些人可以自動睡,有些人不行,我也不知道爲什麼,我甚至不知道爲什麼新主板要加這個補丁。
如果你用了有效那就用吧。
除此之外,OC官方推薦開啓小憩後可以自動睡眠,但小憩帶來的問題是它會自動醒,OC提供如下補丁來解決這個問題:Kernel Patch Item1 Base String __ZN8AppleRTC18setupDateTimeAlarmEPK11RTCDateTime Comment String RTCWake(隨便填,好記就行) Count Number 1 Enabled Boolean Yes或者True Find Data Identifier String com.apple.driver.AppleRTC Limit Number 0 Mask Data MaxKernel String MinKernel String Replace Data c3 ReplaceMask Data Skip Number 0 3.11.3關機卡RTCKernel Patch Item2 Base String __ZN8AppleRTC14updateChecksumEv Comment String DisableRTCckpoweroff(隨便填,好記就行) Count Number 1 Enabled Boolean Yes或者True Find Data Identifier String com.apple.driver.AppleRTC Limit Number 0 Mask Data MaxKernel String MinKernel String Replace Data c3 ReplaceMask Data Skip Number 0 3.12300系列主板開啓原生NVRAMOC在0.5.5正式版開始支持300系列的原生nvram。
首先打開你的dsdt,搜索001F0000,確定自己的下載SSDT-PMC.dsl,根據自己的dsdt編輯相關內容:左上角另存爲(saveas),其中文件格式(fileformat)必須選擇ACPIMachineLanguageBinary,文件名字隨便寫吧,我就叫ssdt-pmc.aml,記住後綴爲aml。
記得將ssdt-pmc.aml放入EFI/OC/ACPI下,並在config.plist中添加加載此aml文件。
如果你之前模擬過nvram,請執行以下命令刪除相關模擬內容:#刪除文件LogoutHook.commandsudorm-rf$(sudodefaultsreadcom.apple.loginwindowLogoutHook)#清空LogoutHook的觸發設置sudodefaultsdeletecom.apple.loginwindowLogoutHook刪除EFI下的nvram.plist。
同時你需要對config.plist進行設置:NVRAM—LegacyEnable選擇no/falseNVRAM—LegacyOverwrite選擇no/falseBooter—Quirks—-DisableVariableWrite選擇no/false你也許要打開NVRAM—WriteFlash選擇YES(請儘可能不要選!)4.0OpenCore進階以下內容對你正常使用黑蘋果已經無關了,如果你追求更好的黑果表現,可以看下去,但這部分內容也需要你自己有更好的能力與耐心。
如果你不具備足夠的條件,我不建議你看下去;如果你的失誤導致硬體的損壞,我也不會、也沒能力負責。
4.1CPU的變頻優化此章節對你的要求會相對高一點,並且請你具備如下條件: 在Intel四代之後,蘋果引入了新的內核級電源管理方式:XCPM(XNUCPUPowerManagement),這種新的管理方式可以高效地管理電源及變頻。
同時,蘋果也推出了HWP(HardWarecontrolledPerformancestates),這種技術可以快速根據特定程序的需求,作出變頻轉換。
我們這個章節,本質上就是在加載XCPM的情況下,調整HWP來優化CPU的變頻。
同時我要說的是,我在論壇上看到很多所謂的「變頻」,有的甚至加載了50多個檔位的變頻,其實這種是完全沒有意義的。
我認爲,變頻是能在你需要的高頻的時候快速進入高頻狀態,在關閉程序後又能很快回到低檔位,換句話說,其實只需要三個檔位就高了:睿頻檔,正常頻率,以及低頻檔。
cd~/desktopmkdircpucdcpugitclonehttps://github.com/corpnewt/CPUFriendFriend.gitgitclonehttps://github.com/acidanthera/CPUFriend.gitcp~/desktop/cpu/CPUFriend/tools/ResourceConverter.sh~/desktop/cpu/CpuFriendFriend/CPUFriendFriend.command 填完前兩段後,它會要求你填寫EPP值,EPP值越低,性能表現越強。
我們是填的前兩段的低頻率部分,我們可以選擇節能型的,比如0x80,如果你想極致性能,可以填0x00。
cp~/Desktop/cpu/CpuFriendFriend/Results/*.*~/Desktop/cpu cd~/Desktop/cpu./ResourceConverter.sh--kext~/Desktop/cpu/Mac-AA95B1DDAB278B95.plist注意命令行中Mac-AA95B1DDAB278B95.plist,請替換成你自己的文件名,這樣我們就可以在桌面的CPU文件夾下拿到CPUFriendDataProvider.kext ◆其他能找到我們的地方◆🌐YouTube頻道:SM瞳影新遊記🌐推特主頁:@SMQQ1792006556【致力於YouTube粉絲打造的】🌐微信公衆號:SM瞳影新遊記【由於內地言論ai技術管控再次加強,瞳影和五步不再此公衆號上傳情感文章,以YouTube社區爲主,公衆號爲科技文和金融】🌐ins主頁:smtyxyj 【致力於YouTube粉絲打造】🌐科技號QQ:3368340171 【SSR節點以及tor訪問解決】📨郵箱:[email protected](科技號)🌐私人QQ號:1792006556🌐wechat:tongyingmoshuios&安卓秒變神機請在公衆號回復 神機規則獲取YouTube視頻下載請在公衆號回復 下載 獲取掃碼即可得到你更多想知道的 (私人定製節點服務)我們都知道有一種心理遊戲,叫做Trust Me(信任我),它是如何進行的呢?一個人往後倒,另一人在身後接住。
這個遊戲其實包含一些危險因素——如果身後的人沒有及時出手,那麼倒下的人就會受傷。
但如果前面的人完全信任身後的人,選擇毫不猶豫地向後倒下,又實實在在被後者接住,那麼這種心理上的愉悅,是其他任何活動都無法複製的。
。
相關焦點
外星人黑蘋果clover/opencore收集
alienwarehackintoshclover/opencorecollection 外星人黑蘋果clover/opencore收集#收集網友分享的外星人各機型黑蘋果efi,歡迎push你的配置!
黑蘋果安裝教程④:U盤引導安裝黑蘋果Mac系統——墨澀網
教程導航:黑蘋果安裝教程①:認識黑蘋果Mac+準備工作——墨澀網黑蘋果安裝教程②:製作黑蘋果Mac系統啓動U盤——墨澀網
懶人黑蘋果安裝教程:CLOVER(四葉草)引導
使用CLOVER引導,使用相對簡單的替換EFI的方法,不用手動修改。
黑蘋果安裝跟硬體型號有很大關係,不保證所有用戶都能順利完成,如果安裝失敗,考慮下自己的主板是否合適。
前期準備1.一個16GU盤2.黑蘋果工具包黑蘋果安裝最難的是EFI引導修改以及驅動安裝,一般網卡和藍牙驅動是無解的,只能購買支持黑蘋果的網卡
聯想M910Q黑蘋果折騰系列④opencore0.5.8基本完美黑蘋果展示
BIOS魔改3.黑蘋果折騰4.黑蘋果展示主機參數電腦型號聯想ThinkCentreM910q500G音效卡瑞昱@英特爾HighDefinitionAudio控制器網卡英特爾EthernetConnectionI219-LM/聯想EFI文件引導
黑蘋果安裝教程②:製作黑蘋果Mac系統啓動U盤——墨澀網
如果你已經確定好了你的電腦和其他軟體工具準備就緒,那麼接下來就是製作黑蘋果系統的安裝U盤,原理和windwos系統安裝盤類似,但是格式和方式有所不同
聯想M910Q黑蘋果折騰系列③Hackintoshopencore完善EFI分享
本系列文章預計4篇:1.裝機展示2.BIOS魔改3.黑蘋果折騰4.黑蘋果展示本教程參考:司波圖SSDT-EC-USBX:用於屏蔽EC和修正USB供電的,我們EC不用屏蔽,而且強烈建議修正USB供電不要使用SSDT補丁,Xjn大佬解釋是opencore沒有判斷win還是mac系統,雙系統特別注意。
經過我實測定製USB接口以後,生成的USBPorts.kext裡面有修正USB供電代碼,USB供電也正常,所以我們用不到這個。
OpenCoreConfiguratormac(黑蘋果OpenCore配置器)
OpenCoreConfiguratormac中文版是一款黑蘋果引導工具,用於創建和編輯OpenCore配置文件的工具,OpenCoreConfigurator旨在通過提供更加通用和模塊化的系統來解決Clover來的限制和問題,攔截內核加載以插入高級的rootkit,而該rootkit
黑蘋果OC引導一鍵生成工具,可用於CLOVER轉換成OpenCore
今天推薦的是OC引導一鍵生成工具,教程開始前先做個調查,看看目前使用哪種引導的人數較多。
八核十六線程的黑蘋果:AMDYES
經過一番查詢,發現現在AMDCPU的電腦也能很方便的安裝黑蘋果,那我們就來裝一台AMD黑蘋果(hackintosh)吧~還沒聽過黑蘋果?以上,我們已經完成了macOS安裝U盤的製作,OpenCore引導工具和macOS系統都被拷入了U盤。
爲了讓macOS在非蘋果原生硬體上正常的跑起來,我們還需要安裝硬體驅動。
感興趣的朋友建議直接訪問opencore的官方教程學習,具體連結附於文後。
下面我簡單介紹一下。
黑蘋果硬碟引導的兩種方式
用U盤安裝好黑蘋果系統後,與Windows系統不同的是,黑蘋果只是將系統安裝完畢,關於系統引導,並未做自動化配置,此時就需要我們手動去安裝配置,否則就只有通過安裝U盤進入Clover去引導黑蘋果開機。
將黑蘋果系統引導,配置到硬碟其實也很簡單,按系統分爲兩種方式:Windows環境配置:我們可以在Windows系統中,藉助軟體配置黑蘋果的引導。
從零開始學黑蘋果-進階安裝教程
黑蘋果OC(OpenCore)引導升級教程
來源:環球電商熱點舉報 隨著macOSBigSur11.0的更新,舊版的OC引導已經不支持新系統
HPProbook440G4黑蘋果OC完美引導V1.3已經發布-OSCHINA...
HPProbook440G4黑蘋果OC完美引導V1.3已經發布此版本更新內容包括:V1.3更新內容 調整VoodooPSContorller.kext驅動調用順序
黑蘋果教程續集,利用EFI在線安裝MacOS
之前就寫了怎麼簡單、快速地利用現成EFI和鏡像實現黑蘋果主機。
不過有些值友不喜歡別人配置好的鏡像,希望能自己在線安裝系統,所以就有了這篇原創。
前言首先要說明的是,這篇原創不是普適性的教程。
不是教你怎麼從零開始安裝黑蘋果主機,只是適合看了黑蘋果裝機單,計劃按清單裝機的值友。
黑蘋果dsdt驅動怎麼裝?黑蘋果dsdt注入代碼驅動部分音效卡教程
二、黑蘋果dsdt注入代碼驅動部分音效卡教程 第一步:先確定你(音效卡)的音頻編解碼器(codec) win下打開設備管理器,DEVICE_ID對應的音頻編解碼器Codec_id:10ec0889如下圖: 第二步:注入你音效卡的設備ID 注入的方法較多這裡就教大家dsdt注入:
黑蘋果安裝通用教程
要給電腦裝黑蘋果系統,那麼相信大家已經對於什麼是黑蘋果,以及它與白蘋果的不同有了初步的認識了,自然不在不再說了。
蘋果官方對於黑蘋果的存在也是默許的狀態,事實上在這種默許的狀態之下也促成了一部分黑蘋果用戶因爲習慣並喜歡上了MacOS,最終購買MacBook,加入了白蘋果陣營。
黑蘋果入門-OC引導文件EFI配置
自從蘋果採用intel處理器以來,黑蘋果成爲不少DIY玩家的選擇,在現在科技快速發展的時代,在黑蘋果引導方面也有很大的進步。
目前opencore引導的普及,使安裝黑蘋果很簡單,甚至和安裝Windows不無差異。
黑蘋果安裝教程
什麼是黑蘋果?折騰過的人應該不陌生,自從蘋果採用Intel的處理器,被解鎖後可以安裝在IntelCPU與部分AMDCPU的機器上。
從而出現了一大批非蘋果設備而使用蘋果作業系統的機器,被稱爲黑蘋果(Hackintosh)。
可能是最簡單的黑蘋果教程
本文原創,不可作爲商業用途,未經允許請勿轉載,轉發請註明出處黑蘋果的歷史由來已久,自從蘋果公司在IMac產品系列採用Inter的處理器,國外黑客就破解了OSX,並成功在PC上運行,所謂黑蘋果就是運行在PC上的Mac系統,發展至今,安裝黑蘋果的方式多種多樣,最開始的變色龍引導,到現在的clover引導,正所謂通往羅馬的路不止一條啊,今天我們要說的是基於MBR格式下的黑蘋果安裝方式,可能是最簡單的安裝教程,純小白純傻瓜式的教程。
Ryzen黑蘋果的逆襲-----AMDB550Opencore黑蘋果安裝手冊
自從更換了RyzenB550平台以後,一直在折騰黑蘋果,但安裝時不是報錯就是一直卡在白蘋果界面
延伸文章資訊
- 1iPhone開不了機黑蘋果?三大高效解決方案 - iMyFone
- 2黑蘋果教程——OpenCore引導黑蘋果 - 人人焦點
如果你開機發現鍵盤無法選擇,也選NO,並且刪除OC/Drivers下的AppleUsbKbDxe.efi 。 ShowPicker: 是否顯示開機啓動盤選項,比如MAC,WINDOWS那些。我們...
- 3關於開機選單的佈景 - AMD Ryzen 安裝黑蘋果教學
Ryzen 安裝黑蘋果教學. 關於開機選單的佈景. Clover Theme Manager下載:. https://www.insanelymac.com/forum/topic/30267...
- 4黑蘋果開荒記系統篇: 超詳細的純凈MacOS安裝流程
這樣上面整理好的efi和kext文件就都引用到OpenCore 的配置文件config.plist里了。> 按下圖設置好Booter的Quirks. 如果開機log 報錯, 可以試嘗著改變 ...
- 5【黑蘋果】美化Opencore 選單介面 - Ben's PHOTO - 痞客邦
黑蘋果的重中之重:BootLoader 引導程式,從Clover 遷徙到OpenCore ... 的教學資源,OpenCore 的開機選單不僅能做到與白蘋果幾可亂真,在客製化的美化 ...