{"adoption": {"forks": 238, "observed_at": "2026-08-28T04:03:40.471634+00:00", "stars": 1123}, "canonical_url": "https://ross.abutalabs.com/products/blackobfuscator", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Black Obfuscator is an obfuscator for Android APK DexFile, it can help developer to protect source code by control flow flattening, and make it difficult to analyze the actual program control flow.", "domain": ["security", "android-tools", "reverse-engineering", "mobile-development"], "enriched": true, "function": ["security", "reverse-engineering", "cli", "developer-tools"], "health_score": 35, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["CodingGay/BlackObfuscator"], "name": "CodingGay/BlackObfuscator", "platform": ["jvm", "cli"], "pushed_at": "2025-05-03T04:02:48+00:00", "repo": "CodingGay/BlackObfuscator", "stars": 1123, "tags": ["obfuscator", "dex", "control-flow-flattening", "apk-protection", "android-studio-plugin", "android"], "topics": ["android", "dex", "obfuscation", "obfuscator", "java", "dex2jar", "control-flow"], "urls": [], "use_cases": ["obfuscate android apk dex files", "protect android app source code from reverse engineering", "apply control flow flattening to dex bytecode", "make decompiled android code hard to read", "integrate dex obfuscation into android studio build", "obfuscate only specific packages of an android app"], "what_it_is": "BlackObfuscator is a Java-based obfuscator for Android DEX files that applies control flow flattening to make decompiled code hard to analyze. It is built on dex2jar and includes an Android Studio plugin and GUI tool for automated obfuscation during packaging.", "when_to_avoid": ["you only need identifier renaming or shrinking (use R8/ProGuard)", "you need runtime protections like anti-tampering or encryption", "your project is not Android/DEX based"], "when_to_choose": ["you need DEX-level control flow obfuscation beyond ProGuard/R8 renaming", "you want to protect business logic in an Android APK from static analysis", "you need whitelist/blacklist rules to obfuscate only your own code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/blackobfuscator", "repo": "CodingGay/BlackObfuscator", "role": "main", "score": 31}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "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:40.471634+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:40.471634+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:39:52.506965+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b76ec8e24f63bffe4b379ad69c59035a458bc7cceac251f3e43d088dc894af07", "fetched_at": "2026-08-28T04:03:40.471634+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CodingGay/BlackObfuscator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 19, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1724, "days_push": 487, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 31, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}