需要用到的工具有apktool、jdx-gui、zipalign、apksigner
前提需要有java环境,最好jdk1.8以上
工具包下载:链接:https://pan.baidu.com/s/1pNalpHW1pighc4O65K1l3w
提取码:abd8
一、反编译
将要解包的apk文件放到apktool.jar的同级目录下输入命令:
java -jar apktool.jar d -f target.apk -o outApk
像这样
编译完成后会在里面出现outApk的文件夹
二、查看、修改
打开上一步编译出来的文件,里面的结构像这样
我们可以修改res里的资源,布局解构等
smail文件主要涉及逻辑结构代码,不过比较类似汇编语言,这是可以利用jadx-gui工具打开单独smail文件或整个smail文件夹进行查看。
修改是可以利用id进行定位查找
三、重新打包
还是在apktool的同级目录下
输入命令:
java -jar apktool.jar b outApk
在这里空白处按住shift键和鼠标右键打开powershell
在outApk文件夹里的dist 文件夹里会生成apk
此时离成功已经不远了
四、对齐
如果没有 android studio需要下载一下,下载时会提示下载SDK ,在SDK->build-tool里会有zipalign.exe,把他复制到上一步的dist文件夹下
输入命令,还是一样空白处按住shift键和鼠标右键打开powershell:
zipalign -v 4 target.apk(目标apk) destination.apk(输出apk) //对齐处理
zipalign -c -v 4 destination.apk //检查对齐
五、签名
- 生成签名
输入命令,-alas表示别名,回车后按照提示填写即可,可以随便填:
keytool -genkey -alias mykey.keystore -keyalg RSA -validity 20000 -keystore mykey.keystore
- 使用签名
回到SDK->...->apksigner.jar,找到这个文件,把他复制到dist文件夹下
输入命令:
java -jar apksigner.jar sign --ks mykey.keystore --ks-key-alias mykey.keystore --ks-pass pass:123456 --key-pass pass:123456 --out myapp_signed.apk(最终生成apk文件) destination.apk(目标apk)
这个也是咱百度的上述命令是v1,v2签名,为了使之能够在android11以上安装成功
下面是v1签名,下载javaJDK时自带的,只需输入命令,高版本android可能安装不上:
jarsigner -verbose -keystore mykey.keystore -signedjar myapp_signed.apk destination.apk mykey.keystore
至此大功告成!!!🎉🎉🎉