Files
2026-07-09 07:40:42 +02:00

20 lines
1017 B
Bash

#!/usr/bin/env bash
# analyze_dex.sh - regenerate DEX-side facts used in analysis/DEX_ANALYSIS.md.
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJ="$(cd "$HERE/../.." && pwd)"
SM="$PROJ/original_reference/apktool_output/smali"
OUT="$PROJ/analysis/rawdata"; mkdir -p "$OUT"
[ -d "$SM" ] || { echo "Run extract_apk.sh first"; exit 1; }
echo "[*] Class counts by package prefix:"
find "$SM" -name '*.smali' | sed -E "s#$SM/##" | grep -oE '^[a-z0-9]+/[a-z0-9]+/[a-z0-9]+' | sort | uniq -c | sort -rn | tee "$OUT/dex_packages.txt" | head -20
echo "[*] System.loadLibrary calls:"
grep -rhoE 'const-string(/jumbo)? [pv][0-9]+, "[a-z]+"' "$SM"/com/supercell 2>/dev/null | sort -u
echo "[*] Native method declarations (com.supercell):"
grep -rhE '\.method.* native ' "$SM"/com/supercell 2>/dev/null \
| sed -E 's/^\s*\.method (public |private |protected )?(static )?native //' | sort -u | tee "$OUT/java_native_decls.txt" | wc -l
echo "[+] Wrote $OUT/{dex_packages.txt,java_native_decls.txt}"