VirtualLocation
VirtualLocation copied to clipboard
关于loadClass类名和方法名的问题
楼主是不是只对高德地图做了hook,我想问的是就是你怎么知道高德地图是通过com.amap.api.location.AMapLocation这个类以及类下面的方法获取的经纬度呢?如何知道这个具体的类名以及方法名,希望能请教一下~
比如我需要hook百度地图或者腾讯地图应该怎么去找这个类名和方法名呢,我之前看了网上的好多hook gps的例子(比如这个),就是对很多locationmanager类进行hook,但是我实测都不起作用,是不是高德的应用做了什么特殊处理?
刚学习xposed小白,希望可以得到您的回答,谢谢!
/**
* 修改高德地图的经纬度值
* @param
* @throws ClassNotFoundException
*/
public static void findMethodAmapLongitudeAndLatitude(ClassLoader classLoader) {
try {
Class aMapLocationClazz = classLoader.loadClass("com.amap.api.location.AMapLocation");
XposedHelpers.findAndHookMethod(aMapLocationClazz, "getLongitude", new Object[]{new XC_MethodHook() {
protected void beforeHookedMethod(MethodHookParam arg3) throws Throwable {
arg3.setResult(Double.valueOf(AppApplication.mMockGps.mLongitude));
Log.d(TAG, "修改高德地图的经纬度值:" + AppApplication.mMockGps.mLongitude + ":" + AppApplication.mMockGps.mLatitude);
}
}});
Hook的入口点确实要花时间分析,像高德地图的挂钩拦截入口点是通过查看高德地图SDK,这样就很清楚需要Hook的函数了