opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

BlockAds lets you import WireGuard profiles and combine them with local DNS-base...
GitHub RepoImpressions72

Project Description

View on GitHub

BlockAds: System-Wide Ad Blocking on Android Without Root

You've probably tried to block ads on Android before. Maybe you installed a hosts-file-based blocker, only to find it stopped working after an OS update. Or you tried a VPN-based solution, but it conflicted with your actual VPN. Or you gave up and just lived with the ads. BlockAds is an open-source Android app that takes a different approach: it uses a local VPN to filter DNS traffic, blocking ads, trackers, and malware system-wide with no root required and no data leaving your device.

Built with Jetpack Compose and Material 3, it's a modern, privacy-respecting ad blocker that gives you granular control over what gets blocked and how.

What It Does

BlockAds works by creating a local VPN on your Android device that intercepts DNS queries and filters them against multiple blocklists before they reach the internet. Since it runs entirely on your device, there's no external server processing your traffic, and no data collection.

The app offers two routing modes. The default mode uses the Android VPN API for system-wide filtering without root. If your device is rooted, you can switch to Root Proxy Mode, which uses iptables to handle traffic at a lower level. This dual-mode approach means it works on practically any Android device, regardless of your root status.

Beyond basic DNS blocking, BlockAds includes HTTPS filtering with a userspace TCP/IP stack, which enables per-app MITM inspection, cosmetic CSS filtering, and JavaScript scriptlet injection. It also supports importing WireGuard profiles, so you can combine ad blocking with your existing VPN configuration.

The app ships with multiple built-in filter lists, including StevenBlack, AdGuard DNS, and EasyList, and it automatically enables region-appropriate filters based on your device language. A curated passthrough list of 284 domains keeps banking, payment, and government apps working without manual intervention.

Why It's Cool

The feature list here is unusually comprehensive for a free, open-source Android app. A few things stand out:

  • WireGuard profile import is a clever addition. Most VPN-based ad blockers prevent you from using a real VPN simultaneously. BlockAds lets you import your WireGuard config and layer ad blocking on top, which solves a common pain point for privacy-conscious users.

  • The 284-domain passthrough list shows real-world thinking. Ad blockers that break banking apps are useless. Having a curated, pre-configured allowlist for critical services means you don't have to debug why your payment app won't connect.

  • Per-app filtering gives you fine-grained control. You can bypass the VPN for specific apps that don't play well with ad blocking, or block certain apps entirely. This is useful for troubleshooting without disabling the whole system.

  • Real-time DNS query logs with search and filtering make it easy to see exactly what's being blocked. If something breaks, you can check the logs, find the false positive, and add a custom allow rule.

  • Auto-update filter lists on a schedule (6, 12, 24, or 48 hours) means you don't have to manually refresh blocklists. The app stays current with new tracking domains and malware sites.

  • Privacy-first crash reporting is opt-in, and local logs can be exported manually. The app makes no network requests for telemetry or analytics. Everything stays on your device.

  • HTTPS filtering with a userspace TCP/IP stack is technically interesting. Most Android ad blockers rely on the system VPN API, which has limitations. By implementing its own TCP/IP stack in userspace, BlockAds can do deeper packet inspection and content modification, including CSS and JavaScript injection for cosmetic ad removal.

How to Try It

You can download BlockAds from F-Droid, IzzyOnDroid, or directly from the GitHub releases page. The app is free and open source, with no ads or in-app purchases.

To get started:

  1. Download the APK from the GitHub releases page or install via F-Droid
  2. Open the app and follow the onboarding flow, which guides you through granting the necessary VPN permissions
  3. The app will automatically select filter lists based on your device language
  4. Tap the start button to begin blocking

If you want to customize things, you can:

  • Switch between root proxy mode and VPN mode in settings
  • Import a WireGuard profile if you need a real VPN connection
  • Add custom block or allow rules
  • Configure per-app filtering to exclude specific apps
  • Set up DNS-over-HTTPS with your preferred provider

The community is active on Reddit at r/BlockAds and on Telegram at t.me/blockads_android. If you find the app useful, the project accepts sponsorships through GitHub Sponsors.

Final Thoughts

BlockAds is one of those rare Android apps that does one thing well and then keeps going. It's not just an ad blocker, it's a comprehensive network filtering tool that handles DNS blocking, HTTPS filtering, VPN passthrough, and per-app control in a single, well-designed package. If you're tired of ads and trackers on your Android device and want something that works without root, without sending your data to a third-party server, and without breaking your banking apps, this is worth a serious look.

Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: blockads-androidLast updated: July 3, 2026 at 10:09 AM