- 注意:WhateverGreen 的 DRM 補丁目前不支持 Safari 14 和 macOS 11、Big Sur。但是,Catalina 及更早版本中的 Safari 13 支持得很好。
- 注 2:不使用基於硬件的 DRM 的瀏覽器(即 Mozilla Firefox 或基於 Chromium 的瀏覽器,如 Google Chrome 和 Microsoft Edge)將具有有效的 DRM,而無需在 iGPU 和 dGPU 上進行任何工作。以下指南適用於使用基於硬件的 DRM 的 Safari 和其他應用程序。
因此,對於 DRM,我們需要提及以下幾點:
- DRM 需要支持的 dGPU
- 請參閱GPU 購買者指南 (打開新窗口)對於支持的卡
- 僅 iGPU 系統的 DRM 已損壞
- 在 10.12.2 之前,這可以通過 Shiki(現在是WhateverGreen)修復,但在 10.12.3 中中斷
- 這是因為我們的 iGPU 不支持 Apple 的固件以及我們的管理引擎 (打開新窗口)沒有蘋果的證書
- 工作硬件加速和解碼
測試硬體加速和解碼
因此,在我們開始修復 DRM 之前,我們需要確保您的硬件正常工作。最好的檢查方法是運行VDADecoderChecker (打開新窗口):
如果此時您失敗了,您可以檢查以下幾點:
- 確保您的硬件受支持
- 確保您運行的 SMBIOS 與您的硬件匹配
- 例如,不要在台式機上使用 Mac Mini SMBIOS,因為 Mac Mini 運行移動硬件,因此 macOS 會期望相同
- 確保在 BIOS 中啟用了 iGPU 並且具有適合您的設置的正確屬性(
AAPL,ig-platform-id
如果需要,device-id
)- 您可以查看指南或WhateverGreen 手冊中的DeviceProperties 部分(打開新窗口)
- 避免不必要的 ACPI 重命名,所有重要的都在 WhateverGreen 中處理
- 將 GFX0 更改為 IGPU
- 將 PEG0 更改為 GFX0
- 將 HECI 更改為 IMEI
- 等等(打開新窗口)
- 確保加載了 Lilu 和WhateverGreen
- 確保沒有任何遺留的圖形補丁存在,因為它們已經被吸收到了WhateverGreen 中:
- IntelGraphicsFixup.kext
- NvidiaGraphicsFixup.kext
- 式樣
- 確保沒有任何遺留的圖形補丁存在,因為它們已經被吸收到了WhateverGreen 中:
檢查 Lilu 和WhateverGreen 是否正確加載:
kextstat | grep -E "Lilu|WhateverGreen"
嘿,這些 kext 中的一個或多個沒有出現
通常,最好的起點是查看您的 OpenCore 日誌並查看 Lilu 和 WhateverGreen 是否正確注入:
14:354 00:020 OC: Prelink injection Lilu.kext () - Success
14:367 00:012 OC: Prelink injection WhateverGreen.kext () - Success
如果它說注入失敗:
15:448 00:007 OC: Prelink injection WhateverGreen.kext () - Invalid Parameter
您可以查看原因的主要位置:
- 注入順序:確保Lilu在kext順序中高於WhateverGreen
- 所有 kexts 都是最新版本:對於 Lilu 插件尤其重要,因為不匹配的 kexts 會導致問題
注意:要設置文件日誌記錄,請參閱OpenCore 調試 (打開新窗口).
注意:在 macOS 10.15 和更新版本上,AppleGVA 調試默認處於禁用狀態,如果您在運行 VDADecoderChecker 時遇到一般錯誤,您可以通過以下方式啟用調試:
defaults write com.apple.AppleGVA enableSyslog -boolean true
並在完成後撤消此操作:
defaults delete com.apple.AppleGVA enableSyslog
測試數位版權管理
所以在我們深入之前,我們需要回顧一些事情,主要是你會在野外看到的 DRM 類型:
FairPlay 1.x:基於軟件的 DRM,用於更輕鬆地支持舊版 Mac
- 最簡單的測試方法是播放 iTunes 電影:FairPlay 1.x 測試(打開新窗口)
- FairPlay 1.x 預告片將適用於任何配置,如果 WhateverGreen 設置正確 – 包括僅 iGPU 的配置。但是,FairPlay 1.x電影只能在僅 iGPU 的配置上播放大約 3-5 秒,之後會出現不支持 HDCP 的錯誤。
FairPlay 2.x/3.x:基於硬件的 DRM,可在 Netflix、Amazon Prime 中找到
- 有兩種測試方法:
- 在 Netflix 或 Amazon Prime 中播放節目
- 播放亞馬遜 Prime 預告片:蜘蛛俠:英雄遠征(打開新窗口)
- 預告片本身不使用 DRM 但亞馬遜仍會在播放前進行檢查
- 注意:需要較新的 AMD GPU 才能工作 (Polaris+)
FairPlay 4.x:混合 DRM,在 AppleTV+ 上找到
- 您可以打開 TV.app,選擇 TV+ -> Free Apple TV+ Premieres,然後單擊任何劇集進行測試,無需任何試用(您確實需要一個 iCloud 帳戶)
- 如果你想使用 Apple TV+ 也有免費試用
- 注意:需要沒有 iGPU (Xeon) 或更新的 AMD GPU 才能工作 (Polaris+)
- 當 iGPU 不存在時可以強制 FairPlay 1.x
如果這些測試一切正常,您就無需繼續!否則,繼續。
修復 DRM
因此,為了修復 DRM,我們主要可以走 1 條路線:修補 DRM 以使用軟件或 AMD 解碼。Vit 為不同的硬件配置製作了一個很棒的小圖表:
那麼你如何使用它呢?首先,確定您在圖表中的配置(AMD 代表 GPU,而不是 CPU)。如果您匹配硬件配置,則列出的 SMBIOS(IM = iMac、MM = Mac Mini、IMP = iMac Pro、MP = Mac Pro)是您應該使用的。如果您不匹配圖表中的任何配置,那麼您就不走運了。
接下來,確定您需要使用哪種 Shiki 模式。如果您的設置有兩種配置,它們將在使用的 Shiki 標誌上有所不同。通常,您需要硬件解碼而不是軟件解碼。如果模式列是空白的,那麼你就完成了。否則,您應該shikigva
使用 DeviceProperties > Add 作為屬性添加到任何 GPU。例如,如果我們需要使用的模式是shikigva=80
:
您還可以使用引導參數 – 這在模式列中。
這是一個例子。如果我們有 Intel i9-9900K 和 RX 560,配置將是“AMD+IGPU”,我們應該使用 iMac 或 Mac Mini SMBIOS(對於此特定配置,iMac19,1)。然後我們看到配置有兩個選項:一個是 mode shikigva=16
,一個是shikigva=80
. 我們看到區別在於“Prime Trailers”和“Prime/Netflix”。我們希望 Netflix 正常工作,因此我們將選擇該shikigva=80
選項。然後將shikigva
類型號/整數和值80
注入我們的 iGPU 或 dGPU,重新啟動,DRM 應該可以工作。
這是另一個例子。這一次,我們有一個 Ryzen 3700X 和一個 RX 480。我們在這種情況下的配置只是“AMD”,我們應該使用 iMac Pro 或 Mac Pro SMBIOS。同樣,有兩個選項:沒有 shiki 參數,和shikigva=128
. 我們更喜歡硬件解碼而不是軟件解碼,因此我們將選擇該shikigva=128
選項,並再次注入shikigva
我們的 dGPU,這次是 value 128
。重新啟動和 DRM 工作。
筆記:
- 您可以使用 gfxutil 找到您的 iGPU/dGPU 的路徑。
path/to/gfxutil -f GFX0GFX0
:對於 dGPU,如果安裝了多個,請檢查 IORegistryExplorer 以了解您的 AMD 卡的名稱IGPU
: 對於 iGPU
- 如果您
shikigva
使用 DeviceProperties 進行注入,請確保您只對一個 GPU 執行此操作,否則whateverGreen 將使用它首先找到的任何內容,並且不能保證一致。 - IQSV 代表英特爾快速同步視頻:這僅在 iGPU 存在並啟用且設置正確時才有效。
- 特殊配置(如 Haswell + AMD dGPU 與 iMac SMBIOS,但 iGPU 已禁用)未包含在圖表中。您必須自己對此進行研究。
- 式源 (打開新窗口)有助於理解什麼標誌做什麼以及何時應該使用它們,並且可能有助於特殊配置。
- 對於
VDADecoderCreate failed. err: -12473
Big Sur 中的錯誤,強制使用 AMD 解碼器(在適用的系統上)可以幫助解決此問題:defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes