# smali-google **Repository Path**: pythonzz/smali-google ## Basic Information - **Project Name**: smali-google - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-15 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### About smali/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.) **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.android.tools.smali`. The artifacts are released on [Google Maven](https://maven.google.com) under the following coordinates: * [`com.android.tools.smali:smali:`](https://maven.google.com/web/index.html?q=smali#com.android.tools.smali:smali) * [`com.android.tools.smali:smali-dexlib2:`](https://maven.google.com/web/index.html?q=smali-dexlib2#com.android.tools.smali:smali-dexlib2) * [`com.android.tools.smali:smali-baksmali:`](https://maven.google.com/web/index.html?q=smali-baksmali#com.android.tools.smali:smali) * [`com.android.tools.smali:smali-util:`](https://maven.google.com/web/index.html?q=smali-util#com.android.tools.smali:smali-util) After 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. #### Support - [github Issue tracker](https://github.com/google/smali/issues) - For any bugs/issues/feature requests #### Some useful links for getting started with smali - [Official dex bytecode reference](https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html) - [Registers wiki page](https://github.com/JesusFreke/smali/wiki/Registers) - [Types, Methods and Fields wiki page](https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields) - [Official dex format reference](https://source.android.com/devices/tech/dalvik/dex-format.html) ### Building ``` ./gradlew assemble ``` ### Command Line Version To run the `smali` and `baksmali` tools from the command line build the fat jars. The fat jars will be named with the current version followed by the first 8 characters of the current git hash followed by an optional `-dirty` if the repository was dirty when building and ending in -fat . The fat jar can be invoked with `java -jar`. ``` ./gradlew smali:fatJar java -jar smali/build/libs/smali-x.y.z-aaaaaaaa-dirty-fat.jar ``` ### Testing To execute all tests run ``` ./gradlew test ``` ### Testing Maven Release Push a release version to your local maven repository (add `-Dmaven.repo.local=` to override the default local maven repository location) ``` ./gradlew release publishToMavenLocal ``` ### Prepare and build a release version To prepare a release update `build.gradle` with the next release version and commit that. Then create a tag for that commit with the version. ``` git tag git push origin ``` Release versions can then be built by the Google R8 team using: ``` tools/trigger.py --smali= --release ``` in the R8 repository. The status of the build on the bot is at https://ci.chromium.org/p/r8/builders/ci/smali. ### Releasing versions on Google Maven TBD.