{"adoption": {"forks": 650, "observed_at": "2026-08-28T04:08:11.894124+00:00", "stars": 3623}, "canonical_url": "https://ross.abutalabs.com/products/android-hidden-api", "card": {"archived": false, "artifact_type": "library", "description": "A library that provides access to Android hidden APIs and internal resources.", "domain": ["android-tools", "developer-tools", "mobile-development"], "enriched": true, "function": ["sdk", "developer-tools", "cli"], "health_score": 86, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["anggrayudi/android-hidden-api"], "name": "anggrayudi/android-hidden-api", "platform": ["cli", "jvm", "windows"], "pushed_at": "2026-07-13T14:20:42+00:00", "repo": "anggrayudi/android-hidden-api", "stars": 3623, "tags": ["hidden-api", "android-jar", "adb", "dex-tools", "android-sdk", "android", "macos", "linux"], "topics": ["android", "android-framework", "internal-resources", "java", "api"], "urls": [], "use_cases": ["access android hidden apis in my app", "build a custom android.jar with internal resources", "compile against com.android.internal classes", "extract framework jars from an emulator over adb", "use hidden apis that moved to apex mainline modules", "replace android.jar in the sdk platforms directory"], "what_it_is": "A library and tooling project that provides access to Android hidden APIs (com.android.internal and @hide members) via a custom android.jar. It includes a hiddenjar CLI that builds a custom android.jar from a running emulator or device over adb, merging the full boot classpath.", "when_to_avoid": ["you only use public SDK APIs", "you need guaranteed API stability across Android versions", "you cannot run an emulator or connected device for jar generation"], "when_to_choose": ["you need to call @hide or com.android.internal APIs during development", "you want a jar generated for any API level from a live device or emulator", "you need hidden APIs from APEX/mainline modules beyond framework.jar"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/android-hidden-api", "repo": "anggrayudi/android-hidden-api", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "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:08:11.894124+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:11.894124+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:31:56.716309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "475037386261c07d1f6fd371f463095adef9c38bbc0f7f539af54763c32353d7", "fetched_at": "2026-08-28T04:08:11.894124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/anggrayudi/android-hidden-api"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4004, "days_push": 51, "days_rel": 593, "gap_med": null, "n_releases_24m": 1}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}