关于 Google Play 保护机制和 DRM 安全等级的那些事

关于 Google Play 保护机制和 DRM 安全等级的那些事

GMS/GSF 简介

Google 的 GMS 服务(Google Mobile Service)和 GSF 服务(Google Service Framework)是 Android 设备上不可缺失的重要核心功能的一部分

  • GMS 服务 为 Android 设备带来对 Google 一系列 App 和 API 的支持,如:Gmail、Chrome 、Youtube、Google Maps、Play Store 等应用程序和服务;
  • GSF 服务 我们习惯称之为『Google 服务框架』,是确保 Google 其他服务能够完好运行的基础

世界各地的 Android 设备制造商都可以选择在设备上选择预装 Google 热门应用,Google 的 Android 团队会对这些设备进行认证,以确保它们收到安全保护,并能正常安装和运行来自 Google 和 Play Store 的应用,👉 详细了解 Google Play 保护机制

在中国大陆销售的 Android 设备,大多数品牌选择预装最基础的 GMS 服务(默认冻结,更新或安装 Google Play Store 即可激活),如小米/红米绝大部分机型、一加全部机型、被制裁前的华为手机的大部分机型……预装有 GMS 服务的设备一般都已经送过 Google 的 Android 团队进行检测,并确保它们通过了 GSF 认证,这样的话当我们激活了设备上的 GMS 服务时,我们应该可以在 Play Store 的 设置关于 页面的 Play 保护机制认证 栏看到 设备已通过认证 的字样。

需要注意的一点是,对于小米/红米的 MIUI 系统,当你切换了开发版(内测版) 系统后,该认证就会失效,因为开发版(内测版) 系统更新更频繁,不可能每次更新都去过测认证的;除此外,在一些设备上我们解锁了 Android 设备的 🔒 Bootloader 锁或者刷入了自定义 ROM(第三方 ROM)后该认证也会失效。安装有 GSF 服务的 Android 设备里都有个特定的 GSF ID,它在 系统变更GSF 服务 被清除数据后进行变更,可能会导致 Google Play 保护机制认证不通过

如导致 Netflix 无法找到或下载

Widevine DRM 安全等级

除此外,大部分 Android 设备还有个 Widevine DRM 安全等级,它一般按照 L1~L3 等级区分:

  • Security Level 1 (L1):完全在可信执行环境 TEE(Trusted Execution Environment)中进行视频处理和加密,此级别是指硬件级 DRM
  • Security Level 2 (L2):加密仍在 TEE 中执行,视频处理通过单独的视频软件或硬件完成,此级别仍是指硬件级 DRM
  • Security Level 3 (L3):该设备不存在 TEE 环境,解密过程直接在浏览器中进行,此级别是指软件级 DRM

Q:更高的 Widevine DRM 安全等级有什么用呢?
A:包括 Amazon Prime VideoBBCHuluNetflixSpotifyDisney+ 等在线流媒体平台使用 Widevine DRM 来管理优质内容的分发,并且锁定某些智能手机以不高于 480p 的分辨率播放电影或电视节目,锁定的原因是这些服务受到数字版权管理 (DRM)的保护,以防止这些视频文件的复制和未经授权的重新分发。

为了确保 Android 智能手机和许多其他设备免受盗版的侵害,这些流行的流媒体服务使用了 Google 的 Widevine DRM 平台,Widevine Cloud Licensing Service 由 Google 直接运营

开始动手

首先在 这里 可以使用设备型号或者设备代号检索你的 Android 设备是否已通过认证(下载 CSV 表格 查看)

以我的设备为例

以我的参考环境为例:

  • 设备型号:Redmi K30 Pro Zoom Edition(国际版为 POCO F2 Pro)
  • 出厂 Widevine DRM 安全等级 L1
  • 必须 预装 GMS&GSF,且已经通过认证
  • 必须 已解锁 Bootloader
  • 必须 已经刷入 Magisk (以版本号 23.0 为例)
  • 非必须 已经刷入某类原生自定义 ROM
  • 对其他 必须 环境不一样的情况是否起作用不作保证

通过 SafetyNet 认证

打开 Magisk 在首页可以看到一个 Check SafetyNet,可以看到

未通过 SafetyNet 检测

对于这种情况是由于我刷入了第三方的自定义 ROM,并且拥有一个错误的未经认证的 CTS 配置文件,这个问题会导致 Play Store 上一些 App 或 游戏显示与我们的设备不兼容,要解决这个问题,首先需要对 Google Play Service 开启 Magisk Hide 并且使用 随机包名 伪装来避过检测

Magisk Hide

接下来我们直接在 Magisk 模块仓库🔍 搜索并安装 MagiskHide Props Config 这个模块

MagiskHide-Props-Config

完成后重启设备再次打开 Magisk 的 Check SafetyNet,应该可以看到通过证明了

Pass SafetyNet

PS:对于部分小米/红米设备,如果上面步骤仍然修复不了 CTS 配置文件,请考虑使用 XiaomiCTSPass 项目

通过 GSF 认证

SafetyNet 认证已经通过了,接下来我们需要来认证自己设备的 GSF 服务,首先在 Play Store 下载一个名为 Device ID 的应用(对于国内用户可以👉 在这下载),打开并复制 Google Service Framework(GSF) 那行的 16 进制数字 ID

gsf-id

  • 打开浏览器
  • 进入 Google GSF ID 注册页面
  • 使用 Google 账号登陆
  • Google 服务框架 Android ID 中粘贴刚才复制的十六进制 ID
  • 完成 进行人机身份验证
  • 最后点击 注册
  • 出现提示 已注册设备(ID 已转换成十进制数)
  • 注册完成🔨

注册 GSF

后续步骤

上面的注册步骤完成了以后,我们需要在系统设置里找到 Google Play Store 强制停止运行、清除该应用所有数据和缓存,现在连上国际互联网以后,稍等几分钟(最长不超过 48 小时),再次打开 Play Store,你应该可以看到 Play 保护机制设备已通过认证

设备已通过认证

现在可以搜索到 Netflix 并且没有出现不兼容的警告了

通过认证

打开 DRM Info,可以看到我的设备已经恢复出厂的 L1 DRM 安全等级

DRM-L1

完成,Enjoy!😄

参考资料

关于 Google Play 保护机制和 DRM 安全等级的那些事

https://www.dejavu.moe/posts/gsf-drm-certification/

作者

Dejavu

发布于

2021-09-29

更新于

2021-09-29

许可协议

评论