{"adoption": {"forks": 428, "observed_at": "2026-08-28T04:07:41.046814+00:00", "stars": 3057}, "canonical_url": "https://ross.abutalabs.com/products/xpatch", "card": {"archived": false, "artifact_type": "cli-tool", "description": "This is a tool to repackage apk file, then the apk can load any xposed modules installed in the device. It is another way to hook an app without root device.", "domain": ["android-tools", "security", "reverse-engineering"], "enriched": true, "function": ["security", "reverse-engineering", "developer-tools"], "health_score": 65, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["WindySha/Xpatch"], "name": "WindySha/Xpatch", "platform": ["cli", "jvm"], "pushed_at": "2026-01-04T21:04:50+00:00", "repo": "WindySha/Xpatch", "stars": 3057, "tags": ["xposed", "apk-repackaging", "hooking", "rootless", "java", "android"], "topics": ["xpatch", "xposed", "hook", "whale", "unroot"], "urls": [], "use_cases": ["hook an android app without root", "repackage an apk to load xposed modules", "patch an apk for xposed module support", "modify app behavior via xposed on unrooted devices", "enable xposed plugins for a specific app", "analyze app behavior by injecting hooks"], "what_it_is": "Xpatch is a Java CLI tool that repackages and re-signs Android APK files so the resulting APK can load installed Xposed modules. It enables hooking an app's Java code without rooting the device.", "when_to_avoid": ["you need to hook native code only", "you cannot uninstall the originally installed app due to signature mismatch", "you need a maintained root-based xposed framework instead"], "when_to_choose": ["you want to use xposed modules on a non-rooted device", "you need to hook a single app's java code for testing or research", "you prefer a one-command jar tool for apk repackaging"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xpatch", "repo": "WindySha/Xpatch", "role": "main", "score": 50}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "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:07:41.046814+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:41.046814+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:28:48.714870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37371178d21034045d1d7096c687a4664a50c87aea35db7792d3cf201ea0f22c", "fetched_at": "2026-08-28T04:07:41.046814+00:00", "kind": "readme", "missing": false, "url": "https://github.com/WindySha/Xpatch"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 60, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2740, "days_push": 241, "days_rel": 667, "gap_med": null, "n_releases_24m": 1}, "score": 50, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}