免Root的Android虚拟定位:FakeLocation按应用伪装位置完整指南
【免费下载链接】FakeLocationXposed module to mock locations per app.项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation
为什么用FakeLocation做Android虚拟定位
做App定位功能测试时,你是不是每次都嫌麻烦:一会儿要把设备"搬到"上海,一会儿又要"飞"到广州,来回切换还离不开系统"模拟位置"开关?FakeLocation把这件事变简单了:它是一个基于Xposed框架的Android虚拟定位模块,免Root、不依赖系统模拟位置开关,还能按应用单独设置虚拟位置,每个App各用各的坐标,互不干扰。
先判断适不适合你
动手之前,先核对这4个前提条件,不符合就别往下走了:
- Xposed环境:设备上已装好可用的Xposed框架(或LSPosed),FakeLocation本身不申请Root权限;
- 系统版本:Android 4.3及以上;
- 目标App:要伪装位置的App已安装,且能正常触发定位(地图页、签到页等);
- 兼容范围:模块Hook了系统定位接口,同时适配Google Play Location API与腾讯定位SDK,使用GMS的应用无需单独配置gms包,直接设置目标App即可。
4条都打勾,就可以进入原理部分了。
原理速览:Xposed如何替换定位结果
打个比方:App是银行柜台的客户,系统定位API是柜员,Xposed就是站在柜台后面的大堂经理。客户问"我现在在哪",大堂经理把柜员递出的单据截下来,把"当前位置"一栏换成你事先填好的经纬度,再递给客户——客户拿到的是一张看起来完全正常的单据,毫无破绽。
FakeLocation就是这么做的:App进程启动时,Xposed向进程注入代码,Hook住LocationManager等定位相关接口,把返回的经纬度替换成你设定的值。因为它根本没走系统"模拟位置"通道,屏幕上不会出现任何模拟提示;针对国内坐标偏移问题,模块还做了修正处理。
三种方案怎么选
Android虚拟定位有三条主流路线,放在一起对比就很清楚了:
| 对比维度 | FakeLocation(Xposed定位模块) | 系统"模拟位置"开关 | Root改机工具 |
|---|---|---|---|
| 权限门槛 | 免Root,只需现成的Xposed环境 | 无需额外权限,但必须打开开关 | 需要Root,部分机型拿不到 |
| 权限痕迹 | 无系统开关、无模拟提示 | 开关常开,容易被App或系统察觉 | Root本身就是痕迹,改机深浅因工具而异 |
| 设置粒度 | 按应用独立开关,多个虚拟位置并存 | 全局生效,所有App共用一个位置 | 多为全局,少数支持按应用 |
| 可模拟的定位类型 | GPS坐标+基站信息(MCC/MNC、LAC/TAC、CID) | 基本只有GPS | 因工具而异 |
| 被识别难度 | 相对较高 | 低 | 中 |
| 适用场景 | 应用定位调试、隐私保护、快速验证 | 简单功能测试 | 深度改机 |
一句话总结:只想"换个位置"又不想留痕迹,Xposed模块这条路线最干净。
首次配置:4步走完虚拟定位教程 🎯
- 激活模块:在Xposed管理器中勾选FakeLocation,然后重启设备;
- 打开App开关:启动FakeLocation,在应用列表中找到目标App,打开它旁边的模拟开关;
- 设置虚拟位置:进入该App的设置页,三种位置来源任选其一:
- 地图选点:在高德、百度或Google地图上直接点选,支持地名搜索,选过的地点会存入"最近"列表;开启"即时更新"后,点完地图直接写入设置,不用返回应用列表;
- 手动输入:直接填纬度和经度,小数点后6位,国内坐标偏移已内置修正;
- 随机生成:点一下FEELING LUCKY按钮随机挑个位置,适合快速验证功能是否生效;
- 补充基站信息(可选):目标App若依赖基站定位,把MCC、MNC、LAC/TAC、CID填上并打开基站模块,两个模块可叠加,定位画像更接近真实设备。
应用列表界面,每个应用都有独立的模拟位置开关:
地图选点界面,支持地名搜索与最近列表:
配置完成后回到目标App下拉刷新,通常就能看到"位置"已经搬走了。
进阶用法:模板、轨迹模拟与日志排查
配置跑通后,下面几个场景化的进阶功能会让你用得更顺手。
常切位置:模板与最近列表
把常用坐标存成GPS模板或基站模板,之后一键切换,不用重复填坐标;还能在"当前位置信息"里一键捕获真实基站数据存成模板复用。
模拟移动轨迹:摇杆悬浮窗
在应用设置页点击"关联悬浮窗",摇杆的方向与力度会实时改写虚拟坐标,适合模拟步行、驾车这类连续移动的轨迹。
更新间隔可调位置刷新频率,GPS状态也可以自定义,配合目标App的定位逻辑做更精细的调试。
排查与隐身:日志与自我隐藏
某App不认你的虚拟位置时,先在设置里打开Verbose log,结合Xposed Installer里的日志对照排查;模块还支持"自我隐藏",让指定App看不到FakeLocation本身的存在,降低被反向探测的概率。
排障自查:虚拟定位不生效时按这份清单来 🔍
按顺序逐项打勾,大多数问题到第3步就能解决:
- 模块激活:确认Xposed管理器中已勾选模块,且重启过设备;
- App开关:确认目标App的模拟开关处于打开状态;
- 清缓存:App可能缓存了旧位置,清除该App数据后重试;
- 看日志:打开Verbose log复现一次问题,对照Xposed Installer中的日志定位未生效的Hook点。
设置页的Verbose log开关与问题反馈入口:
4步走完仍未解决,可以带着日志到项目提交Issue,历史改动见 CHANGELOG.md,项目整体介绍见 README.md。
现在就试一次:5步完成首次虚拟定位实验 🚀
- 克隆项目用Android Studio编译安装,或直接安装已有的Release APK:
git clone https://gitcode.com/gh_mirrors/fak/FakeLocation- 设备上装好兼容的Xposed环境,激活FakeLocation模块并重启;
- 打开FakeLocation,选中一个测试App,在地图上点一个位置;
- 打开该App的模拟开关,回到测试App里下拉刷新定位;
- 看看地图红点是不是已经"搬家"了。
最后提醒一句:请把虚拟定位用在应用测试、隐私保护等合法场景,别用它做违反平台规则或法律法规的事。
【免费下载链接】FakeLocationXposed module to mock locations per app.项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考