Analysis workspace
September 16, 2026 ยท View on GitHub
analysis/ is a local, gitignored scratch workspace for APK reverse engineering. It may contain APKs, decoded source, device logs, and other sensitive artifacts. Do not commit its contents or put secrets, account data, or tokens in notes or logs.
Layout
analysis/
<app>/
<version>/
apk/ # Original APK/APKM/XAPK and extracted APK splits
decoded/ # Complete apktool projects, normally decoded/base/
smali/ # Standalone smali extraction, if produced separately
decompiled/ # JADX output
mapping/ # Recovered Kotlin/obfuscation mappings
notes/ # Recon, evidence, and investigation notes
runs/<run-name>/ # Patched APKs, logs, hashes, and test results
Use the app name and release version for directory names. Keep the version code,
ABI, source URL, and SHA-256 in notes/recon.md. Use runs/ for disposable
experiments rather than placing outputs beside source analysis.
Current workspaces include:
analysis/threads/434.0.0.41.74/analysis/threads/445/runs/legacy-445-test/analysis/zalo/26.08.01/
decoded/base/ is a complete decoded APK project; its smali* directories are
not a separate top-level workspace. Keep split APK inputs together in apk/.
Workflow
From the repository root:
python3 scripts/apk_recon.py analysis/<app>/<version>/apk/<input>.apkm
python3 scripts/extract_smali.py analysis/<app>/<version>/apk/<input>.apkm analysis/<app>/<version>/smali
python3 scripts/hunt_signals.py analysis/<app>/<version>/decompiled
Record verified findings in notes/<topic>.md, including the exact smali path,
method signature, ordered instructions, and fingerprint strategy. See
reverse-engineering.md for the full recon-to-validation
workflow and validation.md for device evidence requirements.
Cleanup
Normal cleanup keeps analysis/ intact. To preview deletion of the entire
workspace, including notes and evidence, run:
python3 scripts/clean_analysis.py --analysis --dry-run
Remove it only when all needed evidence has been preserved elsewhere:
python3 scripts/clean_analysis.py --analysis
The cleanup command deletes the whole directory; it does not selectively preserve
notes/ or runs/.