What is this?
A set of command-line tools for working with Android .dex and Java .class files, best known for converting the dex bytecode inside an APK into a jar you can open in a Java decompiler.
Is this a command-line tool, or a library I'd build my own code on?
Both. Everyday use is the command line (d2j-dex2jar.sh and friends), but the package also ships dex-reader/writer, a lightweight Java API for reading and writing .dex files, modeled on ASM.
How do I get a working copy?
Build from source: run ./gradlew distZip in the repo root, take dex-tools-2.1-SNAPSHOT.zip from dex-tools/build/distributions, unzip it (~5 MB) and run the d2j-*.sh scripts from that folder.
What do I need installed before I can run anything?
A JDK: the tools are Java programs, built with the bundled Gradle wrapper and launched through shell scripts. The README doesn't name a minimum Java version.
Does it hand me readable Java source code?
Not by itself: d2j-dex2jar turns .dex into .class files zipped as a jar, so you still feed that jar to a Java decompiler to get readable source.
Does it run on Windows, or is it a Linux/macOS thing?
The README only shows shell-script usage (sh d2j-dex2jar.sh), so Linux and macOS are the documented environments; as plain Java it runs wherever a JVM does, though no Windows launcher is mentioned.
What is smali, and when would I want it instead of a decompiler?
smali is an assembly-style, human-readable form of Dalvik bytecode. baksmali turns a dex into .smali files you can read or edit, and smali assembles them back into a dex — so you can patch an app's code, not just inspect it.
Can I point it at a whole APK, or only bare .dex files?
APKs work directly: the README example passes an APK path straight to the script — sh d2j-dex2jar.sh -f ~/path/to/apktodecompile.apk — and writes out apktodecompile-dex2jar.jar.
How does its smali/baksmali differ from the well-known originals?
It's an independent implementation with the same syntax, extended to support escapes in type descriptors — useful when class names contain unusual characters that the usual tooling chokes on.
Are there ready-made binaries, or do I have to build it?
GitHub Releases are linked at the top of the README, but the documented route is building the zip yourself: ./gradlew distZip produces dex-tools-2.1-SNAPSHOT.zip (~5 MB), which you unzip and run.
What are similar projects?
ASC, bytecode-viewer, jadx, Apktool, rea, GhidraMCP, ghidra-mcp, Rise-6.9.5
Which topics is it in?
dex, obfuscation, apk, reverse-engineering, security-tools, utility, java, android, security, tool, apache-2.0, cli