| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| baksmali/ | 03-May-2024 | - | 7,650 | 4,661 | ||
| deodexerant/ | 03-May-2024 | - | 120 | 66 | ||
| dexlib2/ | 03-May-2024 | - | 71,274 | 40,502 | ||
| examples/ | 03-May-2024 | - | 740 | 517 | ||
| gradle/wrapper/ | 03-May-2024 | - | 6 | 5 | ||
| scripts/ | 03-May-2024 | - | 168 | 76 | ||
| smali/ | 03-May-2024 | - | 9,272 | 7,609 | ||
| smali-integration-tests/src/ | 03-May-2024 | - | 144,419 | 142,871 | ||
| third_party/ | 03-May-2024 | - | 8,880 | 6,485 | ||
| util/ | 03-May-2024 | - | 1,204 | 751 | ||
| .gitignore | D | 03-May-2024 | 156 | 13 | 12 | |
| AUTHORS | D | 03-May-2024 | 227 | 9 | 6 | |
| CONTRIBUTING.md | D | 03-May-2024 | 1.1 KiB | 29 | 21 | |
| LICENSE | D | 03-May-2024 | 15.5 KiB | 293 | 240 | |
| METADATA | D | 03-May-2024 | 578 | 20 | 18 | |
| OWNERS | D | 03-May-2024 | 37 | 4 | 2 | |
| README.md | D | 03-May-2024 | 2.6 KiB | 52 | 41 | |
| build.gradle | D | 03-May-2024 | 7 KiB | 211 | 184 | |
| gradle.properties | D | 03-May-2024 | 47 | 2 | 2 | |
| gradlew | D | 03-May-2024 | 5.6 KiB | 186 | 125 | |
| gradlew.bat | D | 03-May-2024 | 2.7 KiB | 90 | 68 | |
| settings.gradle | D | 03-May-2024 | 79 | 1 | 1 |
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