Loading...

文章背景图

Apktool:Android APK 解包与重打包工具安装指南

2026-10-27
0
- 字
- 分钟
|

Apktool 是一个用于逆向工程第三方、闭源、二进制 Android 应用的工具。它能把资源解码到接近原始的形式、在你修改后重新打包,还支持逐步调试 smali 代码。它以工程化的目录结构组织应用,并自动化构建 apk 等重复任务。

官方强调:Apktool 不用于盗版或任何非法用途;可用于本地化、增加功能、适配自定义平台等正当用途。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/iBotPeaches/Apktool
官方网站 https://apktool.org
开源协议 Apache-2.0
主要语言 Java(约 98.5%)
Star 数 约 27.0k
当前分支 main(Apktool 3.x);2.x 为 2.x 维护分支

二、官方图片

Apktool 仓库预览图:

Apktool

三、环境要求

  • Java 8 或更高(运行 Apktool 必需)。
  • 下载 apktool.jar 与启动脚本(Linux/macOS 是 apktool,Windows 是 apktool.bat)。
  • 重新打包后还需 apksigner 或 uber-apk-signer 签名。

四、完整安装步骤

1. 下载

到 https://apktool.org 或镜像 https://connortumbleson.com/apktool 下载:

  • apktool.jar
  • 启动脚本 apktool(Linux/macOS)或 apktool.bat(Windows)。

2. Linux/macOS 安装

把 apktool.jar 重命名为 apktool.jar,与脚本一起放到 /usr/local/bin:

sudo cp apktool /usr/local/bin/
sudo cp apktool.jar /usr/local/bin/
sudo chmod +x /usr/local/bin/apktool

3. Windows 安装

把 apktool.bat 与 apktool.jar 放到任意目录,并把该目录加入 PATH。

4. 验证

apktool --version

5. 从源码构建

见 https://apktool.org/docs/build ,需要 JDK 与 Maven/Gradle 环境。

五、使用方法

解码(反编译)

apktool d app.apk

或:

apktool decode app.apk -o app_dir

解码后目录结构:

app_dir/
├── AndroidManifest.xml
├── apktool.yml
├── original/
├── res/              # 资源
├── smali/            # smali 代码(多 dex 会是 smali_classesN)
└── unknown/

常用解码选项:

apktool d -s app.apk          # 不解码 sources,只复制 dex
apktool d -r app.apk          # 不解码 resources
apktool d -f app.apk          # 强制覆盖输出目录

重新打包

apktool b app_dir -o app_new.apk

安装到设备

apktool if framework-res.apk   # 安装 framework 资源(必要时)

调试 smali

Apktool 支持逐步调试 smali 代码,配合 IDE 插件可在 smali 行打断点调试。

其他常用命令

apktool --version
apktool --help
apktool empty-framework-dir   # 清空 framework 缓存

六、常见问题 FAQ

1. 打包后安装失败? 重新打包出的 apk 未签名。用 apksigner 或 uber-apk-signer 对 app_new.apk 签名后再安装。

2. 解码后资源乱码/缺失? 确认用的是 Apktool 3.x(main 分支);老版本对新 Android 版本资源支持不全。

3. 提示 framework 相关错误? 执行 apktool if framework-res.apk 安装对应设备的 framework 资源。

4. 多 dex 应用 smali 在哪? 多 dex 会拆成 smali/、smali_classes2/、smali_classes3/ 等目录。

5. 不想反编译 dex,只想要资源? 用 apktool d -s app.apk,跳过反编译直接复制 dex。

6. 从源码构建? 参考 https://apktool.org/docs/build ,需要 JDK 与构建工具。

七、跳转链接

  • GitHub 仓库:https://github.com/iBotPeaches/Apktool
  • 官方网站:https://apktool.org
  • 文档:https://apktool.org/wiki/the-basics/intro
  • 下载:https://bitbucket.org/iBotPeaches/apktool/downloads
  • 构建文档:https://apktool.org/docs/build
评论交流

文章目录