smali/baksmali — authorized DEX assemble/disassemble
smali / baksmali (google/smali) assemble and disassemble Dalvik DEX. Cite tag 3.0.10 (fat JARs also on baksmali/smali v3.0.10, 2026-08-24 UTC). Analyze only packages you are authorized to examine.
Snapshot
| Field | Value |
|---|---|
| Upstream | google/smali tag 3.0.10 |
| Convenience builds | baksmali/smali v3.0.10 fat JARs (2026-08-24 UTC) |
| Job | DEX ↔ smali text assemble/disassemble |
| Historical home | JesusFreke/smali (archived 2026-06-19) |
| Peers | Apktool, jadx, Enjarify |
Allowed framing
- Disassembling your lab DEX to study Dalvik opcodes.
- Reassembling coursework patches on packages you own.
- Pairing with Apktool when resources matter too.
Scope we will not cover
- No exploit PoC cookbooks from smali patches.
- No DRM / license-check bypass framing.
- No malware packing or Play-protect evasion guides.
Beginner path (authorized only)
- Prefer Google Maven
com.android.tools.smali:*:3.0.10or the baksmali/smali v3.0.10 fat JARs — record which. - Start with a tiny DEX/APK you built; keep SHA-256 beside the tool version.
- Disassemble with baksmali; read smali as text; reassemble only when your lab policy allows modifying owned samples.
- For full APK resource workflows, escalate to Apktool.
- For Java-oriented reading, prefer jadx rather than hand-editing smali for comprehension.
- Use smali/baksmali 3.0.10 for DEX assemble/disassemble on authorized samples.
- Prefer Apktool when resources + smali project layout are the goal.
- Refuse exploit and malware-packing framing.
For legal, authorized and educational use only.
FAQ
What are smali and baksmali?
baksmali disassembles DEX into smali text; smali assembles smali text back into DEX. Syntax is loosely Jasmin/dedexer-like and covers DEX features such as annotations and debug info.
Which version is cited?
google/smali git tag 3.0.10 (commit 7a325fc…). Convenience fat JARs are published on baksmali/smali Releases as v3.0.10 (2026-08-24 UTC), mirroring that upstream tag. JesusFreke/smali is archived (2026-06-19) — prefer google/smali artifacts (checked 2026-10-24).
What license / coordinates apply?
google/smali documents Google Maven coordinates under com.android.tools.smali:* (namespace changed from org.jf). Treat the repository LICENSE / Maven POM as authoritative for redistribution.
Apktool/jadx or smali?
Prefer Apktool when you want resource decode + smali project layout together. Prefer jadx for Java/Kotlin reading. Prefer bare smali/baksmali when you need the assembler/disassembler directly on authorized DEX.
Does this teach writing exploits or packing malware?
No. Authorized inspection, interoperability labs and education only — BinBench will not supply exploit PoCs or malware-packing recipes.