热榜
#安全

iBotPeaches/Apktool

把闭源 Android APK 解码成可读资源与 smali,并能改后重新打包。

26,651
4,141
Java
Apache-2.0
上线 14 年

解决什么问题

拿到一个编译好的 APK,资源被压进二进制 XML 和 resources.arsc,代码是 Dalvik 字节码,想看清它到底在做什么,或者改一点点东西,第一步就卡住。Apktool 把 APK 拆成接近工程结构的目录,资源和 smali 可读可改,改完还能重新打包。

有什么不同

多数二进制工具的终点是「解出来」,Apktool 强调的是往返:解码、修改、重建,还支持对 smali 逐步调试。它懂 Android 的资源和 manifest 格式,而不是像通用解包或十六进制工具那样原样倾倒字节。与 jadx 这类反编译器相比,后者目标是把代码还原成可读 Java 供阅读,Apktool 停留在 smali 与资源层,重点在重新组装。与 Android 官方构建链相比,它面向别人已经发布的包,而不是你自己的源码。代价是保真度换可读性:smali 冗长难跟,遇到混淆、split APK 或异常资源布局时重建也可能失败。

适合谁

安全研究、恶意样本分析、本地化团队、ROM 与 Mod 开发者,需要读取或改动已发布 APK 里的资源。调试自己 release 包的 Android 开发者也用得上。只想读反编译 Java 的人应该用反编译器;做应用发布的人不该把它当成分发或加固手段。README 明确声明不用于盗版,合法使用由使用者自己负责。

上手成本

它是 Java 工具,需要 JVM 和平台对应的启动脚本,安装方式见 README,这里不重复。仓库同时维护 2.x 分支和 3.x 的 main,选错版本可能和老脚本不兼容。Apache-2.0 许可宽松。项目历史很长,但 README 对内部机制着墨很少,实际要依赖官网文档和 issue。真正的成本在知识:不熟悉 smali、resources.arsc 和 Android 签名,重建出的 APK 大概率装不上或跑不起来。

点评

这是一个成熟项目,不是新面孔:2012 年创建,约 26.6k stars,2.x 与 3.x 双分支说明维护是有意为之。HotRepo 榜单显示它在 Java 分类里持续上升(本周 +660、第 2;本月 +1,003、第 7),更像是重新受到关注,而不是发布即巅峰的短期热度。成熟度是它值得信任的理由,但工具价值的上限取决于你愿不愿意学 smali 和 Android 打包。建议先拿一个目标 APK 实测,再决定是否围绕它搭工作流。

Hacker News 讨论

Apktool – A tool for reverse engineering Android APK files
▲ 1 · 0 条评论 · 2022年3月28日

本文由 AI 根据项目 README 生成,更新于 2026年10月24日,以项目官方文档为准。