Xposed系列--技巧篇
背景
Xposed Hook代码需要熟能生巧,包括Hook各种各样奇怪的api或者系统api,都需要一定的基础知识,本文主要是收集整理相关的Hook代码,帮助记忆。这其中包括一些经验,和各类Hook基础。
经验汇总
- 只能 hook 方法和构造方法,以及字段的值
- 不能 hook 接口和抽象方法
- 抽象类中的非抽象方法是可以 hook的
- 接口中的方法不能 hook,但接口本身是可以hook的(接口中的method默认是public abstract 抽象的;field 必须是public static final)
- hook 一个类的方法,该类是子类并且没有重写父类的方法,此时应该 hook 父类还是子类.(hook 父类方法后,子类若没重写,一样生效.子类重写方法需要另外 hook) (如果子类重写父类方法时候加上 spuer ,hook 父类依旧有效)
- native 方法可以 hook,不过是在 java 层调用时hook而不是 hook 动态链接库.
技巧汇总
Hook类方法
Public方法
XposedHelpers.findAndHookMethod(clazz,