Jak przestałem zmagać się z ustawieniami DNS na Androidzie
Znana sytuacja: postanawiasz skonfigurować osobisty serwer DNS, aby pozbyć się reklam w aplikacjach i przeglądarce. Przechodzisz do ustawień Androida, przekopujesz się przez menu połączeń, szukasz opcji „Prywatny DNS", wprowadzasz adres hosta... I robisz to za każdym razem, gdy musisz sprawdzić, czy jakaś strona lub aplikacja „przestała działać" przez DNS. Na Androidzie to ustawienie jest tak głęboko ukryte, jakby Google celowo chronił przychody z reklam.
Ostatnio natknąłem się na małe narzędzie o nazwie adns autorstwa dewelopera eyalm2000. To narzędzie open-source wykonuje jedną prostą rzecz: umieszcza przełącznik systemowego DNS bezpośrednio na ekranie głównym lub w panelu powiadomień.
Jakie to przynosi korzyści
Problem z większością blokowników reklam na Androidzie polega na tym, że działają one albo jako lokalna usługa VPN, albo jako usługa działająca w tle. Nieuchronnie „zużywa" to baterię, zajmuje miejsce w powiadomieniach, a czasami powoduje konflikty z prawdziwymi klientami VPN.
adns działa inaczej. Nie uruchamia żadnych procesów w tle. To zasadniczo lekki interfejs graficzny dla systemowego ustawienia Prywatnego DNS, które pojawiło się jeszcze w Androidzie 9. Aplikacja po prostu przełącza globalną zmienną systemową.
Dla kogo to jest przydatne:
- Użytkownicy NextDNS (dla nich to praktycznie raj z bezpośrednią integracją)
- Ci, którzy korzystają z AdGuard DNS, Cloudflare lub własnych serwerów Pi-hole/AdGuard Home
- Deweloperzy, którzy muszą szybko przełączać DNS do testowania stron
Kilka kliknięć i czysty internet
Najwygodniejszą rzeczą w aplikacji jest integracja z NextDNS. Jeśli masz konto, możesz zalogować się bezpośrednio w aplikacji, wybrać potrzebny profil i zmieniać jego ustawienia na bieżąco. Jeśli korzystasz z innej usługi, wystarczy podać nazwę hosta (na przykład dns.adguard.com).
Funkcje, które mi się spodobały:
- Kafelek Szybkich Ustawień. Teraz możesz wyłączyć filtrowanie w sekundę bez minimalizowania bieżącej aplikacji.
- Brak zużycia baterii. Aplikacja „śpi" przez 99% czasu i budzi się tylko wtedy, gdy naciśniesz przycisk.
- Projekt Material 3. Wygląda jak natywna część systemu, a nie hack z czasów Androida Gingerbread.
Jak to uruchomić
Ponieważ Android strzeże swoich ustawień jak oka w głowie, żadna aplikacja nie może zmieniać systemowego DNS ot tak. Aby adns działało, musisz nadać mu uprawnienia WRITE_SECURE_SETTINGS.
Istnieją dwa sposoby. Najłatwiejszy dla tych, którzy nie chcą grzebać w konsoli, to użycie Shizuku. Ta aplikacja przekazuje uprawnienia ADB do innych programów. Jeśli Shizuku jest już skonfigurowane, wystarczy nacisnąć jeden przycisk w interfejsie adns.
Drugą opcją jest klasyczny ADB. Podłącz telefon do komputera i uruchom polecenie:
adb shell pm grant com.eyalm.adns android.permission.WRITE_SECURE_SETTINGS
Po tym magia zaczyna działać.
Strona techniczna
Projekt jest napisany w Kotlinie z użyciem Jetpack Compose. Kod jest zaskakująco czysty i zwięzły. Jeśli zajmujesz się programowaniem mobilnym, polecam zajrzeć do repozytorium — to świetny przykład pracy z ustawieniami systemowymi Androida przy użyciu nowoczesnych metod. Aplikacja jest lekka i nie wymaga zbędnych uprawnień (poza tymi potrzebnymi do DNS).
Czy warto wypróbować
Jeśli aktywnie korzystasz z niestandardowego DNS i masz dość nawigowania przez menu ustawień — zdecydowanie tak. To jeden z tych przypadków, gdy małe narzędzie rozwiązuje jeden konkretny „ból" i robi to elegancko.
Jedyną wadą, jaką znalazłem, jest to, że instalacja wymaga jednorazowej konfiguracji z ADB lub Shizuku. Ale to polityka bezpieczeństwa Androida, deweloper nie może tego zmienić. Ale gdy już to skonfigurujesz — zapominasz o reklamach na zawsze.
Możesz pobrać APK w sekcji Releases na GitHubie lub w katalogu IzzyOnDroid.
Powiązane projekty