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:
License: Apache-2.0
Copyright (c) nexB Inc., AboutCode.org and others.
Homepage: https://github.com/aboutcode-org/android-inspector/
Requirements
ScanCode.io https://github.com/nexB/scancode.io
Ensure Java 11+ is in your path (using an OpenJDK installation)
Install jadx 1.5.0 https://github.com/skylot/jadx (You will need to add jadx to your path or moved its bin and lib directories to your /usr directory.
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
Follow the full instructions at https://scancodeio.readthedocs.io/en/latest/installation.html#local-development-installation
Install jadx minimally
Download https://github.com/skylot/jadx/releases/download/v1.5.0/jadx-1.5.0.zip in your scancode.io directory
Extract with unzip -qd jadx-1.5.0 jadx-1.5.0.zip
Add the extracted directory jadx-1.5.0/bin and jadx-1.5.0/lib to your path with export PATH=$PATH:`pwd`/jadx-1.5.0/bin/jadx:`pwd`/jadx-1.5.0/lib
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:
https://github.com/Acclorite/book-story/archive/refs/tags/v1.3.0.tar.gz#from
https://github.com/Acclorite/book-story/releases/download/v1.3.0/book-story.apk#to
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32e9ec39a80ad4d938c46fc2936f0dc718e6b4e79f6b701ddfd8ddea374b7e00
|
|
| MD5 |
0dce74984596a775a8ee792f289e8a97
|
|
| BLAKE2b-256 |
0ccbe6717bc786b48ab93c705fb64b2dc79f2075c9458de752a92993642d60e5
|
File details
Details for the file android_inspector-0.2.0-py3-none-any.whl.
File metadata
- Download URL: android_inspector-0.2.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec3dbabb280756018b8206ad3fb47e3945e32ca8475d41bf152e4013b329822e
|
|
| MD5 |
fac8e443bf4bc351c4bc20dc1422ea75
|
|
| BLAKE2b-256 |
d59b786b16c0c8262559d4ce9ec370ee5ab5acac1376e2466664bd8e9ae8e2d6
|