因为项目要求,需要实现兼容Android 4.X到5.X平台的HOOK技术。主要兼容的ROM厂商为华为、三星、小米等。
之前已经实现过基于Android 4.X的HOOK技术,共有以下三种方案(都调试成功):
(1)方案1:使用Xposed框架(Dalvik虚拟机层HOOK),但是弊端是需要安装版本兼容的Xposed(部分国产机ROM很挑Xposed版本,如小米和nubia),且修改系统文件存在一定风险;
(2)方案2:使用与Xposed框架实现HOOK原理基本相同的开源框架ddi,但每次使用时需要进行注入操作;
(3)方案3:使用got HOOK技术(Native层HOOK),每次使用时需要进行注入操作;
Android 5.X版本遇到的问题是:(1)问题1:Dalvik虚拟机被完全替换为ART,所以上面的方案2不可行;
(2)问题2:Xposed作者在XDA发布了Xposed 3.0版本,通过替换libart.so来实现对Android 5.X版本的HOOK。但是&#x