--------------------------------------------------------------------------------------------------------------------------
1. 首先解压apk文件,获得classes.dex文件
java -jar .\apktool2.3.0.jar d com.ct.client201711.apk
2. 使用baksmali反编译classes.dex;
java -jar .\baksmali\baksmali-2.2.2.jar d classes.dex -o .\outclass\
3. 反编译的smali文件存在./outclass之中;
4. 修改过之后需要使用smali.jar将smali目录重新编译为classes.dex
java -jar .\baksmali\smali-2.2.2.jar a ./outclass/ -o classes1.dex
5. 使用压缩工具将新生成的classes.dex塞入apk包替换原有的classes.dex
压缩成为.apk包需要使用到apktool相关压缩工具
java -jar .\apktool2.3.0.jar b .\com.ct.client201711 -o client2018.apk
---- 这里需要说明的就是使用baksmali.jar反编译的生成的smali文件使用的是baksmali语法,和apktool反编译生成的smali语法有些许的区别。
6. .替换apk包中的classes.dex文件之后,需要对apk重新签名才能安装
java -jar signapk.jar platform.x509.pem platform.pk8 com.ct.client201711.apk com.ct.client201711_signed.apk
java -jar signapk.jar testkey.x509.pem testkey.pk8 client2018.apk client201801.apk
7. 优化APK
zipalign -v 4 client201801.apk client201802.apk
--------------------------------------------------------------------------------------------------------------------------
apktool:是apk格式文件与smali文件的转换
dex2jar:是dex格式文件与jar文件的转换
smali/baksmali:是dex格式文件与smali文件的转换
--------------------------------------------------------------------------------------------------------------------------
另加 Smalidea 神器
http://blog.csdn.net/charlessimonyi/article/details/51989096
http://blog.csdn.net/linchaolong/article/details/51146492
https://bitbucket.org/JesusFreke/smali/downloads/
反编译工具集合:
https://down.52pojie.cn/Tools/Android_Tools/
--------------------------------------------------------------------------------------------------------------------------
adb devices -- netstat -ano | findstr "5037" - adb 3个 + fastboot.exe
adb logcat TestWatch:I *:S --调试指南(TestWatch是标签,I是指Information级别以上的)
---------------------------------------------------------------------------------------------------------------------------