Anonym0usWork1221/liboemcrypto-disabler
GitHub: Anonym0usWork1221/liboemcrypto-disabler
一个 Magisk/KernelSU 模块,通过禁用 OEM Widevine 库来修复已 root Android 设备上流媒体应用的 DRM 播放错误。
Stars: 2 | Forks: 0
# liboemcrypto 禁用器
[](https://github.com/Anonym0usWork1221/liboemcrypto-disabler/releases)
[](LICENSE)
[](https://github.com/topjohnwu/Magisk)
[](https://github.com/tiann/KernelSU)
[](https://www.android.com/)
## 功能说明
此模块通过 Magisk 的无系统覆盖方式,用空文件替换了 `/vendor/lib64/liboemcrypto.so` 和 `/vendor/lib/liboemcrypto.so`。在 OEM Widevine 库被禁用后,Android 的 DRM 框架会回退到 **Google 原生 Widevine 实现**,该实现不会执行激进的 root 检测。
结果就是:之前在已获取 root 权限的设备上拒绝播放视频的流媒体应用现在可以正常工作了。
## 修复的问题
- **Crunchyroll 错误 EXO-1004**("连接出现问题")
- 在已获取 root 权限的设备上,各种流媒体应用中出现 **"无法播放视频" / DRM 错误**
- 登录成功后仍 **播放失败**(界面正常但视频无法播放)
- Widevine 层级上的 **Root 检测**(不同于 Play Integrity / SafetyNet)
- OEM Widevine HAL 损坏或缺失导致的 **自定义 ROM 播放问题**
## 已知可修复的应用
| 应用 | 状态 | 备注 |
|---|---|---|
| Crunchyroll | ✅ 已修复 | EXO-1004 问题解决 |
| HBO Max / Max | ✅ 可用 | 画质无变化 |
| Hulu | ✅ 可用 | 画质无变化 |
| Paramount+ | ✅ 可用 | |
| Peacock | ✅ 可用 | |
| Apple TV+ | ✅ 可用 | |
## 可能降级画质的应用
| 应用 | 行为 |
|---|---|
| Netflix | 以 SD 画质而非 HD 播放(HD 需要硬件 Widevine L1) |
| Disney+ | 可能提供 SD 画质 |
| Amazon Prime Video | 可能提供 SD 画质 |
| DAZN | 可能降至较低画质 |
## 工作原理
```
┌─────────────────────────┐ ┌─────────────────────────┐
│ Streaming App │ │ Streaming App │
│ (Crunchyroll, etc.) │ │ (Crunchyroll, etc.) │
└───────────┬─────────────┘ └───────────┬─────────────┘
│ │
▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐
│ Widevine CDM │ │ Widevine CDM │
│ (Android Framework) │ │ (Android Framework) │
└───────────┬─────────────┘ └───────────┬─────────────┘
│ │
▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐
│ OEM liboemcrypto.so │ │ ✗ (empty / disabled) │
│ (detects root → fails)│ │ │
└─────────────────────────┘ └───────────┬─────────────┘
│ fallback
▼
┌─────────────────────────┐
│ Google's stock Widevine│
│ (no root detection) │
└─────────────────────────┘
BEFORE AFTER
```
## 安装指南
### 方法一:通过 Magisk
1. 下载最新的 [发布包](https://github.com/Anonym0usWork1221/liboemcrypto-disabler/releases/latest)
2. 打开 **Magisk** → **模块** → **从本地存储安装**
3. 选择下载的 zip 文件
4. 重启设备
5. 强制停止并清除流媒体应用的数据
6. 打开应用并测试播放
### 方法二:通过 KernelSU
1. 下载最新的 [发布包](https://github.com/Anonym0usWork1221/liboemcrypto-disabler/releases/latest)
2. 打开 **KernelSU 管理器** → **模块** → **安装**
3. 选择下载的 zip 文件
4. 重启设备
5. 强制停止并清除流媒体应用的数据
### 方法三:通过 APatch
1. 下载最新的 [发布包](https://github.com/Anonym0usWork1221/liboemcrypto-disabler/releases/latest)
2. 打开 **APatch** → **APModule** → **从本地存储安装**
3. 重启设备
## 验证
重启后,确认模块已激活:
```
su
ls -la /vendor/lib64/liboemcrypto.so
# 大小应为 0 字节(或接近该值)
ls /data/adb/modules/liboemcrypto_disabler/
# 应显示模块文件
```
您也可以从 Play 商店安装 [**DRM Info**](https://play.google.com/store/apps/details?id=com.androidcentral.app.drminfo)。前后对比:
- **模块安装前:** Widevine 安全级别 → `L1`
- **模块安装后:** Widevine 安全级别 → `L3`(符合预期 —— 这是回退路径)
此级别变化是预期行为,正是它使得 Crunchyroll 等应用得以播放。
## 兼容性
| 组件 | 兼容性 |
|---|---|
| **Android** | 10, 11, 12, 13, 14, 15, 16+ |
| **架构** | arm64-v8a, armeabi-v7a |
| **Root 方案** | Magisk v20.4+, KernelSU, APatch |
| **分区** | 动态和传统 `/vendor` 布局 |
已在以下设备上测试:
- 骁龙 8 Gen 2 (红魔 8S Pro / NX729J)
- 骁龙 8 Gen 3 设备
- 联发科天玑系列
如果您的设备可用,请创建一个带有 `device-confirmed` 标签的 issue,以便他人知晓。
## 优点与缺点
### 优点
- ✅ 修复已获取 root 权限设备上最常见的 DRM 相关播放失败问题
- ✅ 无系统修改 —— 不对 `/vendor` 分区进行永久更改
- ✅ 一键可逆:禁用或移除模块即可恢复
- ✅ 无需维护密钥盒子或设备指纹
- ✅ 可在 OTA 更新后存活(如果 `/vendor` 改变,只需重新刷入)
- ✅ 通过 Magisk/KSU 支持自动更新
- ✅ 可与 Play Integrity Fix、Tricky Store、Shamiko 共同使用
### 缺点
- ⚠️ Widevine 降级至 L3 → Netflix、Disney+ 等的高清串流会失效
- ⚠️ 并非解决 *所有* DRM 问题的方案(某些应用会进行 Widevine 之外的检查)
- ⚠️ 不能绕过 Play Integrity API —— 如有需要,请配合 PIF 使用
- ⚠️ 某些自定义 ROM 可能需要不同的 `.so` 路径(罕见)
## 切换状态
临时禁用(例如,为观看 Netflix 高清视频):
1. 进入 Magisk → 模块 → 关闭 `liboemcrypto_disabler` 的开关
2. 重启
3. 观看 Netflix
4. 重新开启开关,重启,返回使用 Crunchyroll
## 推荐配合使用的模块
此模块修复了 Widevine 层级的 root 检测。要实现完整的 root 设备下流媒体播放,可结合以下模块:
- **[Play Integrity Fix (Fork)](https://github.com/osm0sis/PlayIntegrityFork)** —— 通过 Play Integrity DEVICE 判定
- **[Tricky Store](https://github.com/5ec1cff/TrickyStore)** —— Keystore 认证欺骗(需有效的密钥盒子)
- **[Shamiko](https://github.com/LSPosed/LSPosed.github.io/releases)** —— 从 DenyList 中的应用隐藏 root 状态
## 常见问题
**问:这会影响银行应用吗?**
答:仅当银行应用依赖 Widevine 进行 root 检测时才会受影响(罕见)。大多数银行应用使用 Play Integrity / SafetyNet,此模块不会影响它们。对于这些应用,请配合 PIF 使用。
**问:它在 KernelSU 上有效吗?**
答:有效。模块格式兼容 Magisk、KSU 和 APatch。
**问:为什么我的 Widevine 现在显示 L3?**
答:这是预期的。禁用 OEM Widevine 强制回退到基于 Google 软件的路径,该路径报告为 L3。这正是让 Crunchyroll 工作的原因 —— L1 是检测 root 的路径。
**问:这安全吗?**
答:安全。此模块是无系统的 —— 不会修改您物理 `/vendor` 分区上的任何内容。禁用模块可立即恢复原始库。刷入安全,移除也安全。
**问:Google 会检测到吗?**
答:禁用 `liboemcrypto.so` 是一个本地更改。它不与 Google 通信,因此 Google 服务器端无法检测到。但是,您的 Play Integrity 判定不会改变 —— 如有需要,请使用 PIF。
**问:我可以选择性禁用吗 —— 只禁用 64 位的库?**
答:可以。编辑模块,移除 `system/vendor/lib/liboemcrypto.so`,如果您只运行 64 位应用。保留完整捆绑包是最安全的。
**问:我的应用还是不行。**
答:尝试清除应用数据,而不仅仅是缓存。有些应用缓存了 DRM 会话令牌,需要重置。如果仍然有问题,则问题不在 Widevine 层级 —— 请使用 [Play Integrity API Checker](https://play.google.com/store/apps/details?id=gr.nikolasspyr.integritycheck) 检查 Play Integrity 状态。
## 卸载
- **Magisk:** 进入模块 → 点击 `liboemcrypto_disabler` 的移除按钮 → 重启
- **KernelSU:** 进入模块 → 卸载 → 重启
- **APatch:** 进入 APModule → 卸载 → 重启
下次启动时,原始的 `liboemcrypto.so` 将被恢复。
## 致谢
- 最初修复发现:XDA 社区 ([帖子](https://xdaforums.com/t/fixed-error-exo-1004-with-the-crunchyroll-app-and-system-ro2rw-tutoral.4690132/))
- Magisk 模块封装:**Abdul Moez** ([@Anonym0usWork1221](https://github.com/Anonym0usWork1221))
- Magisk 模块框架:[topjohnwu](https://github.com/topjohnwu/Magisk)
## 许可证
MIT —— 完整文本请参阅 [LICENSE](LICENSE)。
## 免责声明
此模块按"原样"提供,仅供教育和个人使用。作者对因使用此模块而导致的任何 DRM 违规、账户封禁或服务中断不承担责任。您有责任遵守您所使用的任何流媒体平台的服务条款。不支持盗版内容。
如果这个模块为您节省了大量寻找密钥盒子和刷机的时间,请考虑给这个仓库点个星 ⭐
标签:Android安全, Android模块, Crunchyroll, DRM破解, HBO Max, Hulu, KernelSU模块, Magisk模块, OEM Widevine, Root检测绕过, Widevine禁用, 应用兼容性, 播放问题修复, 数字版权管理, 根权限管理, 流媒体修复, 流媒体应用, 目录枚举, 移动安全, 系统less覆盖, 软件模块