Commit Graph

22 Commits

Author SHA1 Message Date
fatih.bulut 4104f0ccac feat(clone-app): extract-logic.py — in-app logic signals inventory 2026-06-25 23:47:00 +03:00
fatih.bulut f7da7007fc fix(clone-app): Unity XAPK detection, mono DLL path, game-assets manifest
- 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>
2026-06-25 02:30:37 +03:00
fatih.bulut b4072218fd test(clone-app): smoke coverage for design + Unity scripts and rubrics 2026-06-25 02:23:20 +03:00
fatih.bulut 257d07c6d0 feat(clone-app): wire design capture, Unity branch, Phase 8 build spec into SKILL 2026-06-25 02:20:12 +03:00
fatih.bulut 5f7b29b6b9 docs(clone-app): design-capture, unity-re, build-spec rubrics + contract/report updates 2026-06-25 02:15:02 +03:00
fatih.bulut 3c9bb564ce feat(clone-app): Unity tool wrappers (Il2CppInspectorRedux, AssetRipper) 2026-06-25 02:11:55 +03:00
fatih.bulut aad064d220 feat(clone-app): scrape screenshots, feature graphic, description from Play 2026-06-25 02:09:33 +03:00
fatih.bulut e3a29974f4 feat(clone-app): detect-unity.sh — classify il2cpp/mono/none APKs 2026-06-25 02:07:10 +03:00
fatih.bulut 014c07c36e feat(clone-app): extract-design.py — design tokens from decompiled res/ 2026-06-25 02:04:03 +03:00
fatih.bulut 0864551bde feat(clone-app): enhance HTTP request handling and update test cases for Play Store scraping 2026-06-21 20:12:31 +03:00
fatih.bulut b34632ef3b feat(clone-app): download APKs via apkeep instead of APKCombo scraping
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>
2026-06-21 19:19:54 +03:00
fatih.bulut c8e5bb08a4 test(clone-app): register re-digest-contract in smoke structure check 2026-06-21 17:24:03 +03:00
fatih.bulut 567b512e32 feat(clone-app): run RE via isolated subagent with script fallback + payloads 2026-06-21 17:19:29 +03:00
fatih.bulut b6eca91d1d test(clone-app): add RE digest contract, fixtures, structural test 2026-06-21 17:12:58 +03:00
fatih.bulut b1135b82a2 fix(clone-app): switch APK source to APKCombo and guard bash version
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>
2026-06-21 04:16:25 +03:00
fatih.bulut 919a1fb6af test(clone-app): add structural smoke test 2026-06-21 02:19:07 +03:00
fatih.bulut 10eb027efa test(clone-app): add aggregate test runner 2026-06-21 02:10:40 +03:00
fatih.bulut 87acf85d6f feat(clone-app): add check-appstore.py iTunes search with tests 2026-06-21 02:09:02 +03:00
fatih.bulut 4b010a665e feat(clone-app): add scrape-play-store.py with ld+json parsing and tests 2026-06-21 02:07:14 +03:00
fatih.bulut 052f0e5cad feat(clone-app): add download-apk.sh with retries and xapk/apk detection 2026-06-21 02:05:04 +03:00
fatih.bulut d2d74d02d3 feat(clone-app): add resolve-re-scripts.sh sibling-plugin locator with tests 2026-06-21 02:02:05 +03:00
fatih.bulut bc3066a890 feat(clone-app): add extract-package.sh URL parser with tests 2026-06-21 02:00:26 +03:00