Android反编译工具ApkTool的使用

功能:拆解Apk文件,反编译其中的资源文件,将它们反编译为可阅读的AndroidManifest.xml文件和res文件。前面讲过,直接把Apk文件当做zip解压,得到的xml资源文件,都是无法直接用文本编辑器打开阅读的,因为它们在打包时经过了build-tools的处理

下载和安装步骤链接:https://ibotpeaches.github.io/Apktool/install/

下面我来汉化一下:

安装步骤

点击以上链接,看Installation for Apktool中的windows中步骤

  1. 首先右键1中的wrapper script,然后另存为apktool.bat
    Android反编译工具ApkTool的使用
    我们会得到一个
    Android反编译工具ApkTool的使用
  2. 我们点击步骤2中链接下载一个2.4.0的版本
    Android反编译工具ApkTool的使用
  3. 重命名这个jar为apktool.jar
    Android反编译工具ApkTool的使用
  4. apktool.jarapktool.bat移动到Windows文件夹,通常是C:\Windows

使用教程

官方使用教程:https://ibotpeaches.github.io/Apktool/#

打开cmd,进入自己app所在文件夹,执行apktool d app名称.apk
Android反编译工具ApkTool的使用
等一会儿会执行成功
Android反编译工具ApkTool的使用
同时app所在文件夹会出现一个和app同名的文件夹
Android反编译工具ApkTool的使用

注意:如果把apk和apktool.jar同样放在windows下可能会遇到坑: apktool报错:file must be a directory

打开新增的文件夹
Android反编译工具ApkTool的使用
我们已经得到一个可以用文本编辑器打开的阅读的AndroidManifest.xml文件、assets文件夹、res文件夹、smali文件夹等等
original文件夹是原始的AndroidManifest.xml文件
res文件夹是反编译出来的所有资源
smali文件夹是反编译出来的代码
注意,smali文件夹下面,结构和我们的源代码的package一模一样,只不过换成了smali语言。它有点类似于汇编的语法,是Android虚拟机所使用的寄存器语言

这时,我们已经可以文本编辑器打开AndroidManifest.xml文件和res下面的layout文件了。这样,我们就可以查看到这个Apk文件的package包名、Activity组件、程序所需要的权限、xml布局、图标等等信息。其实我们把Apk上传到应用市场时,应用市场也会通过类似的方式解析我们的apk