黑苹果如何播放DRM内容?
写在前面
奈飞(Netflix,另一称“网飞”)近几年真的很火,并且越来越火。从《Seven》(七宗罪)到《V for Vendetta》(V 字仇杀队),从《Love、Death、Robots》(爱死机)到 2021 年火遍全球的《Squid Game》(鱿鱼游戏),奈飞旗下手握数字 IP 无数,这些鼎鼎大名的作品相信已经成为一代人心中的记忆,不过本文接下来并不是要探讨奈飞的数字内容宇宙。
随着流式媒体平台的火爆,有部分小伙伴通过各种姿势上车了 Netflix/Amazon Prime/Disney+/Apple TV+ 等新兴流媒体平台的会员,然后发现自己的黑苹果有时并不能正常播放这些内容;再或者购入了一套心仪已久的 AirPods Pro/Max/HomePod,发现赠送的 Apple Music 会员无法在黑苹果上播放...
这其中的原因,就是 DRM 在作怪。
DRM,英文全称 Digital Rights Management,直译为“数字版权管理”。数字版权管理是指数字内容,如音视频节目内容、文档、电子书籍等在生产、传播、销售、使用过程中进行的权利保护、使用控制与管理的技术。详见百度百科 或 Wikipedia,本文不深究其原理及作用,仅针对黑苹果如何处理带 DRM 系统的数字内容做一些说明和探讨。
遗憾的是,在 macOS 升级到 11.x 版本(Big Sur)和 Safari 14.x 以后,苹果公司移除了 macOS 所有 DRM 软件解码器,DRM 内容的播放在苹果自家产品上是这么处理的:T2 和 M1 芯片内置了 DRM 硬件解码器;没有 T2 芯片的机型则使用拥有苹果数字证书的 iGPU 固件处理 DRM 内容,没有核显的机型则使用独立显卡的硬件解码器,而更古老的硬件解码器(例如 NVIDIA VP3)则干脆直接删除支持,因为这些机型本来也在新版本 macOS 的计划淘汰名单中。
单就奈飞的情况来看,目前 4K 内容和未来更高清的数字内容会强制要求使用 T2/M1 机型(macOS)或 7 代酷睿及以上平台(Windows),详见 9to5mac 这篇文章,未来的大方向就是内容版权方要求数字内容必须经由硬件解码。
铺垫那么多,其实就是要明确以下几点:
- 新兴的流式媒体数字内容平台很多都配备了 DRM 以保护版权方利益;
- 普通 PC(黑苹果)的核显不支持苹果的 iGPU 固件,也没有苹果的数字证书所以不支持硬件解码 DRM 内容;
- macOS 10.15.x 及以下版本目前仍然保留了 DRM 软件解码器;
- macOS 11.x 及以上版本完全删除了 DRM 软件解码器和古老的硬件解码器支持,因此 DRM 内容解码靠硬件,需要使用免驱支持的独立显卡,可见「macOS 独立显卡支持表」,免驱显卡优先选择较新型号,AMD 显卡建议 RX400/500(Polaris)及以上,NVIDIA 的免驱显卡则完全不建议考虑。
- 鉴于 11.x 及以上系统不存在 DRM 软件解码器,接下来要讨论的内容主要基于 10.15.x 的 macOS 系统。
DRM 解码测试
建议在你认为已经完成黑苹果安装调试,驱动核显及优化独显(如果有优化方案的话)之后,再进行下列几项常见的 DRM 测试。
FairPlay 1.x:基于软件的 DRM,主要用于旧型号 Mac。
- 最简单的测试方法是播放 iTunes 商店里的影片,或者尝试这个:FairPlay 1.x Test.m4v,提取码:3qv3
- 只要 WhateverGreen.kext 的设置正确,FairPlay 1.x 的影片适用于任何黑苹果配置,包括只有核显的配置。但是,FairPlay 1.x 电影只能在仅有核显的配置上播放大约 3-5 秒,然后错误地认为不支持 HDCP。
FairPlay 2.x/3.x:基于硬件的 DRM,主要见于奈飞(Netflix)和 Amazon Prime。
- 直接到奈飞或 Amazon Prime 网站点几个 4K 影片看一下,或者播放 Amazon Prime 预告片《蜘蛛侠:英雄远征》,这个预告片没有 DRM 加密,但 Amazon 的播放器仍然会先检查是否支持。
- 「注意」要求 Polaris(RX4x0/RX5x0)及更新架构的 AMD 显卡。
FairPlay 4.x:混合 DRM,见于 AppleTV+。
- 如果你所在的地区可以正常使用 AppleTV,打开运行,选择 TV+,然后选择 Free AppleTV+ Premieres,然后点击任意内容进行测试。
- 支持 AppleTV+ 业务的地区苹果公司会赠送一定时间试用,可供测试。
- 「注意」要求没有核显的 Xeon 系列处理器或 Polaris(RX4x0/RX5x0)及更新架构的 AMD 显卡。在混合 DRM 模式和没有核显的情况下,强制 FairPlay 1.x 工作是可行的。
如果上述测试一切正常,就没有必要继续往下看了。
Shiki.kext
- 在软件解码 DRM 内容流行时,黑苹果世界有位大神开发了 Shiki.kext,目前该项目已合并到 WhateverGreen.kext(WEG),WEG 继承了 Shiki.kext 的所有 DRM 补丁功能。Shiki.kext 允许调用 macOS 内置的 DRM 软件解码器对 DRM 内容进行解码播放,但并不能把苹果公司已删除的 DRM 软件解码器带回来,因此并不保证 11.x 及以上系统可以正常工作。
- macOS 10.15.x Catalina + Safari 13.x 支持很多 DRM 解码器类型,Acidanthera 团队中的大神 vit9696 曾经整理了一个详细的表格,适用于常见的各类黑苹果硬件类型:
配置 | 黑果机型 | 适用模式 | iTunes 预告片 | iTunes 电影 | 苹果 TV+ | Amazon Prime 预告片 | Amazon Prime/Netflix | 英特尔 IQSV |
---|---|---|---|---|---|---|---|---|
核显+AMD独显 | iMac/Macmini | shikigva=16 | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 普通硬解 | 不支持 | 支持 |
核显+AMD独显 | iMac/Macmini | shikigva=80 | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 硬解 FairPlay 3.0 | 硬解 FairPlay 3.0 | 支持 |
仅AMD独显 | iMacPro/MacPro | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 硬解 FairPlay 3.0 | 硬解 FairPlay 3.0 | 不支持 | |
仅AMD独显 | iMacPro/MacPro | shikigva=128 | 硬解 FairPlay 1.0 | 硬解 FairPlay 2.0 | 硬解 FairPlay 4.0 | 硬解 FairPlay 3.0 | 硬解 FairPlay 3.0 | 不支持 |
核显+NVIDIA独显 | iMac/Macmini | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 不支持 | 普通硬解 | 不支持 | 支持 | |
仅NVIDIA独显 | iMacPro/MacPro | shikigva=256 | 软解 FairPlay 1.0 | 软解 FairPlay 2.0 | 软解 FairPlay 3.0 | 普通硬解 | 不支持 | 不支持 |
仅核显 | iMac/Macmini | 软解 FairPlay 1.0 | 不支持 | 不支持 | 普通硬解 | 不支持 | 支持 |
几点说明:
- 「注意」:适用上表的硬件配置情况,iMac 机型必须满足这个条件:拥有 AMD/NVIDIA 独立显卡的配置,核显需设置为专门用于硬解加速的帧缓冲 ID,例如 0x3E9B0007 核显是有画面输出的,而 0x3E980003 核显仅用于计算加速;iMacPro 和 MacPro 机型是没有核显的处理器机型首选。
- 「普通软解」:软件未加密解码器,任意情况下都能正常工作;
- 「普通硬解」:硬件未加密解码器,值需要兼容硬解的 GPU 就能工作;
- 「软解 FairPlay 1.0」:软件 FairPlay 1.0 解码器 (CoreFP);
- 「软解 FairPlay 2.0」:软件 FairPlay 1.0 解码器 (CoreFP),需要 HDCP;
- 「软解 FairPlay 3.0」:软件 FairPlay 4.0 解码器 (CoreLSKD),需要 HDCP 且无需核显;
- 「硬解 FairPlay 1.0」:硬件 FairPlay 1.0 解码器 (CoreFP),需要支持的 AMD 显卡;
- 「硬解 FairPlay 2.0」:硬件 FairPlay 1.0 解码器 (CoreFP),需要 HDCP 和支持的 AMD 显卡;
- 「硬解 FairPlay 3.0」:硬件 FairPlay 2.0/3.0 解码器 (CoreLSKDMSE),需要 HDCP 和支持的 AMD 显卡;
- 「硬解 FairPlay 4.0」:硬件 FairPlay 4.0 解码器 (CoreLSKD),需要 HDCP 和支持的 AMD 显卡;
- 「英特尔 IQSV」:指的是 Intel Quick Sync Video,当存在英特尔核显并在 BIOS 中启用,且设置正确时才有效;
- 上表中的 shikigva=N 可以直接作为启动参数使用,例如 shikigva=80 或 shikigva=16。也可以用作设备属性(DeviceProperties)进行注入。启动参数的添加方法见「启动参数说明」一文,下面介绍一下如何用设备属性方法分配到你的核显/独显上。「注意」如果你有多个显卡,只能选择其中一个进行设备属性注入,否则无法保证 shikigva 功能是否工作正常。
设备属性注入法
首先从 Hackintool 获取你的显卡 Pci 路径:
如图所示复制 Device Path。
然后打开 OpenCore Configurator / OpenCoreAuxiliaryTools / PlistEDPlus 编辑器(适用 OpenCore 用户)Clover Configurator (适用 Clover 用户),照图输入:
上图中的 shikigva=80 是可以自行定义的,可参考是本文之前给出的表格,另一种是参考 WEG 的开发堆栈中 kern_shiki.hpp 的内容,开发团队写了非常多的注释,如下:
ShikiGVAPatches {
// Remove forceOfflineRenderer from AppleGVA Info.plist.
// This is required to allow hardware acceleration on several mac models with discrete GPUs
// when only IGPU is available.
// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
ForceOnlineRenderer = 1,
// Remove hweBGRA from AppleGVA Info.plist.
// hweBGRA is not supported by NVIDIA GPUs, so the patch is sometimes required when using NVIDIA
// in a mac model meant to be used with AMD or Intel.
// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
AllowNonBGRA = 2,
// Prior to 10.13.4 certain GPU+CPU combinations were not meant to provide hardware acceleration and had to be patched.
// The overall problematic configuration list is: NVIDIA+BDW, NVIDIA+SKL, NVIDIA+KBL, AMD+IVB, NVIDIA+SNB.
// Enabled automatically if shikigva is *NOT* passed on 10.13.3 and earlier. All are fixed in 10.13.4.
ForceCompatibleRenderer = 4,
// Unlike 10.12.6 without security updates and earlier, on 10.13 and latest 10.12.6 AppleGVA patches
// do not apply to all processes, and each process needs to be patched explicitly. This is a bug
// in Lilu, which needs to be explored and fixed. For now this bit ensures that the processes present
// in WHITELIST section of Patches.plist will definitely get the fixes even on 10.13 and 10.12.6.
// On 10.12.6 and 10.13 this must be used if any of the following bits are used:
// - ForceOnlineRenderer
// - AllowNonBGRA
// - ForceCompatibleRenderer
// - ReplaceBoardID
// - FixSandyBridgeClassName
// It is enabled automatically on 10.12 and 10.13 if shikigva is *NOT* passed and ForceCompatibleRenderer or
// FixSandyBridgeClassName are automatically enabled.
AddExecutableWhitelist = 8,
// Use hardware DRM decoder (normally AMD) by pretending to be iMacPro in apps that require it.
// For example, in Music.app or TV.app for TV+.
UseHwDrmDecoder = 16,
// Replace board-id used by AppleGVA and AppleVPA by a different board-id.
// Sometimes it is feasible to use different GPU acceleration settings from the main mac model.
// By default Mac-27ADBB7B4CEE8E61 (iMac14,2) will be used, but you can override this via shiki-id boot-arg.
// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
ReplaceBoardID = 32,
// Attempt to support fps.2_1 (FairPlay 2.x) in Safari with hardware decoder. Works on most modern AMD GPUs.
// Note, AMD Polaris Ellesmere is broken in 10.15 (e.g. RX 590), whereas AMD Polaris Baffin (e.g. RX 460) is fine.
// Easiest check is to run WebKitMediaKeys.isTypeSupported("com.apple.fps.2_1", "video/mp4") in Safari Web Console.
// Broken GPU driver will just freeze the system with .gpuRestart crash.
UseHwDrmStreaming = 64,
// Disables software decoder unlock patches for FairPlay 1.0.
// This will use AMD decoder if available, but currently requires IGPU to be either not present or disabled.
UseLegacyHwDrmDecoder = 128,
// Enables software decoder unlock patches for FairPlay 4.0.
// This will use software decoder, but currently requires IGPU to be either not present or disabled.
UseSwDrmDecoder = 256,
};
Shiki 全参数解释
小结
总的来说,应用 Shiki 的功能调整 macOS 的 DRM 解码策略是比较简单的。举个例子,如果你的配置是 AMD 5900X,独显是 5700XT,那么按照表格你可以选择 shikigva=128,你可以使用启动参数方式,也可以使用设备属性注入方式,修改好配置后重启系统进行验证是否生效;
再举个例子,如果你的配置是 i9-9900K,独显是 Radeon VII,选择面就宽一点,在启用核显的情况下有 shikigva=16 和 shikigva=80 两种,在关闭核显后还可以尝试 shikigva=128,修改好配置后重启系统进行验证是否生效。
比较少见的特殊配置,例如 i7-3770k + 6800XT (已关闭核显)这类老处理器搭较新显卡的情况,不包含在上面的表单中。建议按照上面给出的 Shiki 的全功能解释逐个尝试,或自行研究。
对于比较古老的处理器(例如 Xeon 或 Core 2 Quad)搭配支持的 AMD 显卡,要使用带 DRM 的流式媒体时,需要给显卡注入以下设备属性:
unfairgva | 01 00 00 00 | Data
AMD 显卡的视频解码器首选项可以覆盖部分类型的 DRM 内容(如 Apple TV 和 iTunes 电影流)的首选项。但是这些首选项可能不完全和 macOS 其它功能兼容,可能导致其他软件或程序的解码/编码功能出现问题。下面提供了几组可供修改的首选项修改,不建议日常使用,在需要时修改。打开终端按需输入即可:
defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes
# 强制 AMD AVC 加速解码器
defaults write com.apple.AppleGVA gvaForceAMDKE -boolean yes
# 强制 AMD DRM 解码器用于流媒体服务(例如 AppleTV 和 iTunes 电影流)
defaults write com.apple.AppleGVA gvaForceAMDAVCEncode -boolean yes
# 强制 AMD AVC 加速编码器
defaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -boolean yes
# 强制 AMD HEVC 加速解码器
defaults write com.apple.AppleGVA disableGVAEncryption -string YES
# 强制 AMD HEVC 加速解码器
defaults write com.apple.coremedia hardwareVideoDecoder -string force
# 强制硬件加速视频解码器(适用于任何分辨率)
defaults write com.apple.coremedia hardwareVideoDecoder -string disable
# 关闭硬件加速视频解码器(QuickTime / AppleTV)
上述第一条还可能同时可以解决 macOS Big Sur 中 VDADecoderCreate failed. err: -12473 的问题。
1. 本站资源收集于网络,仅做学习和交流使用,请于下载后24小时内删除。如果你喜欢我们推荐的软件,请购买正版支持作者。
2. 如有无法下载的链接,联系:admin#heipg.cn,或到QQ群进行反馈,我们将及时进行处理。
3. 本站发布的内容若侵犯到您的权益,请联系站长删除,联系方式:admin#heipg.cn,我们将第一时间配合处理!
黑苹果星球 » 黑苹果如何播放DRM内容?
12AppleMuisc中已下载的视频黑屏,有声音没画面,未下载的可以出画面🥺
请问爱奇艺会员无法开启4K跟这个有关系不
好了,破案了,不要在App Store下载爱奇艺,到官网去下载
我设置了 强制 AMD AVC 加速解码器等等的 导致我的苹果录屏 截屏软件失效等一系列问题 ,您提到“在需要时修改”那现在如何关闭这些修改项呢
简单反向操作,把yes改成no,enable改成disable,反之亦然
不错,学习一下