Skip to main content

A collection of ScanCode.io pipelines dedicated to Android APK analysis.

Project description

android-inspector is a set of utilities to inspect binary Android application APK as well as Android firmwares. This is also a ScanCode.io pipeline plugin.

The available features are:

  • Extract and map the files found in a binary Android application to the assumed corresponding source code.

Other information:

Requirements

See also the next section for detailed instructions.

Local installation and usage test

To install:

  • Clone android-inspector locally side-by-side: git clone https://github.com/aboutcode-org/android-inspector

  • Clone ScanCode.io locally side-by-side: git clone https://github.com/aboutcode-org/scancode.io

  • Change to the scancode.io directory and run make dev then source bin/activate

  • Install jadx minimally

  • Run pip install --editable ../android-inspector

  • Run ScanCode.io with ./manage.py runserver --insecure and open the URL in your browser. There is a new “android_d2d” pipeline available when creating a new project.

To use with example Android APKs and sources:

  • Create a new project and name it “sample-apk-analysis”

  • In the input section, add Download URLs for the source and binary of a public APK:

You can use this pair of source (aka. “from”) and binaries (aka. “to”):

Or you can use alternatively this other example pair:

Then:

  • Select “android_d2d” in the pipeline dropdown and click “create”.

  • Wait for the pipeline to complete, and check the created Relations as well as the missing “To” source files resulting from mapping the binaries back to sources.

At this stage we typically report missing many source files because these are not present in the source code reposirories. In particular:

  • PurlDB matching would be enabled in a full ScanCode.io installation and could help match the Android toolchain and standard library if indexed.

  • There is a significant number of standard library Java files that are part of the Android toolchain. This will be resolved with this issue https://github.com/aboutcode-org/android-inspector/issues/3

Development

  • Install requirements and dependencies using make dev

  • Then source venv/bin/activate

Testing:

  • To run tests: pytest -vvs

Funding, support and sponsoring

This project is funded, supported and sponsored through:

  • Generous support and contributions from users like you!

  • NGI Zero Core https://nlnet.nl/core, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet https://ngi.eu program. Learn more at the NLnet project page https://nlnet.nl/Back2source-next

    NLnet foundation logo and NGI Zero Logo

  • Support from nexB Inc. nexB logo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

android_inspector-0.2.0.tar.gz (72.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

android_inspector-0.2.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file android_inspector-0.2.0.tar.gz.

File metadata

  • Download URL: android_inspector-0.2.0.tar.gz
  • Upload date:
  • Size: 72.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for android_inspector-0.2.0.tar.gz
Algorithm Hash digest
SHA256 32e9ec39a80ad4d938c46fc2936f0dc718e6b4e79f6b701ddfd8ddea374b7e00
MD5 0dce74984596a775a8ee792f289e8a97
BLAKE2b-256 0ccbe6717bc786b48ab93c705fb64b2dc79f2075c9458de752a92993642d60e5

See more details on using hashes here.

File details

Details for the file android_inspector-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for android_inspector-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec3dbabb280756018b8206ad3fb47e3945e32ca8475d41bf152e4013b329822e
MD5 fac8e443bf4bc351c4bc20dc1422ea75
BLAKE2b-256 d59b786b16c0c8262559d4ce9ec370ee5ab5acac1376e2466664bd8e9ae8e2d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page