Apktool的基本使用
解包指令:
1 | apktool d [apk文件] -o [解包存放路径] |
如果使用的是jar包,则:
1 | java -jar apktool.jar d [apk文件] -o [解包存放路径] |
打包指令:
1 | apktool b [源码目录] -o [apk文件] |
签名指令:
1 | jarsigner -verbose -keystore [签名文件] -signedjar [签名后的apk 可自定义文件名] [需要签名的apk] [签名文件的别名] |
温馨提示
由于apk在反编译后进行回编时容易出现各种异常情况, 建议解包后立马进行装包测试,以免白费功夫!
问题1 DexBackedDexFile$NotADexFile
apktool反编apk时报错:
1 | org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 cd |
提示很明显,就是非法Dex,这是因为apk里有加密过后的dex文件,比如有些apk的assets目录下有加密后的Dex文件,添加–only-main-classes
参数即可
1 | apktool d ~/tmp/test.apk -o /tmp/test --only-main-classes |
apktool打包时找不到打包后的apk文件
新版的apktool需要加上 -o 参数, 否则只编译不输出apk 文件
1 | apktool b ~/tmp/test -o /tmp/test.apk |
本文为作者原创 转载时请注明出处 谢谢
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站