太极·虚拟框架_免解锁,免Root,就能使用Xposed框架[安卓Android]
太极是一个类Xposed框架,它能够加载Xposed模块、模块能通过它改变系统和应用的行为。如:修改系统和APP、拦截方法,执行hook逻辑等。 太极既能以传统的Root/刷机方式运作,也能免Root/免刷机运行,目前已稳定支持 Android 5.0 ~ 10。
如何适配?
理论上讲,只要你不使用 Xposed 特殊的内部特性,基本上是可以无缝适配的。但是,有一些特殊情况需要处理一下:
方法拦截/Hook
太极的方法拦截/Hook 特性没有 Xposed 全面,有一些 Hook 是有问题的;需要自己检查一下:
超短方法
如果方法体太短,太极在某些机型上可能无法 Hook(Hook 不生效);在另外一些机型上可以 Hook,但是不够稳定。比如我们常见的如下方法,Hook 是有问题的:
privatestaticbooleanisModleActive(){
returnfalse;
}
Xposed 模块通常的做法是,Hook 这个方法,让它返回 true;就可以判断模块激活了。但是很遗憾,太极内部这么做有点小问题。但是,你可以很容易地修复它。
如果你是 Hook 自己,比如上面判断是否激活的;你只需要在这个方法里面加一行日志即可完美解决;比如,上面的方法改成这样:
privatestaticbooleanisModleActive(){
Log.i("fake","isModuleActive");
returnfalse;
}
就可以生效了。
如果你需要 Hook 别的APP中这样的方法,那没有办法;建议更换 Hook 点。
超长的方法
如果方法体太大,那么也会有一些兼容性问题;另外,在某些机器上还会有性能问题。总的来说,如果一个方法超过 2000 行,那么在 太极 中 Hook 此方法可能会出现潜在的问题:无法Hook 或者 启动卡慢;推荐更换 Hook 点。
方法所在的类有 static 块
太极在 Hook static 方法的时候,会提前初始化方法所在的类。如果这个类有 static 块,并且这个 static 块有副作用(如加载数据库,或者别的业务逻辑等);那么可能导致 APP 内部运行逻辑不正常。因此,在 Hook 带有 static 块的 static 方法的时候,需要特别小心。请注意:如果static 块中只做变量初始化,创建对象等,这是没有问题的。