Trending
#Security & Privacy

iBotPeaches/Apktool

Decodes and rebuilds closed Android APKs so analysts and modders can inspect resources and smali bytecode.

26,651
4,141
Java
Apache-2.0
14 years old

The problem

A compiled APK is a black box: resources are packed into binary XML and resources.arsc, and code lives as Dalvik bytecode. Anyone who needs to understand what a closed app actually does, or change it, hits that wall before writing a single line. Apktool unpacks an APK into a project-like directory of readable resources and smali and can rebuild it after edits.

What's different

Most binary tooling stops at extraction. Apktool's distinguishing claim is round-tripping: decode, modify, rebuild, and it also lets you debug smali step by step. Compared with general archive/hex inspection, it understands Android's resource and manifest formats rather than dumping raw bytes. Compared with disassemblers such as jadx, which focus on producing readable Java for reading, Apktool stays at the smali/resource level and aims at re-assembly. Compared with Android's own build toolchain, it works on third-party, already-shipped packages rather than source you own. The trade-off is fidelity versus readability: smali is verbose and hard to follow, and rebuilds can break on obfuscation, split APKs or unusual resource layouts.

Who it's for

Security researchers, malware analysts, localization teams, and ROM/mod developers who need to read or alter resources in a shipped APK. Android developers debugging their own release builds also benefit. People who only want to read decompiled Java should use a decompiler; people shipping apps should not treat this as a distribution or protection tool. The README explicitly disclaims piracy, so legal use is the user's responsibility.

Cost of adoption

It is a Java tool, so a JVM is required, plus platform-specific wrapper scripts (install instructions are in the README, not repeated here). A 2.x maintenance branch and a 3.x main branch coexist, so version choice matters for compatibility with older scripts. Apache-2.0 licensing is permissive. The project is long-lived but its README is thin on internals; expect to rely on the website docs and issue tracker. The real cost is expertise: understanding smali, resources.arsc and Android signing before a rebuilt APK will install and run.

Verdict

This is an established project, not a newcomer: created in 2012 and sitting at roughly 26.6k stars, with a 2.x/3.x branch structure that signals deliberate maintenance. The HotRepo board shows it climbing Java rankings (+660 this week, #2; +1,003 this month, #7), which looks like renewed attention rather than a spike from launch hype. That maturity is the main reason to trust it for repeatable APK work, but the tool's usefulness is bounded by your willingness to learn smali and Android packaging. Try it on one target APK before building any workflow around it.

Hacker News

Written by AI from the project's README, updated October 24, 2026. The project's own docs are the source of truth.