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

更高的 Widevine DRM 安全等级有什么用呢?

包括 Amazon Prime Video BBC Hulu Netflix Spotify Disney+ 等在线流媒体平台使用 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!

参考资料