• Home
Name Date Size #Lines LOC

..--

baksmali/03-May-2024-7,6504,661

deodexerant/03-May-2024-12066

dexlib2/03-May-2024-71,27440,502

examples/03-May-2024-740517

gradle/wrapper/03-May-2024-65

scripts/03-May-2024-16876

smali/03-May-2024-9,2727,609

smali-integration-tests/src/03-May-2024-144,419142,871

third_party/03-May-2024-8,8806,485

util/03-May-2024-1,204751

.gitignoreD03-May-2024156 1312

AUTHORSD03-May-2024227 96

CONTRIBUTING.mdD03-May-20241.1 KiB2921

LICENSED03-May-202415.5 KiB293240

METADATAD03-May-2024578 2018

OWNERSD03-May-202437 42

README.mdD03-May-20242.6 KiB5241

build.gradleD03-May-20247 KiB211184

gradle.propertiesD03-May-202447 22

gradlewD03-May-20245.6 KiB186125

gradlew.batD03-May-20242.7 KiB9068

settings.gradleD03-May-202479 11

README.md

1### About
2
3smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on Jasmin's/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)
4
5**NOTE**: This is a fork of https://github.com/JesusFreke/smali for patches needed by Google as the original repository is currently not maintained. After forking the namespace was changed from `org.jf` to `com.anroid.tools.smali`. The artifacts are released on [Google Maven](https://maven.google.com) under the following coordinates:
6* [com.anroid.tools.smali:smali:<version>](https://maven.google.com/web/index.html?q=smali#com.android.tools.smali:smali)
7* [com.anroid.tools.smali:smali-dexlib2:<version>](https://maven.google.com/web/index.html?q=smali-dexlib2#com.android.tools.smali:smali-dexlib2)
8* [com.anroid.tools.smali:smali-baksmali:<version>](https://maven.google.com/web/index.html?q=smali-baksmali#com.android.tools.smali:smali)
9* [com.anroid.tools.smali:smali-util:<version>](https://maven.google.com/web/index.html?q=smali-util#com.android.tools.smali:smali-util)
10After the fork the first version released was 3.0.0, which was version 2.5.2 from the original repo with a few patches and the namespace change.
11
12#### Support
13- [github Issue tracker](https://github.com/google/smali/issues) - For any bugs/issues/feature requests
14
15#### Some useful links for getting started with smali
16
17- [Official dex bytecode reference](https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html)
18- [Registers wiki page](https://github.com/JesusFreke/smali/wiki/Registers)
19- [Types, Methods and Fields wiki page](https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields)
20- [Official dex format reference](https://source.android.com/devices/tech/dalvik/dex-format.html)
21
22### Building
23```
24./gradlew assemble
25```
26### Command Line Version
27
28To run the `smali` and `baksmali` tools from the command line build the fat
29jars. The fat jars will be named with the current version followed by the first
308 characters of the current git hash followed by an optional `-dirty` if the
31repository was dirty when building and ending in  -fat . The fat jar can be
32invoked with `java -jar`.
33```
34./gradlew smali:fatJar
35java -jar smali/build/libs/smali-x.y.z-aaaaaaaa-dirty-fat.jar
36```
37
38### Testing
39
40To execute all tests run
41```
42./gradlew test
43```
44
45### Testing Maven Release
46Push a release version to your local maven repository (add
47`-Dmaven.repo.local=<dir>` to override the default local maven repository
48location)
49```
50./gradlew release publishToMavenLocal
51```
52