Xposed遇到的坑

如果某个APP的dex有多个在安卓5,0以上ART会合成一个oat文件。那么5.0以下会存在多个dex。
所以在5.0以下hook一个某个方法,而这个方法不在主dex,而存在分包dex。此时xposed会在没有加载分包dex的时候进行回调handleLoadPackage().此时类加载器并没有加载分包里面的类 会导致 XposedHelpers.findAndHookMethod 抛出异常。

解决办法:
(大家可以以下参考文献,这里不制作车轮子)

 XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    ClassLoader cl = ((Context)param.args[0]).getClassLoader();
                    Class<?> hookclass = null;
                    try {
                        hookclass = cl.loadClass("xxx.xxx.xxx");
                    } catch (Exception e) {
                        Log.e("jyy", "寻找xxx.xxx.xxx报错", e);
                        return;
                    }
                    Log.i("jyy", "寻找xxx.xxx.xxx成功");
                    XposedHelpers.findAndHookMethod(hookclass, "xxx", new XC_MethodHook(){
                        //进行hook操作
                    });
                }
            });

参考1
参考2
参考3

阅读更多
版权声明:范明毅的个人博客,欢迎转载,转载请注明出处 https://blog.csdn.net/qfanmingyiq/article/details/78323264
个人分类: 安卓学习之旅
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Xposed遇到的坑

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭