Skip to main content

ROSAL

ROSAL (Reverse Obfuscated Standard Android Libraries) helps in the process of reverse-engineering Android Applications, mapping obfuscated classes from an APK with their plain text correspondence in the standard libraries (androidx,core,...) It helps recover actual names for classes like RecyclerView, LiveData, Fragment, CompatActivity, and so on, partly automating the manual process of reverse engineering and allowing for an easier Static Analysis of Android apps. The mapping is limited to the calsses from the standard libraries: it does not involve the mapping of the proprietary calsses of the app.

Fully deterministic, no euristic. No AI is involved in the process.

Install

From local repository

Clone the repository, then cd to its directory and:

python -m pip install .

Prerequisites & Dependencies

Internal dependencies to Androguard, loguru and tqdm should be automatically resolved when installing. If not, install manually.

The tool relies on the Android SDK in order to work. Install it in ~/Android/Sdk

https://developer.android.com/tools/releases/build-tools
https://developer.android.com/tools/releases/platform-tools

Java is also required. Install it if you already haven't.

Run

# (Optional) Define APK path
export APK=...

Basic usage:

rosal --apk "$APK" # or <path_to_apk>

The command runs the fetch, extraction, catalog, matching and mapping stages in sequence.

By default, intermediate files and matches.tiny are written to ~/rosal. Use --work-dir to choose another directory:

rosal --apk "$APK" --work-dir ./anything_you_want

Files and Directories

markers_file = work_dir / "markers.txt"
library_dex_dir = work_dir / "library_dex"
target_dex_dir = work_dir / "target_dex"
features_file = work_dir / "features.ndjson"
catalog_file = work_dir / "catalog.json"
matches_file = work_dir / "matches.json"
mapping_file = work_dir / "matches.tiny"

Using the matches.tiny file

jadx-gui --mappings-path <path_to>/matches.tiny "$APK"

Metadata

Release files for rosal 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rosal 0.0.1
File Size Uploaded
rosal-0.0.1.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rosal 0.0.1
File Interpreter ABI Platform
rosal-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 32.5 kB

Release files / rosal-0.0.1.tar.gz

Download URL rosal-0.0.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ebe58d65e4ddf5b05f1215181091a68870b329220f5e66478728015bbdf18978
BLAKE2b-256 checksum
How to use checksums
848cf36d8924de9587e78694bcb4a4b1df017435bdeb4af62ca05c7ae0e4d197
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release files / rosal-0.0.1-py3-none-any.whl

Download URL rosal-0.0.1-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4558d11e8fb0ac78d689ce4c1c9f45b18952d5030d56407623d100ff30f35a3c
BLAKE2b-256 checksum
How to use checksums
d84b50416e24e6dd875cf1820df322cdd905f265083d0c54827ab1f7844c6b56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.13

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page