[Android] apk 解包 重签的简单步骤

有时候,我们在没有源码的情况下拿到APK,而且需要修改一下APK中的资源,例如:包名、应用名称、图片等,那么,我们就需要对APK进行解包,然后修改资源,再重新打包和重新签名等一系列的操作,本文章就是对这些步骤进行简单介绍。

环境搭建

  1. JDK 安装:安装JDK
  2. Android 开发环境搭建:安装Android studio
  3. apktool的使用以及安装:https://ibotpeaches.github.io/Apktool/

步骤

  1. 解包:
    apktool d -o <解包后输出的文件目录路径>

  2. 重新打包APK:
    apktool b <解包后输出的文件目录路径> -o <新apk文件绝对路径>

  3. 重新签名:
    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <签名文件名路径> -storepass <签名密码> <待签名apk文件绝对路径> <签名的别名>

  4. 签名完成后,建议对APK文件进行一次对齐操作:(该命令位于:../Android/sdk/build-tools/build-tools-version/ 目录下面):
    zipalign 4 <已签名apk文件绝对路径> <对齐apk文件绝对路径>

  5. 验证签名是否成功:
    jarsigner -verify -verbose -certs <对齐apk文件绝对路径>

FQ

  1. 如果以上的命令找不到,请根据系统(Window、Mac)配置环境变量;
  2. 如果在Mac系统下,运行脚本提示:permission denied: apktool,则需要使用:sudo chmod +x /usr/local/bin/apktool来给apktool 添加可执行权限;
  3. 如果在Mac系统下,运行脚本提示:command not found: zipalign,则需要使用命令进入到 ../Library/Android/sdk/build-tools/build-tools-version/ 目录中,然后使用 ./zipalign 方式运行对齐脚本。

你可能感兴趣的:([Android] apk 解包 重签的简单步骤)