Android: Blokowanie reklam z AdAway na smartfonie

Spis treści

Dzięki dnscrypt-proxy jesteśmy w stanie zaszyfrować zapytania DNS bezpośrednio na naszych smartfonach. Niemniej jednak, w przypadku mojego Neffos'a C5 od TP-LINK, w wielu aplikacjach pojawiły się reklamy po wdrożeniu mechanizmu szyfrującego. Wcześniej oczywiście wykorzystywałem adblock'a bezpośrednio na routerze z wgranym firmware OpenWRT/LEDE, gdzie zapytania DNS do adserwerów były filtrowane i blokowane bezpośrednio na tym urządzeniu. Po zaszyfrowaniu ruchu DNS w telefonie, straciłem dostęp do mojego filtra reklam na routerze. Przydałoby się zatem zaimplementować podobny mechanizm blokujący bezpośrednio na Androidzie, tak by ponownie wszystkie te reklamy zniknęły przy jednoczesnym zachowaniu całej funkcjonalności płynącej za sprawą szyfrowanego ruchu DNS. Jednym z rozwiązań jest wykorzystanie narzędzia AdAway, które przy pomocy pliku /etc/hosts i lokalnego serwera www jest w stanie zablokować sporą większość reklam, na które możemy natknąć się w internecie. Opis instalacji i konfiguracji AdAway zostanie przedstawiony w niniejszym wpisie.

Root Androida na potrzeby AdAway

AdAway niestety wymaga ukorzenionego Androida (dostęp root). Chodzi o to, że to narzędzie operuje na pliku /system/etc/hosts oraz musi być też w stanie uruchomić serwer www, który ma nasłuchiwać na porcie 80. Do tych celów są wymagane prawa administratora systemu. Jeśli nie wiemy jak je zdobyć w przypadku naszego telefonu, to AdAway nie jest dla nas. Dla tych którzy posiadają ten sam model smartfona co i ja, tj. Neffos C5 od TP-LINK, mogą przejść przez proces root'owania systemu na tym telefonie.

Brak AdAway w Google play oraz instalacja z F-Droid

W sklepie Google Play można się natknąć na wiele narzędzi, które mają realizować zadanie blokowania reklam. Nie znajdziemy tam jednak AdAway. Zgodnie z tym co możemy wyczytać na stronie projektu, AdAway został ze sklepu Google Play usunięty przez naruszenie umowy (punkt 4.4). Wygląda na to, że Google wywala z tego sklepu wszystkie niewygodne aplikacje. Oczywiście AdAway w dalszym ciągu możemy pobrać, z tym, że trzeba skorzystać z alternatywnego repozytorium jakim jest F-Droid.

adaway-blokowanie-reklam-smartfon-android-instalacja-f-droid

Źródła plików hosts

Przede wszystkim, interesują nas źródła pliku hosts. Warto tutaj zaznaczyć, że możemy korzystać z kilku źródeł jednocześnie. W takim przypadku, kilka plików hosts zostanie ze sobą połączonych, a zduplikowane wpisy zostaną usunięte. Jesteśmy w stanie również korzystać z własnych plików hosts , czy dodawać niestandardowe źródła bezpośrednio w opcjach aplikacji.

adaway-blokowanie-reklam-smartfon-android-zrodla-hosts

Przy dodawaniu źródeł plików hosts trzeba zdawać sobie sprawę, że wraz ze zwiększaniem się ilości wpisów w tym pliku, potrzebna jest większa moc obliczeniowa, która będzie w stanie te informacje przetworzyć z każdym zapytaniem DNS. Jest zatem wielce prawdopodobne, że czas pracy na baterii naszego telefonu ulegnie skróceniu w zależności od intensywności wykorzystywania internetu.

Kolejną sprawą jest zablokowanie pewnych usług czy aplikacji przez zbyt eksensywne filtrowanie reklam. Trzeba mieć na uwadze, że plik hosts to nic innego jak mapa adresów IP i domen, taki tekstowy lokalny serwer DNS. W tym przypadku interesują nas co prawda domeny adserwerów ale niektóre z nich mogą hostować również inne zasoby. Blokując kontakt z tymi domenami, zablokujemy także pozostałe zasoby. Dlatego do kwestii blokowania reklam trzeba podejść z należytą rozwagą.

Czarne i białe listy adserwerów

Może się zdarzyć też tak, że bardzo przypadnie nam do gustu jeden z plików hosts , który znajdziemy sobie gdzieś w internecie. Niemniej jednak, po dodaniu go jako źródło adserwerów przestaną nam działać pewne połączenia czy usługi. Jednym z wyjść byłoby usunięcie tego pliku hosts ze źródeł ale to rozwiązanie niekoniecznie może w naszym przypadku wchodzić w grę. Na szczęście AdAway wspiera czarne i białe listy domen, które możemy ręcznie zablokować lub odblokować już po zaaplikowaniu plików hosts z adserwerami.

adaway-blokowanie-reklam-smartfon-android-biala-czarna-lista

Trzeba jednak pamiętać, że po dodaniu adresu, zmiany nie są natychmiastowe. Trzeba ręcznie odświeżyć listę w pliku hosts .

Logowanie zapytań DNS

Aplikacje mogą nie działać prawidłowo w przypadku, gdy komunikacja z pewnymi domenami jest zablokowana. Jeśli nie wiemy z jakich adresów korzysta taki problematyczny program, to możemy spróbować to ustalić włączając logowanie zapytań DNS. Wszystkie adresy domen, które nasz smartfon próbuje odwiedzić zostaną zalogowane. My zaś w łatwy sposób będziemy w stanie zablokować lub odblokować konkretne wpisy w zależności od potrzeb:

adaway-blokowanie-reklam-smartfon-android-logowanie-dns

Pozostałe opcje AdAway

Poza tymi wymienionymi wyżej opcjami, AdAway ma jeszcze kilka dodatkowych ustawień. Możemy w nich zmienić zachowanie mechanizmu aktualizacji pliku host . Jest też opcja określenia adresu IP, na który mają być przesyłane żądania do adserwerów. Można również włączyć opcję przekierowania domen na inne adresy IP, choć może to stwarzać zagrożenie dla bezpieczeństwa.

adaway-blokowanie-reklam-smartfon-android-ustawienia

Czy AdAway blokuje reklamy

Po dostosowaniu źródeł pliku hosts i ewentualnym ustawieniu dodatkowych wpisów na białej i czarnej liście, przydałoby się sprawdzić czy AdAway w ogóle działa. By uniknąć problemów za sprawą cache, dobrze jest uruchomić smartfon ponownie. Praktycznie przy każdej aktualizacji pliku hosts będziemy proszeni o tę czynność:

adaway-blokowanie-reklam-smartfon-android-aktualizacja

Po zrestartowaniu Androida warto sprawdzić czy plik /system/etc/hosts zawiera jakieś wpisy. Standardowo są tam tylko tylko linijki z localhost. Jeśli aktualizacja pliku hosts przebiegła pomyślnie, to ten plik powinien być nieco większy:

adaway-blokowanie-reklam-smartfon-android-test-hosts

Wystarczy teraz odwiedzić jedną z domen, które są na liście, np. w przeglądarce internetowej. Jeśli zostanie nam zwrócona biała strona, oznacza to, że mechanizm blokowania reklam działa należycie. Większość albo i wszystkie reklamy, które są wyświetlane w aplikacjach dostępnych w Google Play, również powinny zniknąć.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.