smali/baksmali — authorized DEX assemble/disassemble

Last updated: · By the BinBench editorial team · Stars and releases checked via the GitHub API
Quick answer

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

FieldValue
Upstreamgoogle/smali tag 3.0.10
Convenience buildsbaksmali/smali v3.0.10 fat JARs (2026-08-24 UTC)
JobDEX ↔ smali text assemble/disassemble
Historical homeJesusFreke/smali (archived 2026-06-19)
PeersApktool, 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)

  1. Prefer Google Maven com.android.tools.smali:*:3.0.10 or the baksmali/smali v3.0.10 fat JARs — record which.
  2. Start with a tiny DEX/APK you built; keep SHA-256 beside the tool version.
  3. Disassemble with baksmali; read smali as text; reassemble only when your lab policy allows modifying owned samples.
  4. For full APK resource workflows, escalate to Apktool.
  5. For Java-oriented reading, prefer jadx rather than hand-editing smali for comprehension.
Which to pick
  • 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.

Sources