{"adoption": {"forks": 441, "observed_at": "2026-08-28T04:05:28.173360+00:00", "stars": 1726}, "canonical_url": "https://ross.abutalabs.com/products/hotfix", "card": {"archived": true, "artifact_type": "library", "description": "安卓App热补丁动态修复框架", "domain": ["mobile-development", "android-tools", "developer-tools"], "enriched": true, "function": ["developer-tools", "build-tool"], "health_score": 10, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["dodola/HotFix"], "name": "dodola/HotFix", "platform": ["jvm"], "pushed_at": "2017-08-10T11:27:31+00:00", "repo": "dodola/HotFix", "stars": 1726, "tags": ["hotfix", "hot-patch", "classloader", "dex", "android", "deprecated", "javassist", "gradle"], "topics": [], "urls": [], "use_cases": ["fix bugs in a released android app without publishing an update", "dynamically patch a broken method in production", "load a dex jar as an over-the-air hotfix patch", "avoid CLASS_ISPREVERIFIED errors when hot-patching android classes", "inject references to classes in another dex during gradle build"], "what_it_is": "HotFix is an Android hot-patch framework that dynamically fixes bugs in released apps by loading patched dex files through the ClassLoader mechanism. It is based on the QQ Space team's technique and includes the core library, patch generation tooling, and a Gradle task for javassist code injection to avoid pre-verified class errors.", "when_to_avoid": ["starting a new project - the repo is deprecated in favor of RocooFix and modern alternatives like Tinker", "you need Gradle 1.3+ / 2.x build compatibility or automated patch packaging", "you need actively maintained, production-supported hotfix tooling"], "when_to_choose": ["you maintain a legacy Android project on old Gradle versions and need the original QQ-space-style hotfix approach", "you are studying how Android class-loading hot-patching works"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hotfix", "repo": "dodola/HotFix", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "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:28.173360+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.173360+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:32:31.646103+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "db72c45f299e064a8844bfd6c2780c03765a77c608a9ebaf648401e886e54554", "fetched_at": "2026-08-28T04:05:28.173360+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dodola/HotFix"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3956, "days_push": 3310, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}