原文:http://free0coding.iteye.com/blog/1684263
1、将需要注入的代码块打包成jar1,释放一个公共类的静态方法a
2、反编译apk得到smali文件,在适当的地方加入对jar中a方法的引用
3、将修改过的smali文件编译成dex文件
4、将dex文件编译成jar2
5、解压jar2和jar1,将jar1中的class文件放到jar2解压后的文件夹中的合适位置
6、压缩jar2文件夹生成jar3
7、将jar3编译成dex文件
8、删除原apk中的证书文件夹META-INF,替换dex文件,重新签名,即可得到注入代码后的apk
修改apk的包名
1、反编译apk得到dex,将dex编译成jar
2、解压jar得到class文件,用jclasslib修改class文件的包名,修改解压后相关文件夹名
3、重新压缩文件夹,即可得到改包名后的jar包
4、将jar编译成dex,替换原apk中的dex
5、反编译原apk中的manifest,修改package的值