android-reverse-engineering.../plugins/clone-app/tests
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
..
fixtures feat(clone-app): add check-appstore.py iTunes search with tests 2026-06-21 02:09:02 +03:00
run-all.sh test(clone-app): add aggregate test runner 2026-06-21 02:10:40 +03:00
smoke-structure.sh test(clone-app): add structural smoke test 2026-06-21 02:19:07 +03:00
test-check-appstore.py feat(clone-app): add check-appstore.py iTunes search with tests 2026-06-21 02:09:02 +03:00
test-download-apk.sh fix(clone-app): switch APK source to APKCombo and guard bash version 2026-06-21 04:16:25 +03:00
test-extract-package.sh feat(clone-app): add extract-package.sh URL parser with tests 2026-06-21 02:00:26 +03:00
test-resolve-re-scripts.sh feat(clone-app): add resolve-re-scripts.sh sibling-plugin locator with tests 2026-06-21 02:02:05 +03:00
test-scrape-play-store.py feat(clone-app): add scrape-play-store.py with ld+json parsing and tests 2026-06-21 02:07:14 +03:00