Seiten

Posts mit dem Label Adblock werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Adblock werden angezeigt. Alle Posts anzeigen

Samstag, 10. März 2012

Android Werbung ohne Root entfernen

Vorneweg noch ein paar Worte: Viele Webseiten oder Apps im Android Market schalten Werbung, um damit ihre Kosten für die Betreibung der Server oder die Entwicklung zu sichern. Deshalb ist das Deaktivieren der Werbung ein zweischneidiges Schwert. Bei Apps oder Webseiten, die euch gefallen solltet ihr ruhig den Werbeblocker deaktivieren und/oder auf Werbung klicken, um kostenlose Angebote zu fordern.

Bei Smartphones und den damit verbundenen Tarifen ist es durchaus nützlich Werbung zu blockieren, um die -sowieso schon begrenzte -  Bandbreite zu schonen. Im Market gibt es zum Blocken von Werbung schon eine App namens Adfree. Leider hat diese einen Nachteil und zwar das Root-Rechte benötigt werden. Wenn man jedoch sein Smartphone nicht rooten möchte, muss man mit der Werbung leben.

Hinweis: Die Anleitung richtet sich an versierte Nutzer. Es ist durchaus möglich, damit auch Schaden am Gerät oder an der Firmware anzurichten. Ich übernehme keine Haftung für eventuelle Schäden.

Die App Adfree basiert darauf, dass eine Liste von bekannten Werbeservern in die Hosts-Datei des Betriebssystems eingetragen werden und diese mit der lokalen IP (127.0.0.1) verbunden wird. Deshalb wird jede Anfrage an einen dort eingetragenen Server auf das eigene Gerät umgeleitet. Beispiele für solche Hosts-Dateien gibt es im Netz zu finden. Diese werden später für die Anleitung benötigt. Ladet euch eine Datei herunter und speichert diese unter hosts.txt. Downloads gibt es z.B. hier:




Mit ein paar Linux-Kenntnissen ist es möglich dieses Verhalten manuell zu tun, um damit die Werbung zu blocken. Dazu benötigt man das Android SDK, in dem z.B. das Tool adb enthalten ist. Dieses wird benötigt, um eine Shell auf dem Telefon zu starten. Einfach den Installer laden und die Tools in einen Ordner eurer Wahl installieren. Den SDK Manager im Anschluss starten und die Plattform-Tools installieren. Alles andere kann abgewählt werden:


Im Telefon muss Debugging noch aktiviert werden, damit wir Verbindung aufnehmen können. Das ist zu finden unter Einstellungen -> Anwendungen - >Entwicklung:



Im Folgenden wird davon ausgegangen, dass das SDK in D:\android-sdk-windows installiert ist und das Telefon an den USB-Anschluss angeschlossen ist (Nur Laden). Die vorher heruntergeladene Hosts-Datei ist im Unterordner platform-tools abgelegt. Also unter d:\android-sdk-windows\platform-tools\hosts.txt.
Zuerst starten wir eine Konsole (Win+R->cmd->Enter), hangeln uns zu den Plattform-Tools durch und starten eine Shell per ADB:

cd /d "d:\android-sdk-windows\platform-tools"
adb shell

Auch wenn keine weitere Ausgabe erfolgts sind wir nun auf dem Gerät eingeloggt. Zuerst müssen wir die Systempartition schreibbar machen, standardmäßig ist diese nur lesbar. Im Anschluss beenden wir die Shell gleich wieder:

mount -o remount,rw /system
exit

Die Hosts-Datei muss nun auf das Gerät übertragen werden. Dafür benutzen wir den push-Befehl und speichern diese gleich auf dem Gerät unter /system/etc (der Ordner kann sich bei anderen Geräten unterscheiden, dies ist aber der Standardpfad!) ab. Nun gehen wir zurück aufs Gerät und browsen direkt zum Ordner

adb push hosts.txt /system/etc
adb shell
cd /system/etc

Aus Sicherheitsgründen benennen wir die alte Hosts-Datei um und geben der neuen Datei ihren Namen:

mv hosts hosts_old
mv hosts.txt hosts

Nun noch die Shell beenden und das Gerät neu starten. Nun sollte die Werbung komplett entfernt sein.
Hier noch einmal ein Screenshot der kompletten Vorgehensweise: