已知
- 目前绝大多数修改设备位置的方案,大多是基于各类 hook 方案实现,通常埋点在 LocationManager
- Xposed、Magisk + TaiChi/EdXposed ( SandHook )等等,实现的 Hook 方案
疑问
通过搜索发现,目前有部分软件
- 不需要开启“开发者选项”中“模拟位置”;
- 不需要 Hook 框架
- 需要 Root
即可实现修改位置。如“神行者”等。
此类软件实现的方法是什么?以及可以如何检测出来?
盲猜的实现方式
- 直接写入 /dev
应对方案
- 增加辅助位置信息获取,如基站、蓝牙、WiFi 等等信息
- 拒绝 Root 环境下运行
显然第二点并不是比较好的方案。对于 Hook 类的修改位置,目前已经有比较成熟的检测方法,但是对于这类无需 Hook 的模拟位置,由于我不清楚其原理,是否有大佬能给我科普一下,其实现方式?