microG ROM 下遥测无法关闭的修复
现象
在 microG(去 Google 化的 Android ROM,如 LineageOS for microG、CalyxOS、GrapheneOS 等)上安装 EtchDroid 的 Play 或 GitHub 版本后:
- 打开 EtchDroid 设置里的遥测开关 → 关闭
- 关闭遥测后,EtchDroid 似乎仍然尝试初始化 Firebase / Sentry
- 某些情况下会在日志里出现 "Firebase initialization failed" 或 "Sentry SDK failed to start" 的错误
- 更极端的情况:关闭遥测后应用会在某些操作下间歇性崩溃
根因
v2.1 发布说明里提到的一条修复:
"Telemetry is now correctly disabled on microG-based ROMs"
microG 环境下没有 Google Play Services——EtchDroid 的遥测初始化代码(特别是 Firebase)在 Google Play Services 不存在的情况下会走一条错误的 fallback 路径。旧版本里,即使你手动关闭了遥测开关,初始化代码仍然会先尝试加载 Firebase SDK,触发异常。
解决方案
方案一:升级到 v2.1(最推荐)
v2.1 的修复逻辑是:如果在 microG 环境下检测不到 Google Play Services,直接跳过 Firebase 初始化。遥测开关被关闭的情况下也不会有初始化代码被执行。
方案二:用 F-Droid 版本(最干净)
F-Droid 版本的 EtchDroid 根本不包含 Firebase 和 Sentry 的二进制代码——遥测相关的任何代码路径在编译时就被剥离了。所以 microG / LineageOS / GrapheneOS 环境下,F-Droid 版本是:
- ✅ 不需要处理 Google Play Services 依赖
- ✅ 不会有遥测初始化的任何尝试
- ✅ 不崩溃、干净运行
这是去 Google 化 ROM 用户最推荐的选择。
方案三:旧版本的手动解决
如果因某些原因必须用旧版本(v1.9 rc1 / rc2):
- 关闭遥测开关
- 在 adb shell 里手动禁用 Firebase 相关服务:
adb shell pm disable-user eu.depau.etchdroid/.telemetry.TelemetryService
(注意:这可能因版本和 ROM 而异,不一定适用)
microG 用户的安装建议
| 场景 | 推荐版本 | 理由 |
|---|---|---|
| 普通使用、追求稳定 | F-Droid 版本 | 零 Google 依赖、零遥测代码 |
| 想用最新 Material You UI + 手动关遥测 | v2.1 Play/GitHub 版本 | 已修复 microG 环境下的初始化 Bug |
| 用的是 v1.9 rc 系列 | 直接升级到 v2.1 | 多个兼容性修复 |