{"adoption": {"forks": 762, "observed_at": "2026-08-28T04:10:07.849078+00:00", "stars": 7862}, "canonical_url": "https://ross.abutalabs.com/products/apatch", "card": {"archived": false, "artifact_type": "application", "description": "The patching of Android kernel and Android system", "domain": ["android-tools", "operating-systems", "security"], "enriched": true, "function": ["security", "developer-tools"], "health_score": 100, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["bmax121/APatch", "bmax121/KernelPatch"], "name": "APatch", "platform": [], "pushed_at": "2026-08-25T19:17:19+00:00", "repo": "bmax121/APatch", "stars": 7862, "tags": ["root", "kernel-patching", "magisk-modules", "inline-hook", "syscall-hook", "superuser", "arm64", "android", "linux"], "topics": ["android", "inline-hook", "root", "kernel", "patch", "magisk", "magisk-module"], "urls": [], "use_cases": ["root my android device without unlocking boot image modifications", "run magisk-style modules on my android phone", "hook syscalls in the android kernel", "get kernel-level root access on arm64 android", "hide root from apps on android", "patch android kernel to gain superuser"], "what_it_is": "APatch is a kernel-based root solution for Android devices that patches the Android kernel and system, relying on KernelPatch. It supports Magisk-like system modules (APM) and kernel modules (KPM) that can inject code into the kernel via inline-hook and syscall-table-hook.", "when_to_avoid": ["your device is not ARM64 or runs an unsupported kernel version", "you only need userspace root without kernel patching", "you cannot risk bootloader or kernel modifications on your device"], "when_to_choose": ["you need kernel-level root on an ARM64 Android device with kernel 3.18-6.12", "you want Magisk-like module support plus deeper kernel code injection", "KernelSU or Magisk is not suitable for your device or threat model"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/bmax121/APatch", "repo": "bmax121/APatch", "role": "main", "score": 86}, {"path": "/repos/bmax121/KernelPatch", "repo": "bmax121/KernelPatch", "role": "backend", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "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:10:07.849078+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:07.849078+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:33:46.261209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "31eb1fd705fcdc9c8aac27631214162408b789238d641367d5441c395819b021", "fetched_at": "2026-08-28T04:10:07.849078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bmax121/APatch"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 79, "rhythm": 72}, "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": 1108, "days_push": 8, "days_rel": 26, "gap_med": 135.5, "n_releases_24m": 5}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}