有时候,我们在没有源码的情况下拿到APK,而且需要修改一下APK中的资源,例如:包名、应用名称、图片等,那么,我们就需要对APK进行解包,然后修改资源,再重新打包和重新签名等一系列的操作,本文章就是对这些步骤进行简单介绍。
环境搭建
- JDK 安装:安装JDK
- Android 开发环境搭建:安装Android studio
- apktool的使用以及安装:https://ibotpeaches.github.io/Apktool/
步骤
解包:
apktool d <apk文件绝对路径> -o <解包后输出的文件目录路径>重新打包APK:
apktool b <解包后输出的文件目录路径> -o <新apk文件绝对路径>重新签名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <签名文件名路径> -storepass <签名密码> <待签名apk文件绝对路径> <签名的别名>签名完成后,建议对APK文件进行一次对齐操作:(该命令位于:../Android/sdk/build-tools/build-tools-version/ 目录下面):
zipalign 4 <已签名apk文件绝对路径> <对齐apk文件绝对路径>验证签名是否成功:
jarsigner -verify -verbose -certs <对齐apk文件绝对路径>
FQ
- 如果以上的命令找不到,请根据系统(Window、Mac)配置环境变量;
- 如果在Mac系统下,运行脚本提示:permission denied: apktool,则需要使用:sudo chmod +x /usr/local/bin/apktool来给apktool 添加可执行权限;
- 如果在Mac系统下,运行脚本提示:command not found: zipalign,则需要使用命令进入到 ../Library/Android/sdk/build-tools/build-tools-version/ 目录中,然后使用 ./zipalign 方式运行对齐脚本。