{"adoption": {"forks": 183, "observed_at": "2026-08-28T04:05:24.074977+00:00", "stars": 1698}, "canonical_url": "https://ross.abutalabs.com/products/satellajailed", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Jailed in-app purchase cracker (iOS 12-16)", "domain": ["security", "reverse-engineering", "apple-ecosystem", "mobile-development"], "enriched": true, "function": ["reverse-engineering", "security"], "health_score": 20, "homepage": null, "language": "Swift", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["Paisseon/SatellaJailed"], "name": "Paisseon/SatellaJailed", "platform": [], "pushed_at": "2023-10-21T11:41:35+00:00", "repo": "Paisseon/SatellaJailed", "stars": 1698, "tags": ["in-app-purchase", "ipa-patching", "dylib-injection", "storekit", "sideloading", "cracking", "jailbreak-alternative", "trollstore", "ios-tweak", "ios", "macos", "linux", "mobile", "swift"], "topics": [], "urls": [], "use_cases": ["get free in-app purchases on iPhone without jailbreak", "crack IAP on a jailed iOS 12-16 device", "patch an IPA to bypass StoreKit purchase prompts", "inject a dylib into an app to unlock premium features", "sideload a modified app with purchases unlocked", "study how iOS in-app purchase flows can be hooked for educational purposes"], "what_it_is": "Satella Jailed is an in-app purchase cracker for non-jailbroken ('jailed') iOS devices running iOS 12–16, distributed as an injectable dylib that hooks an app's purchase flow to unlock paid content without payment. It ships with shell scripts and workflows for patching IPA files and re-signing them via sideloading tools such as Azula or ESign.", "when_to_avoid": ["You want a legitimate, sanctioned way to obtain premium features — this circumvents payments and violates app store terms and developer revenue", "The target app validates purchases server-side or is otherwise incompatible with the hooks, which is common", "You're on iOS 17+ or prefer a jailbroken setup — the project targets jailed iOS 12–16 devices only", "You're unwilling to accept the legal and ethical risks of payment circumvention"], "when_to_choose": ["You have a non-jailbroken iPhone on iOS 12–16 and want to unlock in-app purchases by sideloading a patched IPA", "You can run a patch script on macOS/Linux or use on-device signing tools like Azula or ESign", "You're researching StoreKit purchase-flow weaknesses on a device you own for educational purposes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/satellajailed", "repo": "Paisseon/SatellaJailed", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:24.074977+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:49.029315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4fa26abd4f86196a34181e4b1393b5fe3a96ceed05ce869ba7cbd9abd355ed14", "fetched_at": "2026-08-28T04:05:24.074977+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Paisseon/SatellaJailed"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1645, "days_push": 1047, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}