Adfree hosts funktioniert nicht

M

Manfred62

Stammgast
Threadstarter
Hallo zusammen,

ich habe mittlerweile ein Note 7 (Lavender) eingerichtet. Installiert ist die aktuelle xiaomi.eu Rom 9.5.23. Über TWRP habe ich eine ADfree hosts Datei geflasht. Leider scheint sie nicht zu funktionieren. In Chrome bekomme ich weiterhin Werbung angezeigt. Auf meinem anderen Gerät (Redmi Note 5) funktioniert alles problemlos. Das Note 5 ist auf dem gleichen Stand mit xiaomi.eu und Adfree hosts. Die Einstellungen in Chrome habe ich überprüft. Ist bei beiden Geräten identisch.

Hat jemand eine Idee was da nicht geht? Danke
 
O

ooo

Lexikon
Das hast du aber gesehen?
johannsen schrieb:
...übrigens gibt´s hier wie bei einer AntiVirus-Software keinen 100%igen Schutz.
johannsen schrieb:
Bitte beachten : wenn "Chrome mit Datenoptimierung" aktiviert ist oder bei "Proxy-Umleitungen" ist die AdFree-hosts Datei wirkungslos (ohne Funktion)
Benutze als Gegentest einen anderen Browser mit den *exakt* identischen Web-Seiten. - Kommt immer noch Werbung (wie bei Chrome)?
Wenn du gerootet bist, kannst du auch die App AdAway installieren und darüber die AdFree-Datei oder andere hosts-Dateien installieren (Siehe Einstellungen der App). - Danach kann man die App AdAway auch wieder deinstallieren. - Die hosts-Datei bleibt.
(Allgemeiner Tipp: Zwischen allen Tests bzw. nach dem Ändern der hosts-Datei muss man die Browser-Caches löschen bzw. einen Neustart machen, damit man korrekte Ergebnisse beim Testen erhält.)
 
M

Manfred62

Stammgast
Threadstarter
Hallo,

anderen Browser habe ich getestet. Dort wird auch Werbung angezeigt. Cache leeren und Reboots habe ich auch gemacht. Die hosts Datei wird einfach nicht übernommen. Gerootet bin ich nicht.

Hmm, seltsam. Auf anderen Geräten (Mido, Whyred, Mocha) mit den selben Bedingungen (eu Rom, TWRP) klappt das wie gewohnt. Ich hatte deshalb etwas spezifisches zu Lavender vermutet. Ich werde mal weiter suchen und testen. Danke
 
O

ooo

Lexikon
Im Gegensatz zu lavender sind deine anderen Devices alle nicht-native Android 9 Pie Geräte (so weit ich weiß).
Diese Geräte wurden entweder auf Android 9 ge-upgraded oder haben (irgend-)ein Custom ROM installiert, das evtl. wieder gegen Standards "verstösst".
Ab Android 9 ist die Boot-Sequenz für die Hersteller (verpflichtend = muss) anders aufgebaut.
Ein TWRP Recovery kann das sauber beachten, muss es aber nicht (siehe AdFree hosts über das TWRP Recovery installieren; fstab-Datei/mount points/Lokation der hosts-Datei evtl. "falsch" etc.).
Auch AdFree könnte einfach nur nicht angepasst sein, weil es bereits älter ist? - Allerdings habe ich mir den Deploy-Mechanismus nicht angesehen und kann das nur vermuten.
___

System-as-root | Android Open Source Project

(Das aktuelle Magisk und die aktuelle AdAway App können beide unabhängig voneinander die hosts-Datei an der richtigen Lokation verändern und die Werbung wird entsprechend weggefiltert. - Das bedeutet allerdings "root" ...)
___

Überprüfung der hosts-Datei (unter Android, also ins System gestartet) ohne gerootet zu sein:
  • Funktionierendes ADB/Fastboot-Paket ist installiert
  • Android-/USB-Debugging ist in den Entwickleroptionen aktiviert
  • Dateiübertragung via MTP ist aktiviert (USB)
  • Phone und Rechner via USB verbinden
  • Terminal (Eingabeaufforderung) am Rechner öffnen
  • Eingabe:
    Code:
    adb shell "ls -la /system/etc/hosts"
    adb shell "cat /system/etc/hosts"
    (Es sollten dann tausende von Zeilen mit Hosts ausgegeben werden; wenn nicht, dann ist die Standard-hosts-Datei aktiv.)
___

Inhalt-der-hosts-Datei-ohne-root-überprüfen.png
 
Zuletzt bearbeitet:
M

Manfred62

Stammgast
Threadstarter
Ah, danke für die Infos. Ich hatte schon das TWRP in Verdacht. Ein "offizielles" TWRP gibt es für das Lavender ja noch nicht. Eventuell geht das flashen dann mit einem entsprechenden TWRP (sobald verfügbar). Danke erstmal
 
O

ooo

Lexikon
Zu Fuss geht das auch:
  • AdFree flashable .zip-Datei auf den Rechner downloaden und dort auspacken, um an die enthaltene hosts-Datei zu kommen
  • Die hosts-Datei dann vom Rechner auf das Phone kopieren (Interner Speicher > Download o. ä.)
  • Das Phone in das TWRP Recovery starten
  • TWRP > Mount > Haken bei "Mount System partition read-only" entfernen und "System" und "system_root" anhaken
  • TWRP > Advanced > File Manager und Auswahl / > sdcard > Download > hosts (Datei "/sdcard/Download/hosts")
  • Dann [Copy File] antippen
  • Dann (Ziel-Verzeichnis "/system/system/etc") auswählen / > system > system > etc und bestätigen
  • TWRP > Reboot System
  • In Android testen, wie oben beschrieben
___

Man kann den Rechner auch ganz weglassen, wenn man den AdFree.zip direkt über den Browser herunter lädt und dort mit dem Dateimanager des Phones entpackt, um an die hosts-Datei zu kommen ...

(AdFree ist einfach nicht aktuell; siehe Inhalt der Text-Datei "updater-script" in "AdFree_hosts.zip/META-INF/com/google/android/")
 
Zuletzt bearbeitet:
M

Manfred62

Stammgast
Threadstarter
Super, danke für die Infos.

BTW: in TWRP sehe ich 2x "System" statt "System" und "system_root"?
 
M

Manfred62

Stammgast
Threadstarter
Ja, es funktioniert! Ich hatte das andere Recovery drauf.

Genügt es, um das ganze zu vereinfachen, das Update-Script anzupassen?
Code:
...
ui_print("...bereite vor");
run_program("/sbin/mount", "/system_root");
run_program("/sbin/mount", "/system");
run_program("/sbin/mount", "/data");
run_program("/sbin/mount", "/cache");

ui_print("...loesche alte hosts");
delete("/system/etc/hosts");

ui_print("...installiere neue hosts");
package_extract_dir("system", "/system");

ui_print("...setze Berechtigungen");
set_perm(0, 0, 0644, "/system/etc/hosts");

ui_print("...loesche Cache");
delete_recursive("/cache");

ui_print("...beende Installation");
unmount("/data");
unmount("/system");
unmount("/system_root");

ui_print("...fertig - bitte neu starten !");
 
O

ooo

Lexikon
Nein, so funktioniert das nicht. - Das ist aber auch eigentlich der Job von @johannsen ... Vllt. hat er ja Bock und Zeit, sein Dino updater-script an die Gegenwart anzupassen?
___

Außerdem bist du doch genauso schnell mit der direkten Methode, die wir hier für dich gefunden haben?
Und du kannst jede hosts-Datei auf diese Art völlig unabhängig von irgendwelchen Leuten einsetzen, die man im Web findet.

Ich würde mir für die Zwischenzeit ein shell script schreiben:
Tipp: Unter Windows ausschließlich mit Notepad++ (Download hier) arbeiten (In den Einstellungen die Zeilenschaltung auf UNIX setzen - Unter Linux oder auf dem Phone selbst ist das nicht nötig)
Code:
#!/system/bin/sh
exec 2> /dev/null

ZIP="/sdcard/Download/AdFree_hosts.zip"
EXTRACT="system/etc/hosts"

if [ "$( getprop ro.build.system_root_image )" != "true" ]; then
   SYSPREPATH="/"
else
   SYSPREPATH="/system"
fi

mount /system
mount -o rw,remount /system

unzip -o "$ZIP" "$EXTRACT" -d "$SYSPREPATH"

chmod 0644 "$SYSPREPATH/$EXTRACT"
chown root:root "$SYSPREPATH/$EXTRACT"

head "$SYSPREPATH/$EXTRACT"

umount /system
exec 2> /dev/tty
Das shell script würde ich /sdcard/Download/afh nennen
Den AdFree_hosts.zip würde ich dann bei Bedarf herunterladen (/sdcard/Download/AdFree_hosts.zip)
Dann in das TWRP starten
TWRP > Advanced > Terminal > dann eingeben:
Code:
source /sdcard/Download/afh
(afh packt dann die im AdFree_hosts.zip befindliche hosts-Datei an die richtige Stelle aus, setzt die benötigten Rechte und gibt die ersten 10 Zeilen aus zur Kontrolle.)

Abschließend ein TWRP > Reboot > System und ein kurzer Test im Browser ...
___

Man kann auch alles vom Rechner aus mit einer adb root shell und einer x-beliebigen, mit dem Rechner-Browser heruntergeladenen hosts-Datei machen:
(Das ist jetzt nur für das lavender gedacht; diese Befehle können Warnungen/Fehler auswerfen, weil das verwendete TWRP Recovery evtl. nicht ganz sauber ist.)
Phone in das TWRP starten
Terminal am Rechner öffnen
Befehle:
Code:
adb push hosts /sdcard/
adb shell
mount /system
mount -o rw,remount /system
cp /sdcard/hosts /system/system/etc/hosts
chmod 0644 /system/system/etc/hosts
chown root:root /system/system/etc/hosts
umount /system
reboot
 
Zuletzt bearbeitet:
M

Manfred62

Stammgast
Threadstarter
Danke dir! Hast natürlich recht, die erste Methode geht natürlich auch recht einfach. Ich werde auf das Thema auch mal im anderen Thread hinweisen.
 
Oben Unten