【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

2020 年 WWDC 蘋果宣布 Mac 電腦將從 Intel CPU 遷徙至 Apple Silicon,正式啟動黑蘋果末日的倒數計時器(延伸閱讀:The Last of Hackintosh - 黑蘋果末日鐘聲響起),當時估計黑蘋果剩下約 5~7 年的時間。時間來到 2020 年底,神奇的 Intel Mac 延命套件:OpenCore Legacy Patcher (以下簡稱 OCLP)橫空出世 ,不僅改變那些被 Apple 放棄的白蘋果命運,就連黑蘋果也雨露均霑。手邊擁有的一白三黑:唯一白蘋果 MacBook Air(11-inch, 2013 Mid),以及黑蘋果二號、三號、筆電 HP Probook 430 G3 ,皆因 OCLP 受惠,個人推論未來 1~3 年直到 macOS 徹底放棄 Intel Mac 為止前,差不多都是這樣的狀況。

OCLP 的初衷,是讓那些本來不能升級至新版 macOS 作業系統的 Mac 電腦,能夠安裝並運行新版的 macOS 。舉例來說,手邊的 MacBook Air 2013 筆電,蘋果官方僅支援到 macOS 11(.7.10) Big Sur,但是經由 OCLP 加持,就能安裝目前最新的 macOS 14+ Sonoma,比原本至少多出 3 個大版以上。OCLP 作用原理就是把白蘋果變成黑蘋果之後,以黑蘋果技術繞過 Apple 官方限制而達成目的。然而 OCLP 的設計對象是 Mac 白蘋果,雖然不能直接套用在非 Mac 的黑蘋果上,但是可作為黑蘋果的重要參考。撰寫此文的目的,除了紀錄當下每一台裝置安裝最新 macOS 的方法,在未來黑蘋果真正走入歷史之後,也能作為技術考古遺跡。黑蘋果的文章,在剩下來日不多的時期,可說是每寫一篇就少一篇,且讀且珍惜。

一、白蘋果 MacBook Air (11-inch, 2013 Mid)

這台搭載的 CPU / iGPU 為 Intel i7-4650U / HD Graphics 5000,屬 Intel 第 4 代 Haswell 產品,機型(Model)是 MacBookAir6,1 ,官方支援的 macOS 版本為 10.8.4(MBA 特定版)Mountain Lion 至 11.7.10 Big Sur。因為是根正苗紅的白蘋果,只需按照 OCLP 的標準操作即可升級安裝到最新的 macOS (目前為 14.5 Sonoma)。 網路上教學很多,官方也有完整且易懂的教學,這裡簡單帶過:

準備工作:

  • 一台可運行 OS X (macOS) 10.10+ 且可聯網路的個人電腦。這裡直接用 MacBook Air (11-inch, 2013 Mid)。
  • 一支 >=32GB 的空白資料隨身碟,整支格式化為 Mac OS擴充格式(日誌式),GUID分割區配置表(包含最前面的 200MB EFI 卷冊)。
  • OCLP:目前最新為 v1.5,支援安裝目前最新的 macOS 14.5 Sonoma。下載 OpenCore-Patcher-GUI.app.zip 即可。

操作方式: 2 大步驟

  1. OCLP 製作 macOS 安裝隨身碟
  2. 使用 OCLP 製作的 macOS 安裝隨身碟,進行安裝 macOS

1.1 OCLP 製作 macOS 安裝隨身碟

執行 OCLP,畫面如下:

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

說明:

  • (Target) Model:製作 OpenCore EFI 與安裝 macOS 的目標機型,預設值抓本機的機型,可以在 Settings 修改。
  • Build and Install OpenCore:將 OpenCore 安裝於 EFI 卷冊。
  • Create macOS installer:建立 macOS 安裝隨身碟。
  • Post-install Root Patch:本機的 Root Patch(根修復) / 回復程序,用於在安裝 macOS 系統完成之後,恢復不受 macOS 支援的硬體驅動。黑蘋果也可用。
  • Settings:設定機型,SMBIOS,OpenCore 開機參數...等等。 

上述這些工作項目對黑蘋果用戶來說並不陌生,只是必須根據不同的黑蘋果硬體進行繁瑣的手工設置。OCLP 的支援對象是有限的白蘋果硬體,因此可將這些配置工作整合為一鍵設置,純白蘋果用戶也不需要具備黑蘋果知識即可操作,至於黑蘋果操作 Root Patch 是有前提的,也是本文的重點之一。

由於安裝碟與安裝的目標電腦都是同一台 MacBook Air 2013 Mid (MacBookAir6,1),所以插入隨身碟之後,主畫面點擊執行 Create macOS installer 即可。如果安裝碟是給別台白蘋果機型(例如 iMac13,2),那麼就要先執行 Settings 點擊 Target Model 選擇目標機型。選好之後點擊最下方的 Return 鈕回到主畫面,之後操作的對象就是以 Target Model 的機型為主。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

主畫面點擊 Create macOS installer 之後會問你選擇 Download macOS Installer(下載 macOS 安裝檔),或是 Use existing macOS Installer(直接使用位於本機應用程式目錄下的 macOS 安裝檔)。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

選擇下載(Download macOS Installer)會出現 macOS 的版本清單,根據 OCLP 支援的版本不同,可選擇下載的 macOS 版本也不同,v1.5 只能選擇 macOS 11 以上的版本。選擇本機應用程式(Use existing macOS Installer)就會偵測本機應用程式目錄下,有哪些既有的 macOS 安裝檔。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

選擇下載的話,最終也是在應用程式目錄下生成 macOS 安裝檔,和從 App Store 下載的意思相同,後續依照指示即可,細節就不展開了。如果過程中問到安裝檔要放在哪個磁碟,以及問及 OpenCore 要安裝在哪裡(即主選單的 Build and Install OpenCore 程序)時,一律選擇 USB 隨身碟的磁碟路徑即可,因為此時的目標是建立 USB 安裝隨身碟。整個過程取決於隨身碟的讀寫速度和網路下載速度,大約需要 10 分鐘到 30 分鐘以上。最終可得到一支 Target Model 機型專用的 macOS 安裝隨身碟。

1.2 使用 OCLP 製作的 macOS 安裝隨身碟,進行安裝 macOS

將上個步驟製作完成的 macOS 安裝隨身碟插入 MacBook Air 2013 Mid,開機聽到「噹」時趕快按住 Option 鍵,選擇 EFI Boot 項目,會進入黑蘋果的 OpenCore 開機引導流程。接著選擇安裝 macOS 項目,後續的操作步驟和一般安裝白蘋果完全相同,所以就不細說了。最後出現 macOS 設定畫面並完成初始化設定之後,macOS 就安裝完成了,此時系統內已自動安裝 OCLP 並藏駐背景執行,Root Patch 程序(即主畫面 Post-Install Root Patch )也是自動完成。

換言之,從按下 Create macOS installer 的按鈕那一刻開始,該做的步驟 OCLP 都幫我們完成了,老舊的白蘋果用戶不須去理解複雜艱深的黑蘋果技術理論。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

以後開機時,系統會先自動進入 OpenCore 引導再進入 macOS 開機程序。若將來不小心清除了 NVRAM(開機時 Command + Option + P + R)導致無法自動進入 OpenCore 時,那麼只需在開機時聽到「噹」聲趕快按下 Option 鍵,選擇 EFI Boot 時按下 Control 再按 Enter ,日後系統會自動選擇 EFI Boot 進入 OpenCore 引導流程。

安裝完成 macOS 14+ 的 MacBook Air 2013 Mid ,除了動態桌面一開始稍微女神卡卡了一些,其他功能一切正常,更支援 macOS 12+ 才有的 AirPlay 功能, HDMI / Audio 切換輸出也沒問題 。本以為 OCLP 使用修改 SMBIOS 的欺騙手段,結果發現並沒有,整個過程 SMBIOS 型號與機器序號,依然是白蘋果的原生資訊,一切有如 macOS 14+ 原生支援 MacBook Air 2013 Mid 般的表現。

揪~竟~ OCLP 用了什麼黑科技突破官方限制呢?令人感到好奇。


二、用 OCLP 安裝最新版 macOS 帶來的影響參考來源

OCLP 的 Root Patch 程序必須在較低安全性的環境下才能運作,而系統經過 Root Patch 之後會有些安全和風險。已知如下:

2.1 OTA 更新異常

以下圖為例,安裝 macOS 14.3.1 Sonoma 並啟用 Root Patch 之後,OTA 提示升級到 14.5 必須下載完整的安裝檔,足足有十多 GB,會讓升級程序消耗大量時間與磁碟資源。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

原因是 Root Patch 程序破壞磁碟區快照的安全密封(Snapshot Sealed)。執行 diskutil apfs list 查看狀態顯示 Broken(正常狀態為 Yes):

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

如果要恢復正常的 OTA 功能,得先恢復至未 Root Patch 的狀態。操作方法是執行 OCLP 的「Post-install Root Patch」->「Revert Root Patches」,執行完重開機才會生效。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

重開機之後,系統會恢復為沒有 Root Patch 的狀態,以 MacBook Air 2013 Mid 為例,恢復之後 Intel HD Graphics 5000、BCM94360 無線網卡、前置攝影鏡頭三者在 macOS 14+ 就無法正常驅動,操作畫面也會超級女神卡頓。藏駐背景中的 OCLP 會自動偵測並跳出提示: 

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

然後這時候悲劇了... MacBook Air 沒有內建有線網卡,而無線網路又無法驅動,這要怎麼升級?我的解決方式是裝一支 macOS 支援原生 O.O.B 的 USB 有線網卡,連接有線網路。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

升級完 macOS 之後,再執行一次 Root Patch 程序(Post-install Root Patch - Start Root Patching),之後重開機即可。

2.2 黑蘋果變磚可能性大增

反覆操作 Root Patch <-> Revert Root Patches 時,稍一不慎就可能導致 macOS 無法開機,國外有很多案例。個人經驗,Root Patch 過之後胡搞瞎搞了一下 EFI,又沒有做 Revert 就直接改用較舊的 OCLP 版本 Root Patch,結果就變磚了。一旦變磚,系統只能重新安裝在新的卷冊之後,再從變磚的系統恢復資料,手續很麻煩。

總之一個原則,曾經 Root Patch 過的驅動,就不要去改它,例如 Root Patch Skylake iGPU 不要去改成 Kaby Lake iGPU,如果 Root Patch 的機器須投放在生產力工作時,升級系統或 OCLP 時須小心謹慎,務必先做好備份。


三、OCLP 重點功能對於黑蘋果的運用(參考來源:

OCLP 的重點功能有兩個:(1) 不受支援的機型安裝新版 macOS 。(2) 在新版 macOS 中恢復不受支援的硬體周邊驅動。

對白蘋果而言,只要使用的 OCLP 版本支援白蘋果機型與安裝的 macOS 版本時,這兩大功能直接完美整合在製作 USB 與安裝 macOS 流程內。然而對黑蘋果用戶來說,雖然不能直接如法炮製,不過仍能從 OCLP 提供的 OpenCore EFI 與 config.plist 內容中提取黑蘋果能用的部分。編輯 config.plist 的工具建議用 ProperTree ,除了可直接對照複製節點,也能複製文字檔格式(<dict> ... </dict>)直接貼到 config.plist 內,相當方便好用。

3.1 不受支援的 SMBIOS 機型安裝新版 macOS :

這項功能是經由 OpenCore EFI 的某些設定來實現。

以黑蘋果二號為例,之前在安裝不受支援的新版 macOS 時(11+),必須先把 SMBIOS 改成支援的型號(例如: iMac13,2 改成 iMacPro1,1),安裝完再改回原來的 SMBIOS,並在 boot-args 加上 -no_compat_check 參數。然而 OCLP 程序既未修改 SMBIOS ,更不需要 -no_compat_check 參數,是怎麼做到的?調查了一下,OCLP 利用了 macOS 11.3+ 的 VMM 虛擬化技術,欺騙 macOS 以為自己在虛擬機中運行,這時 macOS 就不限制機型了 。

黑蘋果要實現這項功能的方法如下:

  • config.plist->Booter->Patch 新增「Skip Board ID check」設定。
  • 安裝以下 Kexts 至 EFI/OC/Kexts,並於 config.plist->Kernel->add 啟用:
    • RestrictEvent.kext(v1.1.3+),MinKernel: 20.4.0 以上。(可依照各 SMBIOS 支援最高 macOS 內核版本 +1),欺騙 macOS 的關鍵套件。
    • FeatureUnlock.kext(v1.1.5+),MinKernel:16.0.0。解鎖某些新機型才有的功能。
  • config.plist/NVRAM->Add->4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102 新增以下內容,並於 Delete 節點補上對應參數:
  • boot-args 刪除 -no_compat_check。據說這個參數在某些不支援的設備(board-id)會影響 OTA 更新程序。

上述相關的 OpenCore EFI config.plist 設定如下(以圖片表示):

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

3.2 在新版 macOS 中恢復不受支援的硬體周邊驅動

這項功能是經由 OCLP 的 Root Patch 程序(即 OCLP 主畫面 Post-install Root Patch)來實現。黑白蘋果都能用。

3.2.1 Root Patch 程序設定

近年 macOS 持續更新,不受支援的硬體周邊也越來越多,最新的 macOS 14 不支援 2017 以前的 Intel Mac(Intel 7代),並刪除一些舊驅動程式。以手邊的一白三黑設備為例,Intel Graphics 三代、四代、六代、NVIDIA Kepler 顯卡,以及 BCM94360 無線網卡系列等等,陸續遭到 macOS 放生。OCLP 第二個重點功能,就是恢復這些 2017 Intel Mac 以前的硬體驅動。

OCLP 恢復舊驅動的方式,是在系統安裝完成後(Post Install),再經由執行 Root Patch 程序來完成。Root Patch 除了白蘋果之外,也適用於黑蘋果。然而 Root Patch 必須在降低安全性(SIP 值 03080000)、關閉 SecureBootModel,與關閉 AMFI 才能運行。至於 AMFI 是啥麼東西,可參考這篇文章(Broadcom-wifi-back-on-macOS-Sonoma-by-OCLP)中「AMFI and AMFIPass.kext」一節。

這裡直接講結論。隨著 OCLP 持續發展,目前 Root Patch 程序可在以下兩種 AMFI 的模式中進行:

  • 禁用 AMFI 模式:boot-args 加入 amfi=0x80 ,不使用 AMFIPass.kext。
  • 啟用 AMFI 模式:使用 AMFIPass.kext(v1.4+),boot-args 不含 amfi=0x80 ,可選擇在 boot-args 加入 -amfipassbeta 。

系統禁用 AMFI 時(即 boot-args 包含 amfi=0x80),雖然滿足執行 Root Patch 的條件,卻也會影響某些依賴 AMFI 的應用軟體,例如通訊軟體要透過 AMFI 機制存取攝影機/麥克風等隱私權限時,禁用 AMFI 模式會導致應用程式發生錯誤,所以最理想的是啟用 AMFI 模式。

承上,黑/白蘋果符合可 Root Patch 運作條件的 OpenCore 與 config.plist 配置如下:

  • 安裝以下 Kexts 至 EFI/OC/Kexts,並於 config.plist->Kernel->add 啟用:
    • AMFIPass.kext(v1.4 下載):MinKernel 20.0.0 以上,可根據黑蘋果需要 Root Patch 的最低 macOS 核心版本設定。
  • Misc -> Security -> SecureBootModel <string>:Disabled
  • NVRAM->Add->4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:加入以下內容,並於 Delete 區段補上 OCLP-Settings、revblock。
    • OCLP-Settings:(String)值  -allow_fv -allow_amfi (注意,-allow 前面都有一個空格)
  • NVRAM->Add->7C436110-AB2A-4BBB-A880-FE41995C9F82:
    • csr-active-config: <03080000>
    • boot-args: -amfipassbeta (可選擇加入)

如果 Root Patch 發生錯誤,那麼可先停用 AMFI (boot-args 加入 amif=0x80 並停用 AMFIPass.kext),做完 Root Patch 重開機生效之後,再啟用 AMFI(boot-args 拿掉 amif=0x80 並啟用 AMFIPass.kext) 。

3.2.2 恢復 BCM94360 網卡驅動

遭新版 macOS 放生的舊驅動中,特別是 BCM94360 博通網卡,它與 Apple 生態圈中「接續互通(Continuity)」深度綁定,其中 Hand off、AirDrop 等好用功能,必須是特定的博通網卡才能運作,少了這些功能,蘋果就不蘋果了(舊文複習:黑蘋果啟用 Handoff(Continuity) 功能)。macOS 14+ 僅支援 2017 以後 Intel Mac, 內建更新的博通網卡全都是特製品,BCM 網卡晶片焊死在主板上,因此市面上也買不到 macOS 14+ 支援的博通網卡產品,或是 Mac 拆機改裝品。所幸 OCLP 支援恢復 BCM94360 網卡驅動,因此透過 Root Patch 手段來啟用 Continuity 的相關功能,是目前唯一且有效的辦法。手邊的一白三黑全都是 BCM94360 系列網卡,恢復方法也是「舉一反三」全數適用。

然而恢復 BCM94360 網卡驅動,並不像恢復 Ivy Bridge / Haswell / Skylake 內顯和 NVIDIA Kepler 獨顯那樣跑一趟 Root Patch 就行。恢復 BCM94360 驅動除了 Root Patch 程序之外,OpenCore EFI 還需要一些額外的設置才能生效。在 MacBook 2013 Mid 白蘋果的 OpenCore EFI 中找得到這些設定,對黑蘋果也同樣受用。

其實恢復 BCM94360 網卡驅動的方法先前也都提過,為方便閱讀,這裡再描述一次:

1. OpenCore 的 config.plist 設定:

2. 新增 IOSkywalk.kext 與 IO80211FamilyLegacy.kext 的驅動

  • 安裝以下 Kexts 至 EFI/OC/Kexts,並於 config.plist->Kernel->add 啟用:
    • IOSkywalk.kext下載):MinKernel 23.0.0。
    • IO80211FamilyLegacy.kext下載):MinKernel 23.0.0。
    • AirPortBrcmNIC.kext:MinKernel 23.0.0,已包含在 IO80211FamilyLegacy.kext 內。
      • AirPortBrcmNIC.kext 的 BundlePath 為 IO80211FamilyLegacy.kext/Contents/PlugIns/AirPortBrcmNIC.kext,詳細設定內容可直接複製這裡

包含 Root Patch 與 BCM94360 的 config.plist 設定如下(禁用 AMFI ):

【黑蘋果】黑蘋果品嘗索諾瑪美酒 macOS 14 Sonom

包含 Root Patch 與 BCM94360 的 config.plist 設定如下(啟用 AMFI ):

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術


四、OCLP 應用於黑蘋果

4.1 黑蘋果三號(Intel 10th gen Comet Lake)

三號機(先前的介紹文章)硬體配置概述如下:

  • CPU:Intel Core i7-10700K (10th gen Comet Lake)
  • iGPU:Intel UHD Graphics 630
  • dGPU:NVIDIA RTX 3060 12G(macOS 不支援,在 config.plist 設定遮蔽)
  • 主機板:Gigabyte 技嘉 Z490 VISION G with ALC 1220 Audio
  • 版載有線網卡:Intel I225-V 2.5G
  • 無線網卡:BCM94360CD

當初建置三號機時,對照的是 iMac (Retina 5K,27-inch, 2020),機型 iMac20,1 ,猜測 iMac20,1 應該是最後一批被 macOS 放棄的設備,目前仍在新版 macOS 14+ 的支援範圍。黑蘋果三號僅需在 macOS 安裝完成之後,以 Root Patch 恢復 BCM94360 在 macOS 14+ 的驅動,也就是本文中 3.2 的部分(3.2.1 Root Patch 設定與 3.2.2 BCM94360 驅動) ,先前也寫過多篇文章(),這裡就不再重複了。

4.2 黑蘋果二號機參考來源

二號機配置如下:

  • CPU: Intel core i7-3770K with Intel HD 4000
  • iGPU: Intel HD Graphics 4000
  • dGPU: NVIDIA GTX 780 3G
  • 主機板:Gigabyte Z77X-UP4 TH with ALC892 Audio
  • 版載有線網卡:Realtek RTL8111
  • 無線網卡:BCM94360CS2

這台二號機是本站黑蘋果系列文章的要角,曾經被宣判死亡,後來竟奇蹟般復活,如今繼續挑戰安裝新版 macOS 。這台機器對照的是 iMac (27-inch, 2012 late),機型為 iMac13,2,支援的 macOS 為 10.8 ~ 10.15(.7)。然後 macOS 12+ 刪除 HD Graphics 4000 驅動,macOS 13+ 刪除老舊 CPU 的支援套件( 4 代 Haswell 以前舊 CPU 依賴的 non-AVX2.0 dyld shared caches 與其電源管理套件), macOS 14+ 加碼刪除 BCM94360 驅動,黑蘋果之路的坡度也逐年攀升。先前已經撰文介紹修改 SMBIOS (iMac13,2 -> iMacPro1,1)安裝 macOS 13+ 的方法,這裡重新彙整一次(參考來源),以不修改 SMBIOS 的方式安裝 macOS 14。

boot-args 參數說明:

  • keepsyms=1 debug=0x100 -v :黑蘋果 DEBUG 參數,開機出問題時可用,沒問題可省略。其中 -v 為訊息模式,keepsyms=1 可提供更多開機資訊,debug=0x100 禁止崩潰重啟(崩潰時畫面停留在訊息模式,用於查看錯誤)。
  • ipc_control_port_options=0:Intel 顯示卡必備。修正 Firefox 和基於 Electron 框架開發的應用程式(如 Discord ...)的問題。
  • 如果是 AMD 的顯卡(Polaris、VEGA56/64,RDNA...),boot-args 加上 -amd_no_dgpu_accel,或是 -radvesa 強迫使用基本 VESA 顯示模式(說明),不然可能會出現黑畫面。我使用的是 NVIDIA GTX 780,不用加上這個參數。

使用 OCLP 執行 Root Patch 程序時提示有 3 個修正:Ivy Bridge 與 NVIDIA Kepler 顯示,和 BCM94360 無線網卡。跑完 Root Patch 重開機就完成了。macOS 14 Sonoma 的顯示、音效、HDMI Audio 輸出、接續互通、AirDrop 等基本功能正常,只有內建非影片類的螢幕保護畫面異常,可能是老顯卡對新 Metal 支援度不佳,整體看來算是堪用等級。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

4.3  HP Probook 430 G3參考來源

設備配置如下:

  • CPU:Intel  Core i5-6200U 雙核心 Skylake
  • GPU:Intel HD Graphics 520
  • 記憶體:DDR3L-1600 8GBx2 
  • Audio:Conexant 20724 - layout 3
  • 有線網卡:Realtek RTL8111/8168
  • 無線網卡:BCM94360NG,取代原網卡 RTL8188EE
  • SD 讀卡機:RTS522A PCIe 介面讀卡機。

有關關黑蘋果的基本設置,先前已有寫過專文。這台筆電對應的機型是 MacBookPro13,1,官方支援的 macOS 版本為 10.12 Sierra ~ 12 Monterey,黑蘋果實裝也是如此,顯示/音效/無線網路/有線網路/藍芽/USB/內建觸控板/鍵盤熱鍵/電池時間/內建 SD 讀卡機...等基本功能全數運作正常。自 macOS 13 Ventura 開始,因 iGPU 內顯(Intel HD Graphics 520) 不受官方支援,因此 OpenCore EFI/config.plist 的 iGPU 節點 DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) 有兩種設定方式:

  • 沿用 Skylake:
    • AAPL,ig-platform-id (Type: Data) :<00001619>
    • device-id:移除不設定(可在 Key 加上 # 註記,如 #device-id)
    • 需搭配 OCLP(OpenCore Legacy Patcher)恢復驅動
      • 優點:恢復的功能較為完整,例如可 HDMI 輸出畫面
      • 缺點:新版 macOS 上市時,須等待 OCLP 更新版本。
  • 偽裝為 Kaby Lake:
    • AAPL,ig-platform-id (Type: Data) :<00001B59> (桌上型建議值 <00001259>)
    • device-id:<16590000> 
      • 優點:截至目前 macOS 15 Beta Sequoia 仍然可用。
      • 缺點:沒有 HDMI 畫面輸出,可能有電源管理方面的問題(闔蓋可能不會關閉螢幕)。

這次嘗試搭配 OCLP 的 Root Patch 安裝 macOS 14,不偽裝 CPU 與 GPU ID 。

大致上就是專文中「三、黑蘋果」的基本作法,再加上本文中 3.1(不受支援機型安裝新版 macOS)與 3.2 的部分(3.2.1 Root Patch 設定與 3.2.2 BCM94360 驅動)即可。其他特別的改動如下:

boot-args 說明:

  • rtcfx_exclude=0E-7F,AC-FF :HP 筆記型電腦的特定參數,解決每次運行 macOS 之後出現 CMOS checksum error 導致 BIOS 重置的問題。須搭配載入 RTCMemoryFixup.kext
  • keepsyms=1 debug=0x100 -v :黑蘋果 DEBUG 參數,開機出問題時可用,沒問題可省略。其中 -v 為訊息模式,keepsyms=1 可提供更多開機資訊,debug=0x100 禁止崩潰重啟(崩潰時畫面停留在訊息模式,用於查看錯誤)。
  • ipc_control_port_options=0 :Intel 顯示卡必備。修正 Firefox 和基於 Electron 框架開發的應用程式(如 Discord ...)的問題。
  • -nokcmismatchpanic :作用未知,省略也可以。
  • -rtsfbeta :內建 PCI 介面讀卡機驅動參數。使用的 RealtekCardReader.kext 與 RealtekCardReaderFriend.kext 驅動從 2022 年至今並未更新,此參數會嘗試在 macOS 12 以後更高版本運作。
  • -disablegfxfirmware :解決 Root Patch 之後 Intel iGPU 因 ME 韌體無法載入導致不能驅動的問題。

在操作的過程中發生了一段插曲。在製作 OpenCore EFI 的過程中,13 Ventura 出現死循環,14 Sonoma 則是無法進入安裝介面(使用 iGPU + CPU 偽裝成 Kaby Lake 時正常)。這問題搞了很久,才發現先前自己多事,在 config.plist 的 DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0) 節點,也就是 Intel Graphics HD 520 的裝置節點中,假掰的加上 device_type 屬性,在 macOS 10.12 ~ 12 雖然表現正常,但 macOS 13 以後就出錯了。拿這行設定之後,一切就恢復正常了。

使用OCLP 執行 Root Patch 程序時提示有 2 個修正:Sky Lake 顯示和 BCM94360 無線網卡。跑完 Root Patch 重開機就完成了。 (若 iGPU 偽裝成 Kaby Lake,在 macOS 14 的 Root Patch 只會出現 BCM94360 無線網卡)

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

另外這台 HP Probook 430 G3 在 Root Patch 之後,會發生以下問題:

[IGPU] Hash data from ME never returned, status = 1, doing retry #xx

跑了 50 次之後才會進入桌面,發現內顯無法驅動。查了一下是 GuC Firmware 無法載入,在 boot-args 加入 -disablegfxfirmware 就解決了。然而這又產生另一個問題,可以 HDMI 畫面輸出但無法 HDMI Audio 輸出。

Root Patch 之後的 HP Probook 430 G3,除了無法 HDMI Audio 輸出外,其他如 Hand Off / AirPlay 等功能全都能運作,感覺上離全功能恢復似乎只差臨門一腳,希望未來有黑果大神出手解決。

4.4  HP Probook 430 G2參考來源

設備配置如下:

  • CPU:Intel Core i5-5200U (2.2 GHz Up to 2.7 GHz, 1600MHz/3 MB L3 cache 第五代 Broadwell 雙核心)
  • GPU:Intel HD Graphics 5500
  • 記憶體:DDR3L-1600 4GBx2
  • LCD:13.3吋 LED (1366 x 768)
  • Audio:Realtek ALC282 - layout 3
  • 有線網卡:Realtek RTL8168GU/8111GU PCI Express Gigabit Ethernet
  • 無線網卡:BCM94352HMB,取代原網卡 Intel Dual BandWireless-AC 3160 802.11 a/b/g/n/ac(1x1) WiFi + BT 4.0
  • SD 讀卡機:RTS5227 PCIe 介面讀卡機。

早在 2017 年就寫過這台筆電的黑蘋果文章教學文,不過當時仍是 Clover EFI 的時代,用了幾年之後於 2021 年改為 OpenCore 引導,沒多久又因為某不可抗因素只好改回 Windows 10 。這台機器安裝黑蘋果時對應機型是 MacBookAir7,2,官方支援的 macOS 版本為 10.10.2 Yosemite ~ 12 Monterey,雖然大部分的基本功能都正常,但由於 mini PCIe 介面的無線網卡始終沒有 O.O.B 的產品,除了得打上一整套組合拳修正之外,有時 Wifi / BT 會無預警不工作、藍芽有驅動卻無法連線,以及內建 SD 讀卡機無法使用或異常(無預警跳出)等等小問題,使用體驗多少打了點折扣,所以大部分時間都是換回 Intel 網卡回到 Windows 10 使用。

在確定可使用 OC 引導本來可運行的 macOS 之後,繼續支援新版 macOS 方式和 430 G3 類似,加入本文 3.1(不受支援機型安裝新版 macOS)與 3.2 的部分(3.2.1 Root Patch 設定與 3.2.2 BCM94360 驅動)即可。其他特別的改動如下:

boot-args 說明參考上面 430 G3 的內容即可。

使用 OCLP 執行 Root Patch 程序時提示有 2 個修正:Broadwell 顯示和 BCM 無線網卡。跑完 Root Patch 重開機就完成了。不過藍芽似乎有問題,有驅動但連不上任何裝置,一樣的 OC EFI 設定裝回 macOS 12 Monterey 不須 Root Patch 也是一切正常。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術


五、OCLP 其他補充

5.1 黑蘋果使用的 macOS + OCLP 安裝碟參考來源

用 OCLP 應用程式製作的白蘋果 macOS 安裝碟,在系統安裝完成之後也會自動一併安裝 OCLP 與執行 Root Patch 程序。黑蘋果也可以這樣搞嗎?答案是可以,而且製作方式相當簡單,只需在對應黑蘋果的 macOS 安裝碟中,加入 AutoPkg-Assets.pkg 和 AutoPkgInstaller.kext 兩個檔案就行了。說明如下:

  • AutoPkg-Assets.pkg(下載):近期每次 OCLP 版本發表時,都會有 GUI.app 版和 AutoPkg-Assets.pkg 兩種類型。這個 AutoPkg-Assets.pkg 就是用來製作自動安裝 OCLP 與自動 Root Path 程序的套件。下載 AutoPkg-Assets.pkg 之後,放到 macOS 安裝碟的 Library/Packages/ 目錄下:
    • Finder 需要開啓檢視隱藏檔的功能(同時按下 Cmd (Win) + Shift + . (點符號) 鍵),才能看到 macOS 安裝隨身碟的 Library 目錄。
    • 預設沒有 Packages 目錄,需要自己手動建立。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

  • AutoPkgInstaller.kext:可從這裡下載,或是執行與 AutoPkg-Assets.pkg 同一版號的 GUI.app 應用程式,執行「Build and Install OpenCore」,然後到 Log 顯示的路徑去找,會有一個 EFI/OC/Kexts 目錄,裡面就有這個檔案。取得檔案之後放在安裝碟的 OpenCore EFI 的 EFI/OC/Kexts 目錄下,並於 config.plist->Kernel->add 啟用。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

這樣就製作完成了。拿這支 USB 安裝系統,最後一次重開機時畫面會出現一顆蘋果,下方顯示已完成 ??% 進度條,就表示正在安裝 OCLP 和執行 Root Patch 程序。

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

2024.09.15 補充OCLP 於 2024 年 9 月 15 日釋出最新版 v2.0.0,支援 macOS 15 Sequoia。實測發現,由於 Root Patch 項目的差異,OCLP v2 在某些機型上 Root Patch 時必須聯網下載特定檔案,因此在安裝 macOS 的過程中,就必須使用有線網路聯網,否則安裝完 macOS 之後的自動 Root Patch 程序可能會失敗。

5.2 Root Patch 時出現 SystemVersion.plist build version mismatch:23F79 vs XXXXX

很不幸我也遇到了。用二號機安裝 macOS 14.3.1 Sonoma 也用 OCLP v1.5 進行 Root Patch 完成了,結果突然有一天開機又變成沒有 Root Patch 的狀態,再執行 Root Patch 時出現這個訊息。然後在這種情況下,直接移除本來的 OCLP 並找來舊版再 Root Patch,然後悲劇發生,整個系統變磚了,只能重灌。

查了一下,這個是最近一兩個月才出現的問題。如果系統的版本比 14.5 還舊,且系統中有 macOS 14.5 的更新檔時,Root Patch 就會發生這個問題。解決方式是:

  • 查看 /System/Library/AssetsV2/com_apple_MobileAsset_MacSoftwareUpdate 目錄下是否有更新檔(通常會佔去幾 GB 的容量)
  • 如果有,強制刪除該目錄底下的檔案。
  • 修改軟體更新設定,取消「可用時下載新的更新項目」,即取消自動下載更新檔。
  • 重開機

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

【黑蘋果】黑蘋果時代末期 - OCLP 延命之術

註:因為已經重灌,後來我無法重現這個問題。僅將網路上找到的答案先做紀錄。

arrow
arrow
    創作者介紹
    創作者 benjenq 的頭像
    benjenq

    -Ben's PHOTO-

    benjenq 發表在 痞客邦 留言(0) 人氣()