GitHub - pass-with-high-score/blockads-android: Block ads system-wide on Android using local VPN-based DNS filtering. No root needed. No data collection.

3 min read Original article ↗

BlockAds is a free, open-source ad blocker for Android.

It blocks ads, trackers, and malware system-wide using local VPN-based DNS filtering — no root required, no data collection.

Built with Jetpack Compose and Material 3 for a modern, premium experience.

Download

Get it on F-Droid

Get it at IzzyOnDroid


Screenshots


Features

  • System-wide ad blocking via DNS filtering — no root needed
  • Multiple built-in filter lists (StevenBlack, AdGuard DNS, EasyList, and more)
  • Region-aware defaults — auto-enables filters for your language
  • Real-time DNS query logs with search & filtering
  • Security protection — blocks phishing, malware, and malvertising domains
  • Dark / Light / System theme with Material 3 dynamic colors
  • 7 accent color options + Material You dynamic theming
  • Quick Settings tile & home screen widget
  • Custom block/allow rules and whitelisting
  • Per-app filtering (bypass VPN for selected apps)
  • DNS-over-HTTPS (DoH) support with multiple providers
  • Auto-update filter lists on schedule (6h / 12h / 24h / 48h)
  • Export / Import settings backup
  • Auto-reconnect on boot
  • Multi-language support (English, Vietnamese, Japanese, Korean, Chinese, Thai, Spanish)
  • 100% local — all data stays on your device

Community

Join our community:
Reddit Telegram

Sponsor

If you enjoy BlockAds, consider supporting the project! Your sponsorship helps us maintain and improve the app.

Sponsor

Build Instructions

Requirements

Steps

  1. Clone the repository:

    git clone https://github.com/pass-with-high-score/blockads-android.git 
    cd blockads-android 
  2. Initialize gomobile (one-time setup):

    go install golang.org/x/mobile/cmd/gomobile@latest
    export PATH=$PATH:$(go env GOPATH)/bin
    gomobile init
  3. (Optional) Build the Go tunnel AAR/JAR (with Android 15 16KB page size support):

    ./scripts/build_tunnel.sh

    Note: A pre-built version is already included in app/libs/.

  4. Open the project in Android Studio

  5. Sync Gradle and run the app on a device or emulator

  6. Build from command line:

    ./gradlew assembleDebug
    ./gradlew bundleRelease   # requires signing key

How It Works

BlockAds creates a local VPN on your device. DNS queries are routed through it and matched against filter lists using a memory-efficient Trie data structure. Matching queries are blocked locally. All other traffic passes through normally — no data leaves your device.


License

This project is licensed under the GNU General Public License v3.0.
You are free to use, modify, and distribute it under the terms of the license.
See the full LICENSE file for details.


Credits


Contributing

Pull requests and issue reports are welcome.
Help us improve BlockAds!

Help us translate BlockAds

Want to see BlockAds in your language?
Open an issue or submit a PR with your translations.


Star History

Star History Chart