一、将jar、dex反编译成smali文件
1. gfw is a bitch.2. baksmali/smali新github链接:https://bitbucket.org/JesusFreke/smali/downloads
.jar下载链接:https://bitbucket.org/JesusFreke/smali/downloads -------用这个
这里可以下载到最新的baksmali和smali
3. 举例framework.jar,将framework.jar中的class.dex解压出来
4. 使用baksmali.jar对classes.dex进行反编译
java -jar baksmali-2.1.0.jar classes.dex -o outFolder/ --------目前最新就是这个,同时需要预安装好jdk及环境变量
5. 反编译后的.smali会产生在outFolder中。
二、smali文件编译回classes.dex
1. java -jar smali-2.1.0.jar outFolder/ -o classes.dex
2. 再把编译好的classes.dex放回到framework.jar中就行了三、framework.jar反编译成.class和.java文件
1. 介绍两个工具:dex2jar和jad、jd-gui:各有千秋。结合起来用更佳2. dex2jar: https://github.com/pxb1988/dex2jar
jad: http://varaneckas.com/jad/
jd-gui: http://jd.benow.ca/
3. 使用dex2jar对.jar或class.dex进行转换,执行命令: dex2jar.bat class.dex,将会生成一个classes_dex2jar.jar
3、jar文件中为.class,还没啥卵用。继续转换
4、转换成.java文件,用xjad或jd-gui即可。jd-gui有直接可视界面。xjad需要敲下命令,比如:jad -sjava packages/*.class
注:dex2jar可.dex文件,也可以直接处理framework.jar。
四、签名
曾经dex2jar有签名bat:d2j-apk-sign.bat,现在没了。用java有四个key,直接找了source code就不翻译了
testkey -- a generic key for packages that do not otherwise specify a key.
platform -- a test key for packages that are part of the core platform.
shared -- a test key for things that are shared in the home/contacts process.
media -- a test key for packages that are part of the media/download system.
命令:
java -jar signapk.jar testkey.x509.pem testkey.pk8 已编译(未签名).apk 已编译(已签名).apk