知道了Apktool 的基本用法Apktool 使用教程,以及Apktool的全部参数配置Apktool 参数详解之后,对于Apktool的用法,可以说已经基本搞定,不过源码的阅读也是比不可少的,懂得源码,能改会改,才是解决棘手问题的根本能力。
注意:本文使用的源码为github上拉取的最新代码,2.4.2版本,目前暂未发布。 – 2020年3月18日
1、查看apktool.jar的入口类通过查看jar包的Manifest.MF文件,看到入口类为brut.apktool.Main
apktool.jar的Manifest文件
2、使用Android studio打开apktool的源码
项目结构
3、找到入口类 brut.apktool.Mainmain函数主要做了以下事情,很简单,此处不详述。
设置系统属性 System.setProperty(“java.awt.headless”, “true”);
这里的system,系统指的是 JRE (runtime)system,不是指 OS。
new一个命令行解析器,后续进行命令行参数的解析
初始化配置类,包括各种配置,日 ...
上一篇 Apktool 使用教程 简单说明了一下 apktool 的基本使用。能够反编译和重新打包一个 apk 了。
如果你学会了使用 -d ,-b 进行 apk 的反编译和重新打包。
那么恭喜你!apktool 你已经学会了 90%的使用了,你也能够反编译绝大多数的 apk 了。
但事情总有小小的例外,有那么一些 apk 它就是不让你如愿。比如加固过的,或者一些厂商的系统应用,它们依赖了一些系统特有的 resource,你不得不进行特殊处理,才能成功的反编译,甚至有时候需要你去修改 apktool 的源码。
所以,这一篇文章就是告诉你那些你平时可能不注意的小细节,不常用的参数到底有什么用。
注意:本文所用 apktool 版本为,2.4.1。
官网介绍:Apktool - Documentation
1、-d 反编译apktool d bar.apk -o baz
apktool decode bar.apk -o baz
你可以使用-o 来指定反编译的输出目录,如上命令为 反编译 bar.apk 到 baz 目录,也可以使用绝对路径,输出到任意目录。
decode 和 d 以及 - ...
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 或更高版本。
主要的安装流程:
下载运行脚本,根据不同平台保存为不同的名字。— 运行脚本非必须,但可以避免一次次的重复敲 java -jar … 来执行操作
下载最新版本的 apktool.jar — 下载后可能不叫这个名字,但是通过脚本运行的话,要求为这个名字,修改为这个就行
将脚本和 jar 放到同一个目录下 — 官方建议放到指定目录,我试过 Windows 和 Mac,并不是一定要放到指定目录,也可以正常使用
进入命令行,cd 到相应目录,执行命令
官网安装教程
apktool 目录
2、手动 build 源码生成 apktoolapktool 的官网 ...




