Rethink is an Android application that combines DNS filtering, a firewall, and a VPN client into a single tool for network control and privacy.
The tool addresses the need for granular control over network traffic and DNS resolution on Android devices. It works by intercepting DNS queries and routing them through encrypted protocols like DNS-over-HTTPS, DNS-over-TLS, or DNSCrypt, while simultaneously offering firewall capabilities that block applications based on conditions such as screen state, connection type, or app category. The VPN mode supports multiple WireGuard upstreams in split-tunnel configurations, allowing different applications to route through different tunnels simultaneously, including SOCKS5 and HTTP CONNECT proxies.
Developers and users prioritizing privacy and censorship resistance should consider this tool. It suits projects where fine-grained per-application network control is essential, such as protecting against surveillance, circumventing censorship, or managing bandwidth on metered connections. The firewall mode distinguishes itself by allowing rules based on dynamic conditions like screen-on or screen-off states, app categories from the Play Store, or custom domain and IP denylists. Unlike simpler DNS clients, the tool integrates VPN, DNS, and firewall functionality into one application, reducing the need to run multiple overlapping services.
The project maintains active development with regular updates across multiple distribution channels. The codebase is written in Kotlin and the tool is available through F-Droid, Google Play, and direct GitHub releases, each with published certificate digests for verification. The project provides both stable and alpha release tracks, with nightly builds available through GitHub Actions.