Crates.io | dex |
lib.rs | dex |
version | 0.5.0 |
source | src |
created_at | 2019-11-10 11:53:31.628651 |
updated_at | 2021-05-31 05:09:23.953701 |
description | Rust library for parsing dex files |
homepage | |
repository | https://github.com/letmutx/dex-parser.git |
max_upload_size | |
id | 179923 |
size | 732,531 |
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 Cargo.toml
:
dex = "0.4.0"
The primary source of documentation for dex format is Android website. Most of the public struct
s, and method
s in this crate have the same names. There are a few examples here to get you started.
mmap
to access the file contents.classes.dex
in the resources folder is from the open-source application ADW launcher. You can find the source code hereSome 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.
For javac
, you need to install Java.
Also, ANDROID_LIB_PATH
variable needs to be set in the environment. It should point to the android.jar
file in the SDK. (ex: Android/Sdk/platforms/android-<version>/android.jar
). This is needed to prevent warnings when running d8
.
Use cargo install cargo-tarpaulin
and run cargo tarpaulin
to 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!