华为EMUI适配:ptrace限制与后台设置
华为设备是 Fake Location ROOT 模式用户里最容易碰壁的一批:官方 FAQ 的错误码 104 条目第一个点名的就是华为。同时 EMUI 的省电机制也是后台被杀的重灾区。两件事分开说。
关卡一:内核 ptrace 限制(错误码 104)
官方 FAQ 的归因原文:「华为近期(2019年)发布的EMUI内核不支持ptrace操作,目前只有刷第三方解除了限制的内核才能使用ROOT模式,建议可以去xda论坛找找第三方内核。」
这对华为用户意味着一个残酷的现实:
- ROOT 模式依赖内核层的 ptrace 能力,2019 年后的 EMUI 内核把它关了;
- 这不是设置能解的,唯一的「解法」是刷第三方内核——伴随保修风险、变砖风险与安全调整;
- 绝大多数人应该接受现状:ROOT 模式与华为近年机型基本无缘,转免 ROOT 通道或虚拟机方案,见 免ROOT和ROOT模式怎么选:成功率与门槛对比 与 手机没有ROOT:虚拟机里跑ROOT模式的方案。
错误码 104 的完整机型对照(含三星)见 错误码104:内核与SELinux限制的解法。
关卡二:EMUI 省电杀后台
官方 FAQ 对华为后台的指引是两条设置:允许程序后台运行 + 忽略电池优化(FAQ 附了对应图文教程的检索路径)。
操作落点:
- 设置 → 应用 → 应用管理 → Fake Location → 电池 → 启动管理,改为手动管理并允许自启动、关联启动、后台活动;
- 设置 → 电池 → 更多电池设置,把 Fake Location 加入忽略电池优化名单;
- 多任务界面下拉应用卡片锁定后台。
设置理由与验证方法见 后台被杀与跳回真实位置:保活设置——四个症状(自动关闭、跳回真实位置、摇杆退出、罗盘不转)在华为设备上同样是省电策略惹的祸。
免 ROOT 通道在华为上的表现
免 ROOT 模式不碰内核,华为设备照常可用:开发者选项的路径是「设置 → 系统和更新 → 开发人员选项」,模拟位置应用设置见 免ROOT模式设置:开发者选项选模拟位置应用。免 ROOT 的边界(只覆盖 GPS 通道)在华为上同样存在,混合定位应用读回真实位置的排查见 开启模拟后依然显示真实位置的原因。