commit | 7ce9f5af9fd29b15e35d55419dad0f0fd0583c7c | [log] [tgz] |
---|---|---|
author | kgui <kgui@google.com> | Mon Dec 25 16:32:17 2023 +0800 |
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | Mon Jan 08 21:20:59 2024 +0000 |
tree | 41bdc8465c9a8d2d66b5637a5d210b1f01e9657f | |
parent | 8d3d8a8c9fee869479cfcf9ff59b87b90204dde5 [diff] |
Throw out a DexFileNotFoundException if the dexFile of a DexEntry is null. Which is consistent with the API's annotation that getDexFile() returns an non-null object. Bug: 317075756 Test: locally via: $ make dist cts-api-coverage (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:1706ee3aaffd7675999cad15fb3b1cb72af2ff89) Merged-In: I3cac4bd2dd9c378faa1cf6212f06f495c8fd954b Change-Id: I3cac4bd2dd9c378faa1cf6212f06f495c8fd954b
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 under the following coordinates:
com.android.tools.smali:smali:<version>
com.android.tools.smali:smali-dexlib2:<version>
com.android.tools.smali:smali-baksmali:<version>
com.android.tools.smali:smali-util:<version>
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.
./gradlew assemble
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
To execute all tests run
./gradlew test
Push a release version to your local maven repository (add -Dmaven.repo.local=<dir>
to override the default local maven repository location)
./gradlew release publishToMavenLocal
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 <version> <commit> git push origin <version>
Release versions can then be built by the Google R8 team using:
tools/trigger.py --smali=<version> --release
in the R8 repository.
The status of the build on the bot is at https://ci.chromium.org/p/r8/builders/ci/smali.
TBD.