xposed hook 参数为自定义类

有时候,hook的时候会遇到方法的参数是一个自己定义的第三方类这种情况,例如如下:

h(EmvTransInfo em){
...
};

其中,EmvTransInfo是一个开发者自己定义的类。这种情况下:应该首先通过反射拿到这个类。

Class personClass = XposedHelpers.findClass("com.newland.mtype.module.common.emv.EmvTransInfo",lpparam.classLoader);

这里的personClass 就是传参的自定义类,剩下的原来怎么hook就继续怎么写代码,代码如下:

XposedHelpers.findAndHookMethod("com.lakala.core.swiper.ICFieldConstructor", lpparam.classLoader,
                    "h",
                    personClass, 
                    new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
Log.e("进入结果",param.getResult().toString());
                        }
             });

完整代码如下:

public void handleLoadPackage(LoadPackageParam lpparam)
            throws Throwable {



        // TODO Auto-generated method stub
if (lpparam.packageName.equals("com.xxx.xxx")) 
        { 


Class personClass = XposedHelpers.findClass("com.newland.mtype.module.common.emv.EmvTransInfo",lpparam.classLoader);

            XposedHelpers.findAndHookMethod("com.lakala.core.swiper.ICFieldConstructor", lpparam.classLoader,
                    "h",
                    personClass, 
                    new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
Log.e("进入结果",param.getResult().toString());
                        }
             });
}
}

你可能感兴趣的:(xposed hook 参数为自定义类)