Skip to content

apk-info

Fast, malware-robust parser for Android apk/xapk/apkm/apks files. Written in Rust, with a CLI and typed Python bindings.

Quickstart GitHub

brew install delvinru/tap/apk-info
nix profile install github:delvinru/apk-info
cargo install apk-info-cli
pip install apk-info

Then point it at an APK:

$ apk-info show apkstest.apk
apkstest.apk
  Package         io.github.delvinru.apkstest
  Label           APKS Test
  Version         1.0.7 (7)
  SDK             min 21 · target 35
  Main activity   io.github.delvinru.apkstest/.MainActivity
  ABIs            x86_64

What it handles

Tampered archives Reads APKs built with the BadPack technique: fake compression methods, mismatched headers, fake EOCD records. A broken resource table doesn't stop the manifest, DEX files or signatures from being read.

Signatures v1 to v3.2 certificates, source stamps, Walle, VasDolly, Packer-NG and ByteDance channels, Google Play Frosting. See Signatures.

Manifest and resources Full AXML and ARSC parsers, resource resolution, apktool-style decoding, and the main activity resolved the way Android does it.

Split containers XAPK, APKM and APKS open through their base APK; resources of all splits decode into one tree. See XAPK, APKM and APKS.

Speed On one thread, 34× faster than androguard on clean apps and 8× on 23,745 malware samples, with a fraction of its memory. See Benchmarks.

Read-only Never modifies, signs or decompiles anything. repack writes a clean copy of a damaged archive so other tools can open it.

Next