bk99.de entertain the web since 1997

Android TV ohne Werbung: Launcher, SmartTube und ADB statt Google-TV-Banner

Zusammenfassung

Im Blog von Cretezy, nach eigener Angabe in der Softwareentwicklung tätig, steht eine Anleitung, wie sich Android-TV-Geräte wie Chromecast mit Google TV oder Fernseher von Hisense ohne Werbebanner und Werbung betreiben lassen. Kern der Anleitung ist ein Satz ADB-Befehle, der einen eigenen Launcher als Startbildschirm setzt, den Google-Launcher abschaltet, YouTube durch SmartTube ersetzt und die Fernbedienung umbelegt. Der Beitrag fasst die Schritte zusammen, nennt die Fallstricke wie verlorenes WLAN oder fehlende HDMI-Umschaltung und ordnet ein, wo DNS-Filter wie Pi-hole ergänzen.

Das Problem

Google TV, die Standardoberfläche der meisten Android-TV-Geräte, zeigt oben auf dem Startbildschirm ein großes Banner mit Empfehlungen, oft aus Apps, die man gar nicht nutzt. Auch der Modus „Nur Apps“ blendet es nicht aus, eine Einstellung dafür gibt es nicht. Cretezy hat die folgende Einrichtung auf zwei Chromecasts mit Google TV und einem Hisense-Fernseher umgesetzt.

Die Bausteine

Projectivy Launcher ersetzt den Startbildschirm und zeigt nur die eigenen Apps; FLauncher und ATV Launcher Pro nennt Cretezy als Alternativen. SmartTube ersetzt die YouTube-App, ohne Werbung und mit eingebautem SponsorBlock, ist aber nicht im Play Store. Wholphin dient als Jellyfin-Client (alternativ Moonfin), und Button Mapper legt die YouTube-Taste der Fernbedienung auf SmartTube.

Die Einrichtung per ADB

Alles läuft über die Android Debug Bridge. Dazu werden die Entwickleroptionen freigeschaltet (sieben Mal auf den Build-Eintrag tippen), dann das kabellose Debugging aktiviert und das Gerät per Kopplungscode verbunden. Geräte ohne kabelloses Debugging, im Beispiel der Hisense-Fernseher, erreicht man über USB-Debugging und adb connect auf Port 5555.

Die Reihenfolge ist wichtig: Erst wird Projectivy mit cmd package set-home-activity zum Startbildschirm, danach werden der Google-Launcher (com.google.android.apps.tv.launcherx) und das Paket, das ihn wiederherstellt (com.google.android.tungsten.setupwraith), mit pm disable-user abgeschaltet. Laut Cretezy kann das Abschalten von setupwraith auf manchen Geräten das gespeicherte WLAN vergessen lassen, und bei Fernsehern übernimmt der Original-Launcher teils die Umschaltung der HDMI-Eingänge.

YouTube wird deinstalliert oder, wenn es in der Firmware steckt, mit pm uninstall --user 0 nur für den Benutzer entfernt. Button Mapper und Projectivy brauchen Bedienungshilfen-Dienste; die Einstellung enabled_accessibility_services ersetzt die ganze Liste, deshalb vorher den aktuellen Wert auslesen. Damit Android den Dienst nicht abschaltet, erhält Button Mapper die Berechtigung WRITE_SECURE_SETTINGS und eine Ausnahme von der Akku-Optimierung.

Alles lässt sich mit pm enable beziehungsweise cmd package install-existing rückgängig machen. Zum Schluss rät Cretezy, das Debugging wieder abzuschalten, weil ein offener ADB-Port anderen Geräten im Netz Zugriff erlaubt.

DNS-Filter als Ergänzung

Nach der Diskussion auf Hacker News ergänzte Cretezy am 20. Oktober Pi-hole: Ein DNS-Filter blockt Werbe- und Tracking-Domains für alle Geräte im Haus, auch die Telemetrie des Fernsehers. Wer den Original-Launcher behalten will, kann laut Berichten das Banner ausblenden, indem er androidtvwatsonfe-pa.googleapis.com sperrt. Ohne eigenen Filter lässt sich per ADB ein privates DNS wie AdGuard DNS setzen.

Ideen

  • Ein eigener Launcher entfernt Werbung, die keine Einstellung abschalten kann.
  • Erst den neuen Startbildschirm setzen, dann den alten abschalten.
  • pm disable-user schaltet Systemapps ab, ohne die Firmware zu verändern.
  • Eine ersetzende Einstellung vorher auslesen, sonst gehen bestehende Werte verloren.
  • Ein DNS-Filter wirkt für alle Geräte im Netz, nicht nur für den Fernseher.
  • Debugging-Zugänge nach der Einrichtung wieder schließen.

Einsichten

  • Android TV ist offener, als die Oberfläche vermuten lässt: Mit ADB lassen sich Startbildschirm, Apps und Dienste ohne Root austauschen, und jeder Schritt bleibt umkehrbar. Das macht die Anleitung auch für Geräte brauchbar, die man nicht flashen will oder kann.
  • Geräteseitige und netzseitige Werbeblockade ergänzen sich. Der Launcher-Tausch entfernt eingebaute Werbung, die der DNS-Filter nicht trifft; der DNS-Filter erfasst Telemetrie und Werbung in Apps, die auf dem Gerät bleiben.

Fakten

  • Der Modus „Nur Apps“ von Google TV blendet das Empfehlungsbanner nicht aus.
  • Kabelloses Debugging gibt es nur per WLAN; ohne diese Funktion hilft USB-Debugging mit adb connect auf Port 5555.
  • SmartTube ist nicht im Play Store und wird als APK von GitHub installiert.
  • Die Einstellung enabled_accessibility_services ersetzt die gesamte Liste aktiver Bedienungshilfen.

Referenzen

Kritik

  • Die Anleitung erteilt Button Mapper per ADB die Berechtigung WRITE_SECURE_SETTINGS und installiert SmartTube ohne Prüfung von Signatur oder Prüfsumme direkt aus der neuesten GitHub-Veröffentlichung. Beides ist verbreitet, aber die Anleitung erwähnt nicht, wie weit man damit einer einzelnen App und ihrer Herkunft vertraut.

Bemerkungen

  • Ein privates DNS wie AdGuard DNS schickt alle Namensanfragen des Fernsehers an einen fremden Anbieter. Ein eigener Pi-hole oder der DNS-Filter des Routers behält diese Daten im eigenen Netz.
  • Google will ab 2027 für alle Android-Apps eine Registrierung der Entwickler verlangen, auch außerhalb des Play Stores (Initiative „Keep Android Open“). Ob Android TV und die Installation per ADB darunter fallen, sagt die Initiative nicht; für Apps wie SmartTube lohnt es sich, das zu verfolgen.

Empfehlungen

  • Vor dem Abschalten den Ausgangszustand sichern: adb shell pm list packages -d (bereits abgeschaltete Pakete) und adb shell settings get secure enabled_accessibility_services notieren.
  • Nach dem Abschalten von setupwraith und dem Launcher-Tausch WLAN-Verbindung und HDMI-Umschaltung prüfen und die Fernbedienung griffbereit halten.
  • Im Heimnetz einen eigenen DNS-Filter nutzen und dort androidtvwatsonfe-pa.googleapis.com sperren, statt alle Anfragen an einen externen Resolver zu schicken.
  • Nach der Einrichtung kabelloses und USB-Debugging in den Entwickleroptionen wieder abschalten.

Anleitung lesen

Im Webarchiv suchen