错误码104:内核与SELinux限制的解法
错误码 104 是 ROOT 模式的硬性机型限制:官方 FAQ 的归因非常明确——你的手机内核或安全服务不允许 Fake Location 做它需要的事。这个码与 错误码103(空间不足)不同,它多数情况下没有「设置层面」的解法,得动内核。
官方 FAQ 的三种归因
华为手机:华为 2019 年前后发布的 EMUI 内核不支持 ptrace 操作(ROOT 模式的系统级模拟依赖这个内核能力)。官方结论:只有刷第三方解除了限制的内核才能使用 ROOT 模式,建议去 XDA 论坛找对应机型的第三方内核。
三星手机:三星部分机型的内核和 KNOX 安全服务限制,不能关闭 SELinux。官方结论同样是刷解除限制的第三方 ROM 和内核。
其他机型:先做日志取证再判断——打开 FL 设置里的「日志记录」功能,重启手机,再开启模拟,出现错误后从侧边栏「反馈」入口选择邮件方式,把日志文件发给开发者分析具体原因。
一张决策表
| 情况 | 现实解法 | 代价 |
|---|---|---|
| 华为(2019+ EMUI) | 刷第三方解锁限制的内核 | 失去官方系统、保修风险、变砖风险 |
| 三星(部分机型) | 刷第三方 ROM + 内核 | 同上,且 KNOX 熔断不可逆 |
| 其他机型 | 开日志 + 邮件反馈,等开发者判断 | 等待,无硬损失 |
| 都不想折腾 | 放弃 ROOT 模式,用免 ROOT 通道或虚拟机方案 | 功能上限降低 |
SELinux 这条线再理一遍
ROOT 模式需要 SELinux 宽容模式(见 ROOT模式开启条件与SELinux宽容模式),而部分机型内核根本不支持切换——判断自己设备支不支持,可以用镧工具箱等工具查看 SELinux 状态;支持关闭却仍报错的,才是 虚拟位置服务连接失败的排查顺序 那类环境问题。
动手刷机前想清楚
刷第三方内核/ROM 对绝大多数人是得不偿失的:ROOT 模式的收益(更高成功率 + 高级功能)要对比刷机的风险(变砖、丢数据、银行类应用永拒)。替代路径先看 手机没有ROOT:虚拟机里跑ROOT模式的方案,免 ROOT 的能力边界见 免ROOT和ROOT模式怎么选:成功率与门槛对比。