Skocz do zawartości

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


Domker_

Rekomendowane odpowiedzi

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

Edytowane przez Domker_
dodanie linka do listy zmian
  • Like 5
  • Thanks 1
Odnośnik do komentarza
Udostępnij na innych stronach

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
Odnośnik do komentarza
Udostępnij na innych stronach

@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.

 

 

 

Edytowane przez Domker_
Odnośnik do komentarza
Udostępnij na innych stronach

@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
Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

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

Odnośnik do komentarza
Udostępnij na innych stronach

@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
Odnośnik do komentarza
Udostępnij na innych stronach

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 2
Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

@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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 miesiące temu...
  • 11 miesięcy temu...
  • 1 rok później...

Trochę odkopałem ale potwierdzam działa na systemless hosts. 

1.Generujemy sobie hosts powyższym skryptem

2.Instalujemy Magisk, włączamy w jego ustawieniach "systemless hosts"

3.Jakimś managerem plików, któremu daliśmy uprawnienia roota kopiujemy plik host znajdujący się w:

/Download/adbgen-master/

do 

/system/etc/

Zastępując stary plik.

4.Restart telefonu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 miesiące temu...

A nie prościej plik host przenieść przez twrp do katalogu i podmienić? Jak już używasz magisk to można adaway. A z tego co pamiętam to chodziło wtedy o blokowanie reklam bez magisk i root. Ale gratulacje za świetną robotę i chęci.

Wysłane z mojego HD1900 przy użyciu Tapatalka

Odnośnik do komentarza
Udostępnij na innych stronach

  • 9 miesięcy temu...
  • 2 tygodnie później...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...