>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Kotlin

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.

ADNS main screen ADNS settings screen ADNS settings screen

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