VirtualLocation(UI仿共享单车OFO)
对Android程序进行虚拟定位,可修改微信、QQ、陌陌以及一些打卡APP等软件,随意切换手机所处位置!(喜欢的给一个star, 有帮助的给一个fork, 欢迎Star和Fork ^_^)
下载 话不多说,试玩应用先。
效果预览
主页
微信虚拟定位演示
钉钉虚拟定位打卡演示
原理
本程序有两种方式可以实现虚拟定位:
- 通过ADB模拟定位功能
- 通过Hook修改获取经纬度API的值 (必需安装Xposed以及ROOT)
第一种方式主要是是通过ADB模拟定位功能,再开启线程,不断的更新LocationManager的经纬度值,即可是实现定位模拟定位
mMockThread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(500);
if (!hasAddTestProvider) {
Log.d("xqf", "针对Android6.0+系统,需要单独把程序调加到ADB模拟定位服务中");
continue;
}
setLocation(LocationUtil.mLatitude, LocationUtil.mLongitude);
Log.d("xqf", "setLocation240=latitude:" + mLatitude + "?longitude:" + mLongitude);
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
mMockThread.start();
第二种方式主要是采用Hook修改系统API。目前很多程序都调用了isFromMockProvider方法来检测用户是否打开了ADB模拟定位功能,所以我又采用了Hook方式,就不怕不能虚拟定位了,具体如何Hook,可以看我的一篇博客:基于Xposed框架Hook定位功能来破解QQ的LBS红包
测试
在Android测试机 分别是 魅蓝2、华为、SCL-TL00、Vivo xs1、红米note运行正常
版本
v1.0
完成了通过ADB模拟定位功能来虚拟定位,但是新版的一些程序都做了ADB模拟定位检测,所以现在很多新版本程序都不行了
v1.1
完善了通过Hook修改虚拟定位API,提高程序的兼容性和可行性,但同时也必须Android设备要ROOT
issue
如果程序运行有什么问题,可以先查看Issues中的问题回答,这样我就不用重复回答大家的问题了,之前太多人加QQ问问题,工作有点忙实在是来不及一一回复(注:Issues在本网页顶部菜单栏上)
Email:[email protected]
License
Copyright 2016 xuqingfu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.