黑蘋果OpenCore遷移 (火影地獄火x6 i7-8750H)

毒盤 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ū)根目錄。

解壓引導(dǎo)文件

解壓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,然后保存即可。

關(guān)閉加密

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ū)動,取消勾選或者補全。

補全擴展驅(qū)動

默認(rèn)勾上了AppleALC,順便就補上去,以免卡引導(dǎo)。

檢查UEFI驅(qū)動,前綴#表示禁用,沒有的驅(qū)動補回去。

復(fù)制到EFI/OC/Drivers

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

配置最基本的驅(qū)動

2.3 禁用獨顯

引導(dǎo)過程最后會花屏,是因為獨顯沒禁掉。
按最少折騰的方法,添加幾個參數(shù)就好了。

屏蔽獨顯方法

  • DeviceProperties/Add/PciRoot(0x0)/Pci(0x2,0x0) 添加
    disable-external-gpu 01000000
  • 添加引導(dǎo)參數(shù)
    boot-args -wegnoegpu
屏蔽獨顯,添加引導(dǎo)參數(shù)

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

復(fù)制配置

確認(rèn)XML結(jié)構(gòu),防止貼錯位置

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

3.1 通用鍵鼠驅(qū)動

VoodooPS2Controller,驅(qū)動筆記本自帶鍵盤,以免進(jìn)了登錄界面輸不了密碼。
驅(qū)動拖到EFI/OC/Kexts下,OCC驅(qū)動選擇快照添加:

驅(qū)動添加新姿勢

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

不要選錯目錄

3.2 USB驅(qū)動

USBInjectAll,原來普通外接鍵盤的指示燈是不亮的。

3.3 有線網(wǎng)卡

選擇網(wǎng)卡型號匹配的驅(qū)動,RTL8111下載安裝RealtekRTL8111.kext。

下載對應(yīng)驅(qū)動

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

系統(tǒng)偏好>網(wǎng)絡(luò)>以太網(wǎng)>高級>硬件
新坑

3.4 屏幕背光

不要搞錯下載目錄

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

亮度調(diào)節(jié)和記憶補丁

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

仿冒光線傳感器
背光調(diào)節(jié)

3.5 聲卡驅(qū)動

安裝AppleALC,挨個試layout-idALC269注入66,麥克風(fēng)居然活了。

注入alc-delay防止開機間歇性掉聲卡。

ALC269注入66,數(shù)據(jù)類型可以選數(shù)字
MIC

ALC269驅(qū)動
Hackintool聲卡修補
常見聲卡layout-id
聲卡內(nèi)建

順手搞一下

3.6 觸摸板

VoodooI2C,驅(qū)動支持,摸得動就行。

VoodooI2C觸摸板驅(qū)動教程

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

觸摸板能進(jìn)行基本的使用

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

多個子驅(qū)動,可能會要求加載順序

3.6 電池驅(qū)動

OpenCore 0.7.5后不再需要拆分變量了,熱補丁配合SMCBatteryManager.kext可能沒有效果,除非用老方法注入DSDT.aml強制覆蓋。
注入ECEnabler.kextSMCBatteryManager.kext、SSDT-EC.aml即可。

Battery Status

OpenCore所有系統(tǒng)共用一套引導(dǎo)配置,以往四葉草針對水果系統(tǒng)直接改DSDT的方式可能會導(dǎo)致Windows系統(tǒng)出問題。

關(guān)于OpenCore引導(dǎo)雙系統(tǒng)的一些總結(jié)和討論

總之就是推薦使用分支判斷+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ī)則。

直接改可以排除更名補丁影響,穩(wěn)定后遷移代碼為熱補丁文件

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

變量拆分

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

添加熱補丁
本機型只需要改兩個函數(shù)

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

聯(lián)想DW1560

AirportBrcmFixup
BrcmPatchRAM
OCC快照添加。
AirportBrcmFixup.kext
BrcmBluetoothInjector.kext(Monterey 12.0 替換為BlueToolFixup.kext
BrcmFirmwareData.kext
BrcmPatchRAM3.kext

無線
藍(lán)牙

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ū)動 IOSkywalk.kextIO80211FamilyLegacy.kext

  • 補充驅(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

Intel WIFI驅(qū)動開發(fā)進(jìn)展

原裝網(wǎng)卡有救了,狂喜,趕緊卸了博通裝回AC9462試試。

  • 藍(lán)牙
    IntelBluetoothFirmware
    游戲本上網(wǎng)主要還是插網(wǎng)線,無線設(shè)備就只能通過藍(lán)牙了。

    連接狀況良好

  • 無線 AirportItlwm / itlwm

    WiFi驅(qū)動

看說明暫時是兩種方案,互斥。

AirportItlwm.kext
試了下隔空投送,搜不到手機。
Speedtest搞了下,掉速,不過足夠應(yīng)付在線1080P視頻。

DW1560

AC9462

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ū)動失效。

2、添加HibernationFixup.kext

順序拖到Lilu.kext后面

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

點下載/更新Acpi文件

四、引導(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

補充分支判斷

開啟圖形界面:


掃描策略改為0完事
自制的界面使用Modern前綴
界面引擎驅(qū)動和截圖驅(qū)動

自定義啟動項:

使用Opencore引導(dǎo)ubuntu以及Linux的步驟
切換到FS0、FS1...導(dǎo)出映射表。

添加自定義圖標(biāo),放在引導(dǎo)項的同一目錄:


自定義項目圖標(biā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>
選擇要屏蔽的固態(tài),可以借助Hackintool

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


????

不能登錄Apple賬號

參考,終端執(zhí)行:

sudo rm -rf /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist*
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容