{"adoption": {"forks": 170, "observed_at": "2026-08-28T04:05:05.214629+00:00", "stars": 1569}, "canonical_url": "https://ross.abutalabs.com/products/piracychecker", "card": {"archived": false, "artifact_type": "library", "description": "An Android library that prevents your app from being pirated / cracked using Google Play Licensing (LVL), APK signature protection and more. API 14+ required.", "domain": ["android-tools", "security", "mobile-development"], "enriched": true, "function": ["security", "sdk"], "health_score": 71, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["javiersantos/PiracyChecker"], "name": "javiersantos/PiracyChecker", "platform": [], "pushed_at": "2026-06-04T21:55:46+00:00", "repo": "javiersantos/PiracyChecker", "stars": 1569, "tags": ["apk-signature-protection", "google-play-licensing", "lvl", "anti-piracy", "tampering-detection", "java", "android"], "topics": ["apk", "signature", "android-library", "attacker", "lvl", "apk-signature-protection", "verify", "gradle"], "urls": [], "use_cases": ["prevent my android app from being pirated", "verify apk signature at runtime", "check google play license in my app", "detect if my app was cracked or modified", "block pirated copies of my android app", "add tampering detection to android app"], "what_it_is": "An Android library that helps prevent app piracy by verifying Google Play Licensing (LVL), APK signatures, and other tampering checks. It targets API 14+ and is integrated via Gradle/JitPack.", "when_to_avoid": ["you need guaranteed protection against skilled reverse engineers (the README itself warns this is not foolproof)", "your app is not distributed via Google Play and you cannot use LVL", "you need server-side license validation or DRM"], "when_to_choose": ["you distribute a paid app on Google Play and want lightweight license verification", "you want simple APK signature and install-source checks without building your own", "you need a drop-in Java/AndroidX library for basic anti-piracy"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/piracychecker", "repo": "javiersantos/PiracyChecker", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "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:05.214629+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:05.214629+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:58:53.114882+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5bd6b55291ff0792cd074e900756eaffccbce403d3b0ad42e1c448174b67c9c5", "fetched_at": "2026-08-28T04:05:05.214629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/javiersantos/PiracyChecker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 8}, "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": 3751, "days_push": 90, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}