毒盤 EFI 435b
macOS Sequoia 15.0
一、安裝OpenCore
首次遷移應(yīng)該先嘗試U盤引導(dǎo)現(xiàn)有系統(tǒng),穩(wěn)定后再遷移到本地硬盤。
準(zhǔn)備一個刻錄好安裝鏡像的U盤,直接干掉U盤引導(dǎo)分區(qū)的文件,把編譯好的OpenCore/OpenCorePkgBeta解壓x64/EFI到U盤引導(dǎo)分區(qū)根目錄。

解壓Docs/Sample.plist文件到EFI/OC文件夾,并修改文件名為config.plist。

懶人必備OpenCore Configurator,下載后打開剛才的的config.plist,二話不說關(guān)掉加密保護,否則開機引導(dǎo)會報"no vault provided",將Misc/Security/Vault設(shè)置為Optional,Misc/Security/SecureBootMode設(shè)置為Disabled,然后保存即可。

sonoma后會機型檢測,不通過會提示與該mac不兼容,隨便找個能用的EFI拷貝PlatformInfo項目即可。
二、核心驅(qū)動
2.1 安裝必要的驅(qū)動。
先確保能進(jìn)入登錄界面,為排除干擾,只安裝能開機的驅(qū)動。
- Lilu,內(nèi)核擴展,顯卡,聲卡等一些硬件驅(qū)動的前置驅(qū)動。
- VirtualSMC,仿冒水果機的某個控制芯片。
-
WhateverGreen,A卡、牙膏廠核顯驅(qū)動。游戲本都是N卡,雙屏只能靠雷電接口(暗夜精靈/微星/各種輕薄本)或者無線投屏(隔空播放)。
N卡用無線投屏器也能湊合雙屏 RDM調(diào)分辨率和刷新率
把壓縮包的*.kext拖到EFI/OC/Kexts下。
2.2 檢查配置文件
OCC檢查一下配置文件,看看還默認(rèn)配置了哪些驅(qū)動,取消勾選或者補全。

默認(rèn)勾上了AppleALC,順便就補上去,以免卡引導(dǎo)。
檢查UEFI驅(qū)動,前綴#表示禁用,沒有的驅(qū)動補回去。

發(fā)現(xiàn)缺少HfsPlus.efi,可以直接從CLOVER拷過去。

2.3 禁用獨顯
引導(dǎo)過程最后會花屏,是因為獨顯沒禁掉。
按最少折騰的方法,添加幾個參數(shù)就好了。
- DeviceProperties/Add/PciRoot(0x0)/Pci(0x2,0x0) 添加
disable-external-gpu 01000000- 添加引導(dǎo)參數(shù)
boot-args -wegnoegpu

往顯卡設(shè)備PciRoot(0x0)/Pci(0x2,0x0)添加屬性,這個步驟跟核顯緩沖幀打補丁重合。
使用Hackintool生成配置,或者直接從CLOVER復(fù)制過去,隨便還把聲卡layout-id給搞了。


2.4 引導(dǎo)修復(fù)
機型差異,抄作業(yè)參考常見引導(dǎo)問題。
Missing key LoadEarly
OpenCore版本與編輯器的版本不一致,導(dǎo)致保存后缺失選項,編輯器支持通常會滯后,降級就好了,對齊版本或者用VSCode編輯。In Memory Panic Stackshot Succeeded
集顯沒有配置顯存,給緩沖幀打補丁。-
AppleNVME Assert Failed
缺少SSDT-EC.aml,把OpenCore壓縮包Docs/AcpiSamples下面的補丁拖到OC/ACPI下,OCC勾上對應(yīng)補丁,保存。
禁用EC -
disk %d : device is write locked
居然是博通網(wǎng)卡驅(qū)動問題,搞死我了,瞬間感覺AC9462真香。
Big sur需要禁用掉子驅(qū)動AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcm4360_Injector.kext。
11.0禁用 安裝后BIOS時鐘停止
去除RTC相關(guān)驅(qū)動、修補。
按網(wǎng)上的方法,刻錄個Ubuntu安裝盤,進(jìn)入試用模式后重啟。引導(dǎo)卡rt.gv wake-failure 、 [EXITBS:START]
打開配置文件,搜索并設(shè)置以下項目為true:
AppleCpuPmCfgLock
AppleXcpmCfgLock
IgnoreInvalidFlexRatio
通常是刷過BIOS,進(jìn)入BIOS然后選擇Restore Defaults還原配置。引導(dǎo)卡 successful initialized nvme driver
把新版本OpenCore壓縮包的SSDT-EC.aml拖到ACPI文件夾,不要復(fù)制舊版的。XCPM: registered
OpenCore Legacy Patcher相關(guān),移除AMFIPass.kext,引導(dǎo)參數(shù)添加amfi=0x80。
三、擴展驅(qū)動
其他驅(qū)動,附錄1
- HoRNDIS.kext - 共享安卓機USB網(wǎng)絡(luò)
- NVMeFix.kext - 固態(tài)優(yōu)化
- NoTouchID.kext - 禁用TouchID
- CPUFriend - 睿頻優(yōu)化什么的,配合一鍵生成
CPUFriendDataProvider.kext。
3.1 通用鍵鼠驅(qū)動
VoodooPS2Controller,驅(qū)動筆記本自帶鍵盤,以免進(jìn)了登錄界面輸不了密碼。
驅(qū)動拖到EFI/OC/Kexts下,OCC驅(qū)動選擇快照添加:

選擇U盤的EFI/OC/Kexts目錄,會自動刷新出新的驅(qū)動條目,手動加萬一加錯了。

3.2 USB驅(qū)動
USBInjectAll,原來普通外接鍵盤的指示燈是不亮的。
3.3 有線網(wǎng)卡
選擇網(wǎng)卡型號匹配的驅(qū)動,RTL8111下載安裝RealtekRTL8111.kext。

OpenCore需要手動設(shè)置傳輸模式,否則就一直顯示電纜被拔出。


3.4 屏幕背光

下載SSDT-ALS0.aml和SSDT-PNLF.aml(第8代CPU下載SSDT-PNLF-CFL.aml),注意目標(biāo)分區(qū)不要選錯,或者從OpenCore壓縮包Docs/AcpiSamples里面拖。

引入SMCLightSensor.kext,點擊快照添加,選中EFI/OC/Kexts文件夾,勾選上SMCLightSensor.kext。


3.5 聲卡驅(qū)動
安裝AppleALC,挨個試layout-id。ALC269注入66,麥克風(fēng)居然活了。
注入alc-delay防止開機間歇性掉聲卡。



3.6 觸摸板
VoodooI2C,驅(qū)動支持,摸得動就行。
觸摸板驅(qū)動依賴電池驅(qū)動,電量顯示有問題,觸摸板能摸但是偏好設(shè)置是檢測不出的。

驅(qū)動拖到EFI/OC/Kexts,使用OCC快照添加,刷新出子驅(qū)動,然后調(diào)整驅(qū)動加載順序,VoodooInput.kext不勾選。
VoodooI2Cservice.kext
VoodooGPIO.kext
VoodooI2C.kext
VoodooI2CHID.kext

3.6 電池驅(qū)動
OpenCore 0.7.5后不再需要拆分變量了,熱補丁配合SMCBatteryManager.kext可能沒有效果,除非用老方法注入DSDT.aml強制覆蓋。
注入ECEnabler.kext、SMCBatteryManager.kext、SSDT-EC.aml即可。
OpenCore所有系統(tǒng)共用一套引導(dǎo)配置,以往四葉草針對水果系統(tǒng)直接改DSDT的方式可能會導(dǎo)致Windows系統(tǒng)出問題。
總之就是推薦使用分支判斷+HotPatch。
(Science online)電池?zé)嵫a丁指南 (Guide for Battery Hotpatch)
ASL編程語言
MaciASL補丁制作實戰(zhàn)
用一次實戰(zhàn)記錄電池?zé)嵫a丁的編寫方法
關(guān)于電量補丁大于32位字段補丁偏移計算
熱補丁的原理在用高級語言表達(dá)就是攔截或代理,跟直接修改DSDT.aml一樣,都需要加上系統(tǒng)的分支判斷和重寫并回調(diào)原函數(shù),直接改DSDT.aml不用寫更名規(guī)則。

懶人是不用算偏移量的,用不上的變量全部留空完事,快進(jìn)到表達(dá)式替換。

表達(dá)式替換完,把原裝函數(shù)改個名稱,熱補丁需要配合SSDT改名補丁使用。


用Hex Fiend來核查改名補丁的替換范圍,例如45434245 00替換為58434245 00,即ECBE to XCBE,末尾的00不是可有可無的,二進(jìn)制替換容易替換掉未知領(lǐng)域,使用文本編輯器不容易覺察。


在函數(shù)_BIF中,如果ECBE被替換掉那么回調(diào)的永遠(yuǎn)是原裝函數(shù),全部白寫。
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
If (ECON)
{
ECBE ()
}
Else
{
Store (0xFFFFFFFF, Index (PAK0, One))
Store (0xFFFFFFFF, Index (PAK0, 0x02))
Store (0xFFFFFFFF, Index (PAK0, 0x04))
Store ("Error", Index (PAK0, 0x09))
Store ("00000", Index (PAK0, 0x0A))
Store ("Error", Index (PAK0, 0x0B))
Store ("Error", Index (PAK0, 0x0C))
}
Return (PAK0)
}
折騰后,電量顯示了,觸摸板也回來了。

3.7 無線網(wǎng)卡
3.7.1 Broadcom
AirportBrcmFixup
BrcmPatchRAM
OCC快照添加。
AirportBrcmFixup.kext
BrcmBluetoothInjector.kext(Monterey 12.0 替換為BlueToolFixup.kext)
BrcmFirmwareData.kext
BrcmPatchRAM3.kext


Sonoma博通驅(qū)動補充
Sonoma移除了博通驅(qū)動,按以上步驟添加驅(qū)動后,需要額外注入,使用該方案root patch狀態(tài)下會使系統(tǒng)更新不可用,每次更新都要還原。
NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82,csr-active-config設(shè)置03080000,boot-args添加ipc_control_port_options=0 -amfipassbeta -brcmfxbeta brcmfx-country=HK-
NVRAM > Delete > 7C436110-AB2A-4BBB-A880-FE41995C9F82添加csr-active-config
-
禁用原生驅(qū)動
com.apple.iokit.IOSkywalkFamily,設(shè)置最小內(nèi)核23.0.0
Misc > Security > SecureBootModel > Disabled補充驅(qū)動
AMFIPass.kext-
調(diào)整驅(qū)動順序,并設(shè)置最小內(nèi)核
23.0.0:- AMFIPass.kext
- IOSkywalkFamily.kext
- IO80211FamilyLegacy.kext
- IO80211FamilyLegacy.kext/Contents/PlugIns/AirPortBrcmNIC.kext
-
重啟后,下載
OpenCore-Patcher-GUI.app,如果上面步驟沒有遺漏,Start Root Patching是啟用狀態(tài),并提示無線驅(qū)動可修復(fù)
Sequoia博通驅(qū)動補充
安裝前移除AMFIPass.kext,引導(dǎo)參數(shù)添加amfi=0x80,安裝OpenCore Legacy Patcher 2.0.1+,不需要AMFIPass.kext,Start Root Patching后重啟即可。
3.7.2 Intel
原裝網(wǎng)卡有救了,狂喜,趕緊卸了博通裝回AC9462試試。
-
藍(lán)牙
IntelBluetoothFirmware
游戲本上網(wǎng)主要還是插網(wǎng)線,無線設(shè)備就只能通過藍(lán)牙了。
連接狀況良好 -
WiFi驅(qū)動
看說明暫時是兩種方案,互斥。
AirportItlwm.kext
試了下隔空投送,搜不到手機。
Speedtest搞了下,掉速,不過足夠應(yīng)付在線1080P視頻。


itlwm.kext + HeliPort客戶端
居然搜不到電腦旁邊路由的SSID,屋外的倒是可以。
選擇“加入其他網(wǎng)絡(luò)”,手動輸入SSID和密碼,成功連上。
空投協(xié)議還是不支持,不知道是網(wǎng)卡還是驅(qū)動問題,只能以后再試了,換回了博通。
對于游戲本,使用上是可以接受的范圍,藍(lán)牙連接情況良好,而上網(wǎng)一般都是插網(wǎng)線,對于今后的新機器而言,考慮到驅(qū)動完善上的可能性,并且只是作為輔佐系統(tǒng)的話可以不用換網(wǎng)卡,主力系統(tǒng)Windows不存在驅(qū)動問題。
3.8 睡眠修復(fù)
各種問題,白蘋果的體驗基本是不存在的,主要是防止掛機到息屏后不能喚醒只能強制斷電。
1、使用Hackintool輔助,USB內(nèi)建,保留USBInjectAll.kext需要添加SSDT-UIAC.aml修補。
SSDT-EC-USBX.aml包含SSDT-EC,添加可能會使電池驅(qū)動失效。

3、8代或以上核心,SSDT-PMC.aml。

四、引導(dǎo)遷移
復(fù)制U盤EFI/OC到硬盤引導(dǎo)分區(qū)下面,復(fù)制U盤BOOT/BOOTx64.efi到硬盤的OC目錄下。
Booter/Quirks/SyncRuntimePermissions打上勾,否則引導(dǎo)Windows會藍(lán)屏。

換到
PE環(huán)境下用BOOTICEx64.exe添加UEFI引導(dǎo)即可,可能還需要進(jìn)BIOS調(diào)整本地硬盤的引導(dǎo)順序,把OpenCore調(diào)到前面。
檢查所有SSDT,出現(xiàn)Device定義的,加上系統(tǒng)判斷,UIAC.aml、SSDT-EC.aml、ALS0.aml等。 例如UIAC.aml不補充修改,Windows設(shè)備管理器會出現(xiàn)未知設(shè)備UIAC。

開啟圖形界面:



自定義啟動項:
使用Opencore引導(dǎo)ubuntu以及Linux的步驟
切換到FS0、FS1...導(dǎo)出映射表。
添加自定義圖標(biāo),放在引導(dǎo)項的同一目錄:


五、疑難雜癥
屏蔽PM981
Sonoma整了個莫名其妙的東西掃描硬盤,掃描到PM981就會突發(fā)惡疾。
沒辦法只好屏蔽了,參考,OCC添加設(shè)備路徑,設(shè)置屬性使其不識別。
<key>PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)</key>
<dict>
<key>IOName</key>
<string>#display</string>
<key>class-code</key>
<data>/////w==</data>
<key>name</key>
<string>#display</string>
</dict>

屏蔽后的設(shè)備會顯示為傳統(tǒng)設(shè)備,這個鬼東西還可以彈出主硬盤,你點錯了就直接死機。

不能登錄Apple賬號
參考,終端執(zhí)行:
sudo rm -rf /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist*








