1
hadesy 5 天前 1
private static void HookLocation(ClassLoader classLoader) throws ClassNotFoundException {
//坐标拾取系统 https://lbs.qq.com/getPoint/ double latitude = 0.0; double longitude = 0.0; Class clazz = classLoader.loadClass( "com.tencent.map.geolocation.sapp.TencentLocationManager"); XposedHelpers.findAndHookMethod(clazz, "requestLocationUpdates", "com.tencent.map.geolocation.sapp.TencentLocationRequest", "com.tencent.map.geolocation.sapp.TencentLocationListener", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { XposedBridge.log("requestLocationUpdates"); Class tencentLocationListenerClass = param.args[1].getClass(); XposedHelpers.findAndHookMethod(tencentLocationListenerClass, "onLocationChanged", "com.tencent.map.geolocation.sapp.TencentLocation", int.class, String.class, new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { Class tencentLocation = param.args[0].getClass(); XposedHelpers.findAndHookMethod(tencentLocation, "getLatitude", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { XposedBridge.log("requestLocationUpdates.getLatitude:"+ param.getResult()); param.setResult(latitude); } }); XposedHelpers.findAndHookMethod(tencentLocation, "getLongitude", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { XposedBridge.log("requestLocationUpdates.getLongitude:"+ param.getResult()); param.setResult(longitude); } }); } }); } } ); } |
2
hahiru 4 天前
运动模拟器+Websocket 插件
|
3
liyafe1997 4 天前
安卓上可能没有好的虚拟定位方案,因为现在很多定位是基于 WIFI 蓝牙的,甚至这个优先级比 GPS 高(也就是如果两者位置偏差大的话,优先信基于网络的定位)。因为 GPS 好模拟,网络位置真不好模拟,你没有特定坐标下的 WIFI 蓝牙 MAC 地址列表和基站信息。除非你跑去那个地方,抓一个回来。
可以尝试用 Fake Location ,这个原理似乎是屏蔽掉基于网络的位置(返回空 WIFI/蓝牙列表给 APP ),然后模拟 GPS 位置。但是在有的 App 比如支付宝上不管用,支付宝只会尝试使用网络定位,压根不管 GPS 的位置。如果它无法获取 WIFI/蓝牙列表和基站信息,那就直接显示定位失败。 之前尝试给支付宝搞虚拟定位(主要是因为在海外,支付宝没法用收款码,当时刷私人收款码花呗还能套现),拿安卓机折腾了半天都不行,就是上面的原因。最后拿 iPhone 搞定了。 iPhone 虚拟定位非常非常简单,用爱思助手这类软件就能做到(有 API 能通过 USB 虚拟定位,应该主要是给开发者的),然后因为 iOS 没有给 App 扫描 WIFI 的 API ,所以就算网络定位,也只能通过苹果的服务进行,App 只能调系统 API 来实现定位,听系统的。于是这类虚拟定位只要 Hook 了系统 API ,对 App 来说理论上就是透明的。 综上所述,试试拿 iOS 搞。 |