主機板CFG Lock解鎖(CLOVER)篇

Spread the love
如需在這個區塊中加入任何內容,請先在區塊中新增小工具、項目列或預先建置版面配置。

為什麼要解鎖CFG lock (MSR 0xe2)

MSR 0xE2。MSR正確名稱為Model Specific Register,特定模塊寄存器,屬於非標準寄存器,是用來控制CPU的工作環境和讀取工作狀態,例如電壓、溫度、功耗等非程序性能指標。然而macOS的電源管理中CPU的C-state (睡眠) 和 P-state (頻率) 就是放在MSR寄存器裡的。市面上大多數有UEFI主機板廠商,默認鎖定了MSR寄存器,也就是MSR 0xE2 Locking(BIOS中叫CFG Lock)。

假設MSR 0xE2被認鎖定為只能讀取時,當AppleIntelCPUPowernamegement一旦去寫入數據,馬上就核心崩潰。有些主機板上BIOS有選項“CFG Lock”,其說明內容為”關閉或開啟MSR 0xE2″,可以手動開關。當你需要使用黑蘋果時,則必須解鎖MSR 0xE2,否則無法使用蘋果原生電源管理。萬一沒得解就得改用 nullpowermanagement.kext 來關閉這個功能。

如何確認主機板CFG Lock上鎖

使用Hackintools,選擇工具選項,點擊最左邊Intel的圖示,輸入密碼,視窗內出現了大量數據。接下來往下找MSR_PMG_CST_CONFIG_CONTROL……..(0xE2) : 0x7E000008項目中的第二項: CFG Lock……………………….. : 0 (MSR not locked) 這是已解鎖的狀態。反之亦然。


備份目前的引導程式

當你尚未解鎖CFG-Lock動作之前,務必先把原來系統碟的引導程序做好備份,為什麼呢?一旦你做好了CFG-Lock程序之後,引導程序和系統本身將會『重新編譯』改變體質。無論是使用OC引導或是CLOVER 引導結果都是一樣。萬一某天系統掛了,或是需要重灌系統時,有被執行過CFG=Lock 的引導程序,將會無法使用,這一點請注意。

準備工作

在開始運作以下動作之前,請先檢查你的主機板BIOS之相關設定。

  • BIOS中解锁CFG(如果主機板有這個選項)
  • BIOS中CSM disabled
  • BIOS中EHCI/XHCI Hand-off enabled
  • BIOS中Above 4G Decoding enabled
  • BIOS中VT-d disabled
  • 構建Z300系列主機板黑蘋果主機的使用者要留意,因Z300主機版不支援macOS NVRAM的問題,導致過去我們熱衷於使用修護記憶體AptioMemoryFix插件,在這Z390主機板恐怕無法使用的情況之下,得添加這個添加OsxAptioFix2Drv-free2000.efi啟動插件,方可順利安裝或者是啟動macOS 系統。請確認你的EFI引導程序裡面位於/EFI/CLOVER/drivers/UEFI/ 移除AptioMemoryFix-64.efi,並添加OsxAptioFix2Drv-free2000.efi。
  • 在config.plist 引導文件當中,boot argument 添加slide=xxx。如何計算出slide值,請參考這裡。針對不支援NVRAM 主板使用者。CFG解鎖請可跳過這一步。

EFI引導程序整個先備份起來,你可以製作U盤開機碟。該EFi擋作為開機救援之用(尚未CFG Lock解鎖)。

開啟config.plist  左邊菜單 Kemel and Kext Patches ,把kernelPM以及AppleIntelCPUPM

二項勾選起來。

截圖 2019-12-19 下午12.35.24.png

grub-mod-setup_var:下載modGRUBShell.efi這個修改過GRUB sdell檔案。

UEFITool:請下載UEFITool版本。UEFITool_NE_A56_mac.zip Mac版本。

UniversalIFR-Extractor:請下載ifrextract_v0.3.6.osx.zip。BIOS的訊息轉化成文字的工具軟體

BIOS:根據你的主機板所使用的BIOS安裝檔,從官網下載。以我的主機板BIOS為Z390AOPW.F12

sublime text:文字編輯工具。

EFITool

尋找CFG Lock的數值有兩種方法:
ㄧ、打開Terminal(终端機)輸入以下執行命令。
cd ~/Desktop/CFG 
./UEFITool.app/Contents/MacOS/UEFITool /Users/電腦名稱/Desktop/CFG/Z390AOPW.F12

CFG-0.png


二、另一方式。開啟UEFITool.app,把Z390AOPW.F12韌體檔直接拖拉放到UEFITool.app執行。

CFG-1.png

輸入執行命令之後,在UEFITool.app的介面,按下快捷鍵Command+F,點擊Text項目,鍵入『CFG Lock』執行。在最下方會出現這個資訊。
Unicode text “CFG Lock” found in PE32 image section at header-offset 8B2FCh 


直接點擊該信息二次,軟體會自動定位到含有CFG Lock信息的模塊。

PE32 image section。 這個時候,選擇該信息,按下滑鼠右鍵,選擇extract body。

把該文件存檔到桌面的CFG文件夾,名稱默認為Section_PE32_image_Setup_Setup_body.efi,因為檔名太長了,我們可以簡化為『PE32.efi』或是其他簡易的名稱就可以了。

ifrextract

打開終端機,輸入以下指令,我們要把PE32Section.efi轉換成文字擋。
cd ~/Desktop/CFG
./ifrextract PE32.efi PE32.txt

sublime text

使用sublime text app,開啟剛剛轉換的PE32.txt 文件檔。同樣地使用快捷鍵Command+F 搜尋『CFG Lock』。 整理了該信息數據: VarStorCFG LockeInfo (VarOffset/VarName): 0x5C1, VarStore: 0x1,  One Of Option: Disabled, Value (8 bit) One Of Option: Enabled, Value (8 bit) 軟體會定位到這裡,VarStorCFG LockeInfo (VarOffset/VarName): 0x5C1,0x5C1就是我們要找的偏移量。VarStore: 0x1意思指的是鎖住,若是想要解鎖它,就需要把該選擇修改成0x0的Disabled,也就是要把0x5C1這個地址的数值修改为0x0。 

modGRUBShell.efi

下載好modGRUBShell.efi, 重新命名為 bootx64.efi,再請大家拿出我教給CFG大家使用多功能引導工具碟。插入電腦後,桌面出現WEPC的磁碟,在U盤内的資料可以暫時放入一個資料夾,另創建一個EFI文件夾,同時在此文件夾中,另建文件夾為BOOT,並將bootx64.efi放入BOOT裡面。
如果你沒有我所製作多引導工具碟,也可以自行製作,把U盘插入電腦,用磁碟工具把U盤格式化為fat32格式,命名為EFI,就可以了。
電腦透過U盤重啟,將會啟動grub模式,執行setup_var命令。先来解鎖MSR 0xE2,輸入
setup_var_3 0x5C1

該命令是查詢0x5C1這個地址(偏移量)的数值,0x5C1是我们在上面一步中查找到的CFG-Lock選項的地址,從下圖中我們可以看到該0x5C1地址数值為0x01,即對應Enabled。

输入 setup_var_3 0x5C1 0x00 該命令是修改0x5C1這個地址的数值为0x00,也就是把CFG-Lock這個選項设置為Disabled。執行完畢後,再輸入EXIT 離開。

備註:某些主板可能使用 setup_var 這樣的命令。其作法大致相同。

回到系統,用Hackintool 工具來查看。



最後工作

把CLOVER EFI 的config.plist引導文件,取消下列設定。
Kemel and Kext Patches ,把kernelPM以及AppleIntelCPUPM
這樣就完工了!
如果你是OC引導使用者,請到這裡

Leave a Reply

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