Apktool 编译源码需要知道的事情

2020-08-07  本文已影响0人  北京朝阳区精神病院院长

前言

  Apktool 是一个常用的Android APK反编译工具,它可以将资源解码为几乎原始的形式,并在进行一些修改后重新构建它们。多用于逆向工程和SDK方向。

声明

本文讲解内容均来自Apktool官网 对内容进行翻译与解释,请勿纠结。

1.Apktool的安装

1.1 安装前的检查

1.需要安装JAVA 1.8

2.命令提示符下执行 java -version 查看jdk版本是否是JAVA 1.8

3.如果不是JAVA 1.8 会有一些莫名其妙的问题

1.2 安装Apktool

install.png

官网上分步骤说的有点啰嗦,单针对window系统简述一下:

1.可以通过find newest here 或者Current Version: 2.4.1链接下载不同版本的apktool的jar包。

(下载下来的文件名称apktool_2.x.x.jar,为了演示方便命名为apktool.jar)

2.写一个批脚本(详细看目录1.2.1)把批脚本apktool.bat和apktool.jar两个文件放在
C:\Windows\System32下(这种方式不需要单独配置环境变量)

apktool.bat.png
  1. 将两个文件(apktool.bat和apktool.jar)放在任何位置,然后将该目录添加到您的环境变量系统PATH变量中(与上面不需要单独配置2选1即可,3.这种方式需要单独配置环境变量)

说明:批脚本(apktool.bat)不是必需的,但很有用因为你不需要java -jar apktool.jar一遍又一遍地敲。

官网说两个文件建议放到C://Windows下,我个人习惯是放到C:\Windows\System32下。

我是按简述步骤2来的 ,可以在window任意盘符下执行 apktool 命令行,如下图所示:

apktool version.png

1.2.1 apktool.bat批处理脚本

@echo off
java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9

说明:apktool.bat和apktool.jar 一定在同一路径下 ,如果的apktool 格式是apktool_2.4.1.jar需要改下脚本如下:

@echo off
java -jar "%~dp0\apktool_2.4.1.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9

2.手动构建Apktool源码

Apktool是1个项目的集合,其中包含子项目和一些依赖项。

Apktool项目git地址 : https://github.com/iBotPeaches/Apktool

2.1 构建步骤(基于Window系统)

  1. 我们使用gradle构建。很简单 clone 仓库 命令如下:

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

git clone.png
  1. cd Apktool 进入Apktool文件夹
cd apktool.png
  1. window执行gradlew.bat脚本,其他基于unix的系统执行./gradlew

  2. 构建Apktool生成jar包,生成的jar包含所有的依赖

    gradlew.bat build shadowJar (Window系统)

    ./gradlew build shadowJar (基于Unix的系统)

  3. 构建一个混淆过的Apktool.jar(可选项)

    gradlew.bat build shadowJar proguard (Window系统)

    ./gradlew build shadowJar proguard (基于Unix的系统)

window gradlew.bat .png
  1. windows输出目录路径(我把Apktool项目 clone 到了我的桌面):
output.png

生成出来的新的apktool-cli-all.jar 查看apktool 版本

apk-version.png

2.2 Windows上的限制

Windows在最大文件路径方面有一些限制,不能超过255个字符。Apktool项目中本身有218个字符的目录路径,这也就意味着apktool项目的存放路径不能超过37个字符!!!

这样以来,官方建议我们将此项目克隆到该位置:

C:/Users/Administrator/Desktop/Apktool (我的存放的项目路径也是该位置)

3.最新两个版本Apktool的变化

v2.4.2(暂未对外发布)

2020.xx.xx

v2.4.1

2019.11.19

结语

记录下自己的学习和工作经验,分享给有需要的人。如果有那里写的不对,说的不理解,欢迎大家的指正。

上一篇 下一篇

猜你喜欢

热点阅读