{"adoption": {"forks": 186, "observed_at": "2026-08-28T04:05:57.909080+00:00", "stars": 1947}, "canonical_url": "https://ross.abutalabs.com/products/movecertificate", "card": {"archived": false, "artifact_type": "plugin", "description": "支持Android7-16移动证书，兼容magiskv20.4+/kernelsu/APatch, Support Android7-16, compatible with magiskv20.4+/kernelsu/APatch", "domain": ["android-tools", "security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["security", "developer-tools", "cli"], "health_score": 99, "homepage": "https://github.com/ys1231/MoveCertificate", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ys1231/MoveCertificate"], "name": "ys1231/MoveCertificate", "platform": ["cli"], "pushed_at": "2026-08-18T02:07:15+00:00", "repo": "ys1231/MoveCertificate", "stars": 1947, "tags": ["magisk-module", "kernelsu", "apatch", "user-certificates", "system-ca-store", "https-interception", "root", "android-7-16", "certificate-management", "web-ui", "android"], "topics": ["android14", "movecert", "movecertificate", "module"], "urls": [], "use_cases": ["install burp suite certificate as system CA on Android 14+", "trust custom CA certificates for HTTPS traffic interception on rooted Android", "move user certificates to system store without manual openssl conversion", "set up Android app pentesting with proxy certificates", "manage and delete installed system certificates via a web page", "capture HTTPS traffic from apps that ignore user certificates"], "what_it_is": "A Magisk/KernelSU/APatch root module that moves user-installed certificates into Android's system CA store, supporting Android 7 through 16. It includes a companion web interface for listing, inspecting, and deleting installed certificates.", "when_to_avoid": ["your device is not rooted or lacks a root manager module system", "you build your own Android ROM and can simply bake certificates into the image", "you only need to trust a CA in the browser rather than system-wide"], "when_to_choose": ["you have a rooted Android device with Magisk, KernelSU, or APatch and need apps to trust your proxy CA", "you want to avoid manually hashing and converting certificates with openssl", "you are doing mobile security testing or traffic analysis on Android 7-16"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/movecertificate", "repo": "ys1231/MoveCertificate", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "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:57.909080+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.909080+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:07:10.803465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7ae48e6a1fa1413bab8e25d8fc938ad26c5bcb1a5ffb3d4515244e192df21f99", "fetched_at": "2026-08-28T04:05:57.909080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}, {"content_hash": "86b8c55d23513c7c5e63368823a991fc7034a2828a1a0843db058917d07c60b1", "fetched_at": "2026-08-29T10:47:04.728144+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/ys1231/MoveCertificate"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "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": 1424, "days_push": 16, "days_rel": 16, "gap_med": 30, "n_releases_24m": 10}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}