Werbung auf Android Smartphones blocken

Gratis Apps sind zwar was schönes, aber die Werbung kann trotzdem nerven. Weil Android auf Linux basiert habe ich mir ein kleines Skript geschrieben, das für mein HTC Dream eine neue /etc/hosts schreibt und sie direkt aufs Smartphone schiebt. Damit dass Skript Zugriff auf Android bekommt, wird das Android SDK benötigt. Damit “adb” gefunden wird, müsst ihr den Pfad zum “tools” Ordner aus dem SDK mit in die Umgebungsvariable $PATH packen.

#!/bin/sh
ADB="`which adb`"
URLS="http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext http://www.mvps.org/winhelp2002/hosts.txt"
TEMP="`mktemp`"

function update_hosts {
    echo "Updating {device}/etc/hosts.."
    $ADB wait-for-device
    $ADB remount
    $ADB push $TEMP /etc/hosts
    $ADB reboot
    echo "done"
}

case "$1" in
    update)
        echo "127.0.0.1 localhost" > $TEMP
        for url in $URLS
        do
            echo "Fetching '$url'.."
            wget -q -O- $url | grep -v "^$" | grep -v "^#" >> $TEMP
        done
        update_hosts
    ;;
    revert)
        echo "Writing new hosts file.."
        echo "127.0.0.1 localhost" > $TEMP
        update_hosts
    ;;
    *)
        echo "usage: $0 {update|revert}"
    ;;
esac

rm $TEMP

Download: archive.tamcore.eu/wp-content/uploads/2010/07/blockads.sh

Update: Leider wurde ich erst nach der Veröffentlichung des Artikels auf die App AdFree aufmerksam. Sie erledigt genau das, was das obige Script auch macht.