AdAway is an open source ad blocker for Android using the hosts file and local VPN. Now with Android TV support — block ads across your phone, tablet, and TV from a single app.
For more information visit https://adaway.org
For the original project README, see README_OLD.md.
AdAway includes a dedicated interface optimized for Android TV and other large-screen devices controlled via remote.
- Automatic detection — the app detects TV mode on launch and switches to the TV-optimized UI
- D-pad navigation — full remote control support with proper focus management
- Leanback launcher integration — appears in the Android TV home screen with a banner icon
- Core controls available on TV:
- Toggle ad-blocking on/off
- Update hosts lists
- Sync all sources
- DNS request log viewer with recording controls
- Add hosts to allowed/blocked lists from logs
AdAway uses VPN mode on TV devices. On first launch, it will prompt for VPN permission. Once granted, ad-blocking can be toggled directly from the TV home screen. The DNS log viewer lets you monitor and manage requests using your remote.
Note: The TV interface provides the core ad-blocking controls. Advanced features like source management, preferences, and backup/restore are available via the phone/tablet interface.
- Two ad-blocking methods:
- Root mode — modifies the system
/etc/hostsfile (requires root access) - VPN mode — uses a local VPN to intercept DNS queries (no root required)
- Root mode — modifies the system
- Multiple hosts sources with support for GitHub, GitLab, and Gist providers
- Three list types: Blocked, Allowed (whitelist), and Redirected hosts
- DNS request logging to monitor and manage blocked/allowed domains
- DNS over HTTPS (DoH) support
- Quick Settings tile for fast ad-blocking toggle
- App exclusion — select apps to bypass VPN filtering
- Backup and restore of configuration and lists
- Automatic source updates with ETag/Last-Modified support
- Built-in updater with changelog display
- Android TV support with a dedicated remote-friendly interface
- 70+ languages supported
There are two kinds of release:
- Preview builds: on the bleeding edge of development — for testers or adventurous users
- Stable builds: ready for every day usage — for end users
Requirements: Android 8 Oreo or above (phone, tablet, or Android TV)
For users with bugs, there may be preview builds available from the XDA development thread and AdAway official website. It is recommended to try those builds to see if your issue is resolved before creating an issue. The preview builds may contain bug fixes or new features for new Android versions.
Requirements: Android 8 Oreo or above (phone, tablet, or Android TV)
After preview builds have been tested by the more technical or responsive community within the forums, we will then post the stable build to F-Droid.
For devices older than Android 8 Oreo, use version 4 of AdAway.
- Install AdAway on your Android TV device via sideloading or your preferred method
- Launch from the Leanback launcher — AdAway appears in your TV home screen app list
- Grant VPN permission when prompted on first launch
- Toggle ad-blocking using the main button on the TV interface
- Update sources to download the latest hosts lists
- Monitor DNS requests via the DNS log viewer to fine-tune your setup
See the Wiki, in particular the page HostsSources for an assorted list of sources you can use in AdAway. Add the ones you like to the AdAway "Hosts sources" section.
You can post Issues here or obtain more detailed community support via the XDA developer thread.
You want to be involved in the project? Welcome onboard! Check the contributing guide to learn how to report bugs, suggest features and make your first code contribution 👍
If you are looking for translating the application in your language, the translating guide is for you.
AdAway is a multi-module Gradle project built with modern Android development practices.
| Module | Description |
|---|---|
app |
Main application — UI, business logic, Room database, VPN/Root services |
tcpdump |
NDK native library for packet capture |
webserver |
NDK native library for local web server (with OpenSSL) |
sentrystub |
Sentry error reporting stub |
- Architecture: MVVM with ViewModels and LiveData
- Database: Room ORM with migration support
- Networking: OkHttp with DNS-over-HTTPS support
- Root access: libsu
- DNS: dnsjava, Pcap4j
- UI: Material Design, AndroidX, ViewBinding
- Build: Gradle with version catalog, NDK for native modules
- CI/CD: GitHub Actions with SonarCloud analysis
- Min SDK: 26 (Android 8 Oreo) | Target SDK: 33 | Compile SDK: 34
AdAway is actively developed by:
- Bruce Bujon (@PerfectSlayer) - Developer PayPal | GitHub Sponsorship
- Daniel Mönch (@Vankog) - Translations
- Jawz101 (@jawz101) - Hosts list
- Anxhelo Lushka (@AnXh3L0) - Web site
We do not forget the past maintainers:
- Dāvis Mošenkovs (@DavisNT) - Developer Paypal
- @0-kaladin - Developer and XDA OP
- Sanjay Govind (@sanjay900) - Developer
And we thank a lot to the original author:
- Dominik Schürmann (@dschuermann) - Original developer
Paypal | Flattr | BTC:
173kZxbkKuvnF5fa5b7t21kqU5XfEvvwTs
AdAway requires the following permissions:
INTERNETto download hosts files and application updates. It can send bug reports and telemetry if the user wants to (opt-in only)ACCESS_NETWORK_STATEto restart VPN on network connection changeRECEIVE_BOOT_COMPLETEDto start the VPN on bootFOREGROUND_SERVICEto run the VPN service in foregroundPOST_NOTIFICATIONSto post notifications about hosts source update, application update and VPN controls. All notifications can be enabled or disabled independently.REQUEST_INSTALL_PACKAGESto update the application using the builtin updaterQUERY_ALL_PACKAGESto let the user pick the applications to exclude from VPN
AdAway is licensed under the GPLv3+. The file LICENSE includes the full license text. For more details, check the license notes.










