# smali/baksmali

> Assembler and disassembler for the dex format used by Android's Dalvik VM: baksmali turns dex, APK, odex and oat files into smali text, and smali assembles that text back into a dex file. The README says the syntax, loosely based on Jasmin's and dedexer's, supports the full dex format, including annotations and debug and line information. baksmali can also deodex odex and oat files and list a dex file's classes, methods, fields, strings and references, while the dexlib2 library reads and writes dex files from Java.

- Type: Tool
- Targets: App
- Category: Android tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-27
- Added to the catalog: 2026-11-03
- Original resource: <https://github.com/JesusFreke/smali>
- Primary source: <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/README.md>
- Catalog page: <https://awesomerea.org/resources/smali-baksmali/>
- Record JSON: <https://awesomerea.org/resources/smali-baksmali/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/smali-baksmali/index.md)

## Requirements & limits

- GitHub lists the repository as archived; its last push was on 2024-01-17, and the reviewed master head of 2022-03-08 is ten commits past v2.5.2, the last version, published as org.smali artifacts on Maven Central on 2021-03-03. The README still points downloads to the author's Bitbucket page. Google maintains a fork whose README says it exists because the original is not maintained; it renames the namespace to com.android.tools.smali and publishes 3.x releases (3.0.7 at review) on Google Maven.
- Java command-line tools and libraries compiled for Java 8 and built with the bundled Gradle 6.8.2 wrapper; scripts/smali and scripts/baksmali are launcher wrappers for the jars. Users supply their own dex, APK, odex or oat files and can set the API level; analyzing or deodexing optimized files needs a matching boot classpath, which for oat files can be the device's boot.oat. dexlib2's version map at this commit stops at dex 039 (API 28) and maps newer ART versions to API 29.
- The repository includes small test-fixture dex files under baksmali/src/test/resources and dexlib2/src/test/resources, hand-written smali examples, and deodexerant, a device-side C helper built in an AOSP tree that dumps Dalvik's inline method table for baksmali's -T option. No other dex, APK or system images are committed.
- There is no LICENSE file, so GitHub detects none; NOTICE releases Ben Gruver's code and Google-copyrighted changes under BSD-style three-clause licenses and says portions taken from the Android Open Source Project are used under Apache-2.0.

## Primary sources

1. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/README.md>
2. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/NOTICE>
3. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/build.gradle#L34>
4. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/build.gradle#L88-L91>
5. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/gradle/wrapper/gradle-wrapper.properties>
6. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/main/java/org/jf/baksmali/DisassembleCommand.java>
7. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/main/java/org/jf/baksmali/DeodexCommand.java>
8. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java#L54-L74>
9. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/smali/src/main/java/org/jf/smali/AssembleCommand.java>
10. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/dexlib2/src/main/java/org/jf/dexlib2/VersionMap.java>
11. <https://github.com/JesusFreke/smali/blob/2771eae0a11f07bd892732232e6ee4e32437230d/deodexerant/README>
12. <https://github.com/JesusFreke/smali/tree/2771eae0a11f07bd892732232e6ee4e32437230d/baksmali/src/test/resources>
13. <https://github.com/JesusFreke/smali/compare/v2.5.2...2771eae0a11f07bd892732232e6ee4e32437230d>
14. <https://repo1.maven.org/maven2/org/smali/baksmali/2.5.2/>
15. <https://github.com/google/smali/blob/1a36aa30d18d92e63994f4b1e67a055931f5a707/README.md>

## More in Apps

- [dalvikus](https://awesomerea.org/resources/dalvikus/index.md) · Tool
- [paranoid-deobfuscator](https://awesomerea.org/resources/paranoid-deobfuscator/index.md) · Tool
- [Katalina](https://awesomerea.org/resources/katalina/index.md) · Tool
- [Doldrums](https://awesomerea.org/resources/doldrums/index.md) · Tool
- [Frida UI](https://awesomerea.org/resources/frida-ui/index.md) · Tool
- [darter](https://awesomerea.org/resources/darter/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
