This is Nico Mexis' fork of the dex2jar project which aims to fix most issues.
- Fixed many
StringIndexOutOfBoundsException
s relating to signatures - Fixed
TypeTransformer
related issues - Fixed many
NullPointerException
s and other crashes - Fixed grammar of error messages
- Update libraries (especially ASM)
- Library fat-jar can be used for other projects (Automatically produced by GitHub Actions)
- Smali now outputs
.param
instead of the outdated.parameter
syntax - Reformatted and cleaned up most of the code
To download the latest builds, head to the Releases.
Note: the builds in Releases are automatically built by GitHub Actions.
Tools to work with android .dex and java .class files
- dex-reader/writer: Read/write the Dalvik Executable (.dex) file. It features a lightweight API similar with ASM .
- d2j-dex2jar: Convert .dex file to .class files (zipped as jar)
- smali/baksmali:
Disassemble dex to smali files and assemble dex from smali files. Different implementation
to smali/baksmali, same syntax, but we support escape in type desc
"Lcom/dex2jar\t\u1234;"
- other tools: d2j-decrypt-string
- In the root directory run:
./gradlew distZip
cd dex-tools/build/distributions
- Unzip the file
dex-tools-2.1-SNAPSHOT.zip
- Run
d2j-dex2jar.sh
from the unzipped directory
sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
And the output file will be apk_to_decompile-dex2jar.jar
.
See for example the infamous Bytecode Viewer.
Send an email to nico.mexis@kabelmail.de or post on the issue tracker.