Domker_

Blokada reklam dla Xiaomi.eu - skrypt generujący hosts (Nie wymaga ROOT)

Recommended Posts

Autor wątku: https://miuipolska.pl/forum/topic/31318-blokada-reklam-dla-xiaomieu-nie-wymaga-root/ zaprzestał aktualizacji pliku hosts. (do końca czerwca 2020 r. )

Napisałem, więc skrypt bash (Android - uruchamiany w Termux i pod Linux, ewentualnie Windows 10 używając WSL), który na podstawie adresów list sam pobiera, generuje i konsoliduje nowe listy do formatu hosts.

Wyrzuciłem stare, nieaktywne adresy URL list i dodałem GoodbyeAds/GoodbyeAds YouTube. Skrypt usuwa również duplikaty i niepotrzebne komentarze, a także ujednolica IP do formatu zero-host.

Teraz każdy sam we własnym zakresie może generować nowy plik zip dla TWRP z aktualnymi listami blokowania reklam zarówno w wersji na stare (v1) jak i nowe (v2) urządzenia.

Skrypt jest dostępny na moim GitHub wraz z opisem użycia:

>>> https://github.com/domker/adbgen

[Lista zmian]

 

termux-adbgen.png

Screenshot_2020-08-28-18-31-37-684_com.android.fileexplorer.jpg

twrp_adbgen.png

Edited by Domker_
dodanie linka do listy zmian
  • Like 5
  • Thanks 1

Share this post


Link to post
Share on other sites

Przy poleceniu:

godl && curl -# -L -o adbgen.zip "https://github.com/domker/adbgen/archive/master.zip" && unzip adbgen.zip && cd adbgen-master

pojawia mi się informacja:

Warning: Failed to create the file adbgen.zip: Permission denied
curl: (23) Failure writing output to destination

Rozumiem, że mu uprawnienia do katalogu nie pasują.

  • Like 1

Share this post


Link to post
Share on other sites

U mnie nie działa :( Wygenerowałem oraz wgrałem plik i dalej są reklamy. Mi9 v12.0.3 wersja stabilna 

Share this post


Link to post
Share on other sites

@AmyS

Chyba wiem, o co chodzi. Nie dałeś aplikacji "Termux" praw do zapisu. Naciśnij dłużej na ikonę Termuxa lub na liście uruchomionych aplikacji > "O aplikacji" (ostatnia opcja) > "Uprawnienia aplikacji" > "Pamięć" - aktywuj.

Jeżeli będziesz mieć jakieś pytania, to z chęcią odpowiem.

W sumie dzięki, ze informację, bo dodam w README.md informację o konieczności nadania takich uprawnień dla aplikacji Termux :-)

@AndrzejKu

Listy nie wytną Ci 100% reklam, np. w aplikacji YouTube (na mobilnej stronie YT już tak), która jest specyficzna i szyfruje ruch związany z reklamami tak samo jak oficjalna aplikacja Facebook. Wgrałeś wersję V2 pliku ZIP?

Reklamy znikają głównie na wielu stronach przeglądarce i w wielu aplikacjach z Google Play.

Czy lista działa możesz sprawdzić wpisując do przeglądarki dowolny adres, który jest w pliku "hosts" np. abz.com

Jeżeli wyświetli się "Ta witryna jest nieosiągalna" tzn., że wgrany plik jak najbardziej działa.

Linki do list wziąłem bezpośrednio od autora wcześniej dostarczanych paczek ZIP (link w pierwszym poście), usunąłem tylko te, które już nie istniały i dodałem 2 listy GoodbyeAds, które moim zdaniem są całkiem skuteczne szczególnie jeżeli chodzi o blokadę trackerów zaszytych w aplikacjach.

 

 

 

Edited by Domker_

Share this post


Link to post
Share on other sites

@hjirik Give "Storage" permission for Termux app and try again. (Long press on the Termux app icon, then "About application"> "Application permissions"> check ON "Storage")

Edited by Domker_

Share this post


Link to post
Share on other sites

@hjirik Try check this file exist in "adbgen-master" subdirectory (there the script with the content is unpacked by default and all new files are created there - to avoid creating a mess in Download directory)

Edited by Domker_

Share this post


Link to post
Share on other sites

@hjirik You re-added alias godl to "bash.bashrc" file, then You now have a double entry there. (by repeating all the steps again from the beginning)

Remove the last line from this file with this command to fix it:

sed -i '$ d' /data/data/com.termux/files/usr/etc/bash.bashrc && echo "Done!"

:grin:

  • Like 1

Share this post


Link to post
Share on other sites

Potwierdzam jednego z przedmówców - plik ZIP utworzony, wgrany przez twrp a reklamy jak były, tak są.

Wysłane z mojego Mi 9T Pro przy użyciu Tapatalka

Share this post


Link to post
Share on other sites
Dnia 5.09.2020 o 18:17, Domker_ napisał:

@AmyS

Chyba wiem, o co chodzi. Nie dałeś aplikacji "Termux" praw do zapisu. Naciśnij dłużej na ikonę Termuxa lub na liście uruchomionych aplikacji > "O aplikacji" (ostatnia opcja) > "Uprawnienia aplikacji" > "Pamięć" - aktywuj.

Jeżeli będziesz mieć jakieś pytania, to z chęcią odpowiem.

W sumie dzięki, ze informację, bo dodam w README.md informację o konieczności nadania takich uprawnień dla aplikacji Termux :-)

Dzięki @Domker_ za odpowiedź. Że też nie pomyślałem o uprawnieniach dla aplikacji... Zrobiłem tak jak napisałeś i zadziałało. Plik hosts podmieniony i blokada reklam działa :D

Share this post


Link to post
Share on other sites
Dzięki [mention=11905]Domker_[/mention] za odpowiedź. Że też nie pomyślałem o uprawnieniach dla aplikacji... Zrobiłem tak jak napisałeś i zadziałało. Plik hosts podmieniony i blokada reklam działa
To plik się podmienia, czy instaluje przez TWRP? Może dlatego u mnie nie działa...?

Wysłane z mojego Mi 9T Pro przy użyciu Tapatalka

Share this post


Link to post
Share on other sites

@Domker_, pytanie

Czy nie jest tak jak z .zip-em od @fredek, który w przypadku nowych urządzeń z dynamicznymi partycjami, nie pozwala na podmianę hosts, ergo, nie da się zaimportować pliku w TWRP...?

Share this post


Link to post
Share on other sites

No na dynamicznych partycjach nie da się podmienić hosts bezpośrednio w /system. Ewentualnie można jakimś modułem od Magiska.

Share this post


Link to post
Share on other sites

@mrosi@Orjon

Zip generowany przez skrypt w zasadzie nie różni się od tego od @fredek po za tym, że nie jest podpisywany cyfrowo.

Myślę, że tak właśnie jest. Część nowszych urządzeń może właśnie takowy system partycji posiadać. Tym bardziej, że to wstęp do Androida 11 - z tego co mi wiadomo będzie mieć możliwość aktualizacji bez konieczności restartowania urządzenia w celu flashowania. Tzn. po restarcie dopiero będzie ładowany nowy obraz systemu przy pomocy właśnie mechanizmu partycji dynamicznych.

Jeżeli urządzenia posiadają standardowy system partycji, który umożliwia podmontowanie `/system` z możliwością zapisu (rw) to podmiana hosts przez TWRP zadziała.

W starszych urządzeniach rozpakowywany jest do `/system/etc/`, w nowszych o ze statycznymi partycjami `/system_root/system/etc` z tym, że od wersji TWRP 3.4 już lokalizacja jest bindowana dla zachowania kompatybilności w skryptach. Pozostawiłem rozgraniczenie na wersję v1 i v2 tylko dlatego, że nie wszyscy aktualizują TWRP do najnowszej wersji.

Zainteresowałem się tematem i z tego, co się dowiedziałem to:

Cytat

Unfortunately, TWRP 3.4 does not yet bring support for dynamic/logical partitions, which, according to the guys over at XDA, is needed for TWRP to support devices that have launched with Android 10.

https://9to5google.com/2020/06/26/twrp-3-4/

Dużo mówi też sama notka od jednego z autorów TWRP: https://twrp.me/site/update/2019/10/23/twrp-and-android-10.html

Wychodzi na to, że w urządzeniach, które od razu miały Androida 10 jest nowy system partycji dynamicznych i takowe są read-only "by design".

Inaczej sprawa wygląda z urządzeniami, które dostały upgrade do Android 10, w większości przypadków mają jeszcze starszy system partycji.

Na nowych urządzeniach z partycjami dynamicznymi pozostaje tylko wygenerowanie hosts skryptem i podmiana przez jakiś moduł Magiska jak wspomniał Orjon. (do czasu wsparcia dla partycji dynamicznych przez nowszą wersję TWRP)

 

 

  • Like 1

Share this post


Link to post
Share on other sites
29 minut temu, Domker_ napisał:

Wychodzi na to, że w urządzeniach, które od razu miały Androida 10 jest nowy system partycji dynamicznych i takowe są read-only "by design".

Bo tak jest.

29 minut temu, Domker_ napisał:

Na nowych urządzeniach z partycjami dynamicznymi pozostaje tylko wygenerowanie hosts skryptem i podmiana przez jakiś moduł Magiska jak wspomniał Orjon. (do czasu wsparcia dla partycji dynamicznych przez nowszą wersję TWRP)

Tylko moduł Magiska pójdzie. Inaczej nie ma szans by podmienić to w ogóle, bo poza tym, że dynamiczne partycje są read-only, to jeszcze pliki na tych partycjach są umieszczone w tzw. shared blocks (blokach współdzielonych) - czyli jeden plik dzieli blok danych z innymi plikami i podmiana tego jednego pliku, nawet jeśli jest udana, uszkadza te pozostałe pliki w bloku i powoduje, że po restarcie telefonu odpala się on tylko w trybie Fastboot i trzeba wgrywać ROM na nowo.

https://manpages.debian.org/unstable/e2fsprogs/e2fsck.8.en.html (sprawdź unshare_blocks)

  • Like 1

Share this post


Link to post
Share on other sites

Albo po zastosowaniu powyższego blokera albo po zastosowaniu dns.adguard.com w Nazwie hosta dostawcy prywatnego DNS nie wszystko jest synchronizowane z chmurą Xiaomi. Nie synchronizowały mi się m.in. kontakty, dyktafon, kalendarz. Usunąłem wpis z prywatnego DNS i przywróciłem stary plik hosts z poprzedniego blokera i synchronizacja działa.

Share this post


Link to post
Share on other sites

@AmyS U mnie synchronizacja działa (DNS Cloudflare -> 1.1.1.1 / 1.0.0.1 / 1dot1dot1dot1.cloudflare-dns.com) z blokadą opartą o plik hosts), ale mam MIUI 11 (miui polska).

Sprawdź jak się zachowa jak wyłączysz dwa ostatnie adresy url list tzn. w pliku "urllist.txt" w liniach 10 i 11 zastąp adres URL słowami:

blank

Wygeneruj ponownie plik hosts i potem plik zip. Wgraj przez TWRP i zobacz, czy pomogło. (zawierają one m. in. blokowanie trackerów/ad-serwerów Xiaomi)

W przypadku Adguard być może DoH/DNSsec Ci coś psuje przy rozwiązywaniu nazw.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now