{"adoption": {"forks": 452, "observed_at": "2026-08-28T04:06:28.946162+00:00", "stars": 2229}, "canonical_url": "https://ross.abutalabs.com/products/sandhook", "card": {"archived": false, "artifact_type": "library", "description": "Android ART Hook/Native Inline Hook/Single Instruction Hook - support 4.4 - 11.0 32/64 bit - Xposed API Compat", "domain": ["android-tools", "developer-tools", "security", "reverse-engineering"], "enriched": true, "function": ["security", "developer-tools", "plugin-system"], "health_score": 20, "homepage": null, "language": "Java", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["asLody/SandHook"], "name": "asLody/SandHook", "platform": ["jvm", "cpp"], "pushed_at": "2023-01-19T07:04:46+00:00", "repo": "asLody/SandHook", "stars": 2229, "tags": ["art-hook", "inline-hook", "xposed-compat", "aop", "java-hook", "native-hook", "android"], "topics": ["hook", "android", "art", "aop", "java-hook", "xposed", "inline-hook"], "urls": [], "use_cases": ["hook Android app methods at runtime", "run Xposed modules without root Xposed framework", "intercept Android framework or app method calls", "patch app behavior for testing or instrumentation", "inline hook native functions in Android processes"], "what_it_is": "SandHook is an Android ART runtime hooking library supporting Java method hooks and native inline hooks on Android 4.4 through 11.0 for both 32-bit and 64-bit ARM. It provides an annotation-based hook API and an Xposed API compatibility layer, allowing existing Xposed modules to run on top of it.", "when_to_avoid": ["you target Android versions newer than 11", "you need hooks on non-ARM architectures", "you want an actively maintained project with recent updates", "you need iOS or desktop hooking"], "when_to_choose": ["building Android instrumentation or AOP tooling", "porting Xposed modules to a standalone hook engine"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sandhook", "repo": "asLody/SandHook", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "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:06:28.946162+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:28.946162+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:44:40.041706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d1d74668b55666c08fa9d722a3743fe3eb2dc4d5228dfe392a608d5ad99f997b", "fetched_at": "2026-08-28T04:06:28.946162+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asLody/SandHook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2790, "days_push": 1322, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}