Whole-branch review follow-ups: append game rules/formulas to the build-spec
Game-variant §3 bullet for parity with spec §4.3; chmod extract-logic.py
0755→0644 to match sibling python scripts (all run via python3, never exec'd).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- detect-unity.sh: handle XAPK bundles by extracting nested *.apk entries
to a mktemp dir and merging their listings before grepping; /dev/stdin
pipe approach is unreliable on macOS (unzip central-dir seek fails)
- tests/test-detect-unity.sh: add xapk il2cpp fixture — outer xapk wraps
a Unity base.apk; asserts classification returns il2cpp
- SKILL.md mono branch: replace hardcoded $WORK/output/Managed/ path (jadx
never creates it) with correct extract-from-APK step into $WORK/managed/;
mirrors the il2cpp branch wording and adds XAPK note
- SKILL.md il2cpp+mono branches: add game-assets/manifest.json inventory
step after unity-assets.sh so re-digest-contract.md claim is satisfied
- extract-design.py: remove unused imports sys and re
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the hand-rolled two-step APKCombo curl/grep flow with apkeep
(default source apk-pure): no auth, no JavaScript, handles XAPK split
bundling and retries itself, and the per-mirror HTML parsing is no longer
ours to maintain. The script still prints a stable app.apk/app.xapk path.
- download-apk.sh: invoke apkeep, rename artifact to app.<ext>, clear error
when the binary is missing; CLONE_APP_APKEEP (test stub) and
CLONE_APP_APKEEP_SOURCE (mirror override) env hooks
- test-download-apk.sh: rewritten against an apkeep stub (xapk/apk/fail/
missing-binary cases)
- SKILL.md Phase 1: prose updated for apkeep install + source override
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The APKPure direct endpoint (d.apkpure.com/b/APK/<pkg>) now returns an HTTP
403 Cloudflare bot challenge for every package, so downloads always failed —
which also blocked the entire reverse-engineering chain downstream (it never
ran because Phase 1 produced no APK).
- download-apk.sh: fetch the APKCombo download page with a browser UA, extract
the embedded /r2?u=<signed-url> link, and download that. No JS needed; the
URL slug is ignored so a literal 'app' works for any package. Verified
end-to-end against com.wonder (Elevate) -> 126MB xapk -> RE fingerprint.
- test-download-apk.sh: model the two-step flow and the page-without-link case.
- resolve-re-scripts.sh: warn (stderr) when bash < 4, since the upstream RE
scripts use ${VAR,,} and fail with 'bad substitution' on macOS bash 3.2.
- SKILL.md / README.md / CLAUDE.md: document the APKCombo source and bash 4+ req.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>