{"adoption": {"forks": 302, "observed_at": "2026-08-28T04:04:52.558281+00:00", "stars": 1491}, "canonical_url": "https://ross.abutalabs.com/products/antifakerandroidchecker", "card": {"archived": false, "artifact_type": "library", "description": "设备指纹 获取真实的IMEI AndroidId 序列号 MAC地址等，Android模拟器检测，检测Android模拟器 ，作为可信DeviceID，应对防刷需求等                  Android设备指纹  How to detect Android emulator ", "domain": ["android-tools", "security", "mobile-development"], "enriched": true, "function": ["security", "sdk", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["happylishang/AntiFakerAndroidChecker"], "name": "happylishang/AntiFakerAndroidChecker", "platform": ["jvm"], "pushed_at": "2023-12-13T02:30:58+00:00", "repo": "happylishang/AntiFakerAndroidChecker", "stars": 1491, "tags": ["device-fingerprinting", "emulator-detection", "anti-fraud", "android", "imei", "anti-cheat"], "topics": [], "urls": [], "use_cases": ["detect android emulator in my app", "get real device imei and android id", "device fingerprint for anti-fraud checks", "prevent fake device spoofing in android app", "block emulator users from signing up", "get trusted device id on android"], "what_it_is": "An Android library that detects whether the app is running on an emulator and retrieves relatively authentic device identifiers (IMEI, AndroidId, serial number, MAC address) for device fingerprinting. It uses native and hidden-API techniques to resist hooking frameworks like Xposed.", "when_to_avoid": ["your app targets Android 10+ and you lack system privileges - IMEI, serial, and MAC are restricted", "you need cross-platform (iOS/web) device fingerprinting", "you expect frequent updates - the project is in maintenance mode"], "when_to_choose": ["you need emulator detection to fight bot or fake-account abuse on Android", "you need a device fingerprint as a trusted DeviceID for risk control", "you want identifier retrieval that resists Xposed hooking via native code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/antifakerandroidchecker", "repo": "happylishang/AntiFakerAndroidChecker", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "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:04:52.558281+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:52.558281+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:33:34.394841+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c16d004e30dc4d3680ac11982608a4eb3990f483d72093108b63b589a12a2edc", "fetched_at": "2026-08-28T04:04:52.558281+00:00", "kind": "readme", "missing": false, "url": "https://github.com/happylishang/AntiFakerAndroidChecker"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3317, "days_push": 995, "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}}