Dex is a parser for Android's Dex format written completely in Rust.
Most of the functionality to access the data structures in the file is implemented. Test coverage stands at 81% as of v0.3.0
Add to your
dex = "0.4.0"
- The library makes use of
mmapto access the file contents.
- scroll is used to parse binary data.
- The included
classes.dexin the resources folder is from the open-source application ADW launcher. You can find the source code here
Running test cases
Some tests contains Java code and require
javac and d8. The other option is to open a PR and test using the travis setup.
- To get
d8, you need to install Android SDK and add
Android/Sdk/build-tools/<version>/directory to PATH variable.
javac, you need to install Java.
ANDROID_LIB_PATHvariable needs to be set in the environment. It should point to the
android.jarfile in the SDK. (ex:
Android/Sdk/platforms/android-<version>/android.jar). This is needed to prevent warnings when running
cargo install cargo-tarpaulinand run
cargo tarpaulinto get test coverage.
All contributions are welcome! Feel free to raise issues/PRs on Github if you find a bug, have a question or think something can be improved! Please add a test when you open an PR!