miao~
miao~
发布于 2024-03-28 / 23 阅读
0

Apktool 使用教程

Apktool 是一个反编译Android Apk的第三方工具。它可以反编译资源,并在进行修改之后重新打包Apk。

官网:Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.

1、安装 apktool

 注意:apktool 依赖 Java1.8。请使用 java -version 查看,是否为1.8或更高版本。

主要的安装流程:

    1、下载运行脚本,根据不同平台保存为不同的名字。--- 运行脚本非必须,但可以避免一次次的重复敲 java -jar ...  来执行操作

    2、下载最新版本的 apktool.jar --- 下载后可能不叫这个名字,但是通过脚本运行的话,要求为这个名字,修改为这个就行

    3、将脚本和jar放到同一个目录下 --- 官方建议放到指定目录,我试过Windows和Mac,并不是一定要放到指定目录,也可以正常使用

    4、进入命令行,cd 到相应目录,执行命令


官网安装教程


apktool目录

2、手动build源码生成apktool

    apktool的官网上详细介绍了如何build源码生成apktool:Apktool - Build Guide

    apktool集合了几个子工程和依赖到一个工程中。其中包括:

brut.apktool.lib - 主工程,主要逻辑代码

brut.apktool.cli - 命令行接口工程

brut.j.dir - 工具工程

brut.j.util -工具工程

brut.j.common -工具工程

    要求JDK8,git(不从github上clone代码则不需要git)

    build的步骤:

        1、clone或者下载代码

            git clone git://github.com/iBotPeaches/Apktool.git

        2、在命令行中,进行到项目根目录下,执行gradlew.bat脚本,其他基于unix的系统执行./gradlew

        3、打包shadowJar,此jar包会将依赖都打包进去。

                gradlew.bat build shadowJar

        4、打包混淆过的jar

                gradlew.bat build shadowJar proguard

        输出目录:./brut.apktool/apktool-cli/build/libs/apktool-xxxxx.jar

    特别注意:Windows平台下,目录深度不能超过255个字符。目前apktool项目最深目录达到218个字符!所以apktool根目录的存放路径不能超过37个字符!!!

3、反编译apk

反编译命令:apktool d apk路径

执行过程中会输出主要步骤log


反编译apk

4、反编译结束后,反编译的内容均在目录下的 相应文件夹下 -- 文件夹名字与apk同名


反编译成功

5、重新打包

假如你进行了修改,现在进行重新打包

命令:apktool b 项目目录

我们使用的就是上一步反编译后,生成的目录

重新打包工程中,同样会输出主要步骤的log


重新打包

重新生成的apk位于目录中的 dist 目录下,如图


重新生成的apk

需要注意的是,重新生成的apk,是没有经过签名的,不能直接进行安装。关于apk的签名,这里不再赘述,自行百度,非常多。

下一篇,详细聊聊,apktool的各种参数作用。最终会有 apktool 的源码解析。

Apktool 参数详解