{"adoption": {"forks": 401, "observed_at": "2026-08-28T04:07:46.537306+00:00", "stars": 3160}, "canonical_url": "https://ross.abutalabs.com/products/vasdolly", "card": {"archived": false, "artifact_type": "plugin", "description": "Android V1 and V2 Signature Channel Package Plugin", "domain": ["mobile-development", "android-tools", "developer-tools"], "enriched": true, "function": ["build-tool", "security", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["Tencent/VasDolly"], "name": "Tencent/VasDolly", "platform": ["jvm", "cli"], "pushed_at": "2023-04-07T11:07:15+00:00", "repo": "Tencent/VasDolly", "stars": 3160, "tags": ["android", "gradle-plugin", "apk-signing", "multi-channel-packaging", "v1-signature", "v2-signature", "v3-signature", "app-distribution"], "topics": ["android", "gradle", "v1", "v2", "vasdolly"], "urls": [], "use_cases": ["generate multiple channel-specific Android APKs from one build", "write channel info into APK V2 signature block", "rebuild channel packages from an existing APK", "read channel metadata at runtime in an Android app", "speed up multi-channel distribution packaging for Chinese app stores"], "what_it_is": "VasDolly is a Gradle plugin and helper library from Tencent for fast multi-channel APK packaging on Android, writing channel metadata into V1, V2, or V3 APK signatures. It auto-detects the APK's signature scheme and generates channel-specific builds via Gradle tasks.", "when_to_avoid": ["you only ship through Google Play and don't need channel packages", "your project doesn't use Gradle or Android's APK signing schemes", "you need actively developed tooling with recent releases"], "when_to_choose": ["you distribute Android apps through many channels and need per-channel APKs quickly", "you want signature-based channel packaging without repackaging the whole APK", "you need both V1 and V2/V3 signature scheme support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vasdolly", "repo": "Tencent/VasDolly", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "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:07:46.537306+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.537306+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:25:15.389885+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c7fa64d2551c19e6fd3bd9c9f387e41fd538cdbb6fc38707dda85858ff145fde", "fetched_at": "2026-08-28T04:07:46.537306+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Tencent/VasDolly"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3513, "days_push": 1244, "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}}