{"adoption": {"forks": 496, "observed_at": "2026-08-28T04:08:05.402269+00:00", "stars": 3455}, "canonical_url": "https://ross.abutalabs.com/products/afwall", "card": {"archived": false, "artifact_type": "application", "description": "AFWall+ (Android Firewall +) - iptables based firewall for Android ", "domain": ["security", "privacy", "android-tools", "networking"], "enriched": true, "function": ["security", "networking", "privacy"], "health_score": 98, "homepage": null, "language": "Java", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["ukanth/afwall"], "name": "ukanth/afwall", "platform": [], "pushed_at": "2026-08-06T12:44:47+00:00", "repo": "ukanth/afwall", "stars": 3455, "tags": ["firewall", "iptables", "root-required", "network-control", "open-source", "android"], "topics": ["iptables", "firewall", "android", "android-firewall", "block", "afwall", "crowdin"], "urls": [], "use_cases": ["block specific apps from accessing the internet on android", "prevent background data usage by apps", "stop apps from leaking data or tracking me", "control which apps can use wifi vs mobile data", "reduce battery and data usage by restricting network access", "log and monitor which apps are making network connections"], "what_it_is": "AFWall+ is an open-source firewall application for rooted Android devices built on Linux iptables. It provides per-app granular control over network access, allowing users to block internet connectivity for individual applications.", "when_to_avoid": ["your device is not rooted", "you prefer a no-root VPN-based firewall", "you need an iOS or desktop firewall solution"], "when_to_choose": ["you have a rooted Android device and want per-app firewall control", "you need iptables-level network filtering rather than VPN-based solutions", "you want an open-source, privacy-focused firewall without telemetry"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/afwall", "repo": "ukanth/afwall", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "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:08:05.402269+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.402269+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:37:31.076524+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "033db691609c36e65194e1062ce6133ff5991cbe1f6638e4d801f0a9d926cbfe", "fetched_at": "2026-08-28T04:08:05.402269+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ukanth/afwall"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 84}, "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": 5058, "days_push": 27, "days_rel": 27, "gap_med": 81, "n_releases_24m": 6}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}