{"adoption": {"forks": 57, "observed_at": "2026-08-28T04:03:48.038825+00:00", "stars": 1156}, "canonical_url": "https://ross.abutalabs.com/products/appverifier", "card": {"archived": false, "artifact_type": "application", "description": "Verify apps easily.", "domain": ["security", "android-tools", "privacy"], "enriched": true, "function": ["security", "cryptography"], "health_score": 56, "homepage": null, "language": "Kotlin", "license": "ISC", "license_family": "permissive", "maturity": "active", "member_repos": ["soupslurpr/AppVerifier"], "name": "soupslurpr/AppVerifier", "platform": [], "pushed_at": "2025-08-29T11:13:23+00:00", "repo": "soupslurpr/AppVerifier", "stars": 1156, "tags": ["apk-verification", "signing-certificates", "app-integrity", "material-you", "jetpack-compose", "android"], "topics": ["android", "jetpack-compose", "kotlin", "kotlin-android", "material", "material-3", "material-design", "material-design-3", "material-ui", "material-you", "security", "security-tools", "verification"], "urls": [], "use_cases": ["verify that an installed android app is genuine and untampered", "check an apk's signing certificate hash before installing it", "compare app verification info shared by other people", "view the sha-256 hash of an app's signing certificate", "detect repackaged or fake versions of apps"], "what_it_is": "AppVerifier is an Android app that views and verifies app signing certificate hashes to confirm apps are genuine. Users can compare package names and SHA-256 certificate hashes against provided values or an internal database, and share verification info with others.", "when_to_avoid": ["you need automated or command-line apk verification in a ci pipeline", "you need malware scanning rather than signing certificate verification", "you are on a non-android platform"], "when_to_choose": ["you want an easy gui tool on android to verify app signing certificates", "you need to share and compare app verification info with others", "you install apks from outside app stores and want to check authenticity"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/appverifier", "repo": "soupslurpr/AppVerifier", "role": "main", "score": 37}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "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:03:48.038825+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:48.038825+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:32:09.440231+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73c164bcf9189d0473e73b937abd90353f0009e08b9aa9edc7a59ffab7f6c95b", "fetched_at": "2026-08-28T04:03:48.038825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/soupslurpr/AppVerifier"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 39, "longevity": 70, "rhythm": 16}, "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": 980, "days_push": 369, "days_rel": 498, "gap_med": 92.5, "n_releases_24m": 3}, "score": 37, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}