本文主要是介绍Xposed hook SensorManager,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Xposed hook SensorManager
本篇继续新增hook sensorManager. 用于替换运动量的数值。
public class SportHook {private static final String TAG = "SportHook";private static int stepCount = 1;public static void hook(XC_LoadPackage.LoadPackageParam lpparam) {if (!lpparam.packageName.equals("com.tencent.mm")) return;Log.i(TAG, "hook: start");try {final Class clazz = XposedHelpers.findClass("android.hardware.SystemSensorManager$SensorEventQueue", lpparam.classLoader);XposedBridge.hookAllMethods(clazz, "dispatchSensorEvent", new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {
// ((float[]) param.args[1])[0] = ((float[]) param.args[1])[0] + 1123 * stepCount;((float[]) param.args[1])[0] = 1123 * stepCount;stepCount++;}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);}});} catch (Throwable e) {Log.e(TAG, "hook: ", e);}Log.i(TAG, "hook: end");}
}
如上,直接修改dispatchSensorEvent 方法中参数的值。
这里不考虑加速度传感器的问题。
public class HookModule implements IXposedHookLoadPackage {public static final String TAG = "HookModule";@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {Log.e(TAG, "handleLoadPackage");SportHook.hook(lpparam);}}
这篇关于Xposed hook SensorManager的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!