反编译基本命令
tips: 使用之前,请确保你的PC已经配置java、Android SDK的环境变量
apktool: https://www.jianshu.com/p/9add52acbd05
反编译:apktool.jar d input.apk -f -o outputDir
回编译:apktool.jar b inputDir -f -o output.apk
bundletool: https://developer.android.google.cn/studio/command-line/bundletool
* aab2apks:
bundletool build-apks --bundle=input.aab --output=output.apks
* aab2apks&sign:
bundletool build-apks --bundle=input.aab --output=output.apks
--ks=/MyApp/keystore.jks
--ks-pass pass:123456
--ks-key-alias=MyKeyAlias
--key-pass pass:123456
jar & dex的相互转换
* dex2jar
win: d2j-dex2jar.bat input.dex -f -o output.jar
mac: d2j-dex2jar.sh input.dex -f -o output.jar
* jar2dex
d8 input.jar --output <file> <file>是文件夹或者.zip
win: d2j-jar2dex.bat input.jar -f -o ouput.dex
mac: d2j-jar2dex.sh input.jar -f -o output.dex
tips: mac使用之前需要给 d2j_invoke.sh 增加可执行权限
chmod +x d2j_invoke.sh
apk签名: https://developer.android.google.cn/studio/command-line/apksigner
jarsigner -verbose -keypass 密钥口令
-storepass 密钥库的密码短语
-keystore 密钥文件路径
-signedjar 签名后文件路径
待签名文件路径
别名
java -jar apksigner.jar sign --ks release.jks input.apk
java -jar apksigner.jar sign
--ks key.jks
--ks-pass pass:pp123456
--ks-key-alias releasekey
--key-pass pass:pp123456
--out output.apk
input.apk
apk对齐: https://developer.android.google.cn/studio/command-line/zipalign.html
zipalign -f -v 4 input.apk output.apk