Een Android TV zonder advertenties

Google TV, de standaardinterface op de meeste Android TV-apparaten, plaatst een grote banner bovenaan het startscherm om content te promoten die Google wil dat je bekijkt. De 'alleen apps'-modus (Apps only mode) zou het startscherm moeten terugbrengen tot enkel je apps, maar de banner blijft staan. Er is geen instelling om de launcher te wijzigen en YouTube voegt daar eigen advertenties aan toe.

Na het configureren van enkele apparaten in huis, ben ik uitgekomen op een setup zonder advertenties en met een prettigere interface.

De configuratie

De volgende tools vormen de basis van deze setup:

  • Projectivy Launcher: vervangt het startscherm. Het toont alleen je apps en is zeer aanpasbaar.
  • SmartTube: vervangt YouTube. Deze app bevat geen advertenties, heeft een betere interface en beschikt over ingebouwde SponsorBlock. (Hoewel ik YouTube Premium blijf betalen om creators te ondersteunen, geniet ik veel meer van SmartTube dan van de officiële app).
  • Wholphin: mijn voorkeur voor een Jellyfin-client, vanwege de gebruikersinterface en aanpassingsmogelijkheden.
  • Button Mapper: hiermee kan de afstandsbediening worden geherprogrammeerd, zodat bijvoorbeeld de YouTube-knop SmartTube opent.

Deze configuratie is getest op twee Chromecasts met Google TV en een Hisense TV, en zou op de meeste Android TV-apparaten moeten werken.

Handleiding

Tip: Je kunt dit artikel aan een AI-agent (zoals Claude Code) geven om je door de installatie te leiden. Deze kan de ADB-commando's voor je uitvoeren en aanpassen aan jouw specifieke apparaat.

Installeer eerst de apps. Projectivy, Wholphin en Button Mapper zijn beschikbaar in de Play Store. SmartTube kan worden 'gesideload' met behulp van Downloader. Voor de rest van de stappen is ADB (Android Debug Bridge) vereist.

Verbinding maken via ADB

Activeer eerst de opties voor ontwikkelaars: ga naar Instellingen → Systeem → Over en klik 7 keer op Android TV OS-versie. Schakel vervolgens in de opties voor ontwikkelaars 'Draadloos debuggen' (Wireless debugging) in en kies voor 'Apparaat koppelen met koppelcode' (Pair device with pairing code):

adb pair <ip>:<pairing-port> <code>
adb mdns services # Om de connectiepoort te vinden
adb connect <ip>:<connect-port>
D=<ip>:<connect-port> # Wordt gebruikt in de onderstaande commando's

Draadloos debuggen werkt alleen via wifi. Als je apparaat dit niet ondersteunt (zoals mijn Hisense TV), schakel dan in plaats daarvan 'USB-debuggen' in en maak verbinding met: adb connect <ip>:5555.

De launcher vervangen

Projectivy heeft een optie om de huidige launcher te overschrijven (Override current launcher), maar het standaard startscherm flitst dan nog steeds kort in beeld. In plaats daarvan kun je de standaard launcher en het pakket dat deze herstelt uitschakelen, om vervolgens Projectivy als start-app in te stellen:

adb -s $D shell pm disable-user --user 0 com.google.android.apps.tv.launcherx
adb -s $D shell pm disable-user --user 0 com.google.android.tungsten.setupwraith
adb -s $D shell cmd package set-home-activity com.spocky.projengmenu/.ui.home.MainActivity

Let op: op sommige televisies regelt de standaard launcher ook het schakelen tussen HDMI-ingangen. Controleer na deze actie of dit nog steeds werkt.

YouTube vervangen

Zodra SmartTube is geïnstalleerd, kun je de officiële YouTube-app verwijderen:

adb -s $D uninstall com.google.android.youtube.tv

Als de app is ingebouwd in de firmware (melding DELETEFAILEDINTERNAL_ERROR), gebruik dan: adb -s $D shell pm uninstall --user 0 com.google.android.youtube.tv.

De afstandsbediening herconfigureren

Zowel Button Mapper als Projectivy vereisen dat hun toegankelijkheidsservices (accessibility services) zijn ingeschakeld. Het volgende commando vervangt de volledige lijst, dus controleer eerst de huidige lijst met adb -s $D shell settings get secure enabledaccessibilityservices en behoud eventuele andere services die je gebruikt:

adb -s $D shell settings put secure enabled_accessibility_services \
'flar2.homebutton/a.i:com.spocky.projengmenu/com.spocky.projengmenu.services.ProjectivyAccessibilityService'
adb -s $D shell settings put secure accessibility_enabled 1

Gebruik voor Projectivy de volledige componentnaam zoals hierboven vermeld. Bij gebruik van de korte vorm (com.spocky.projengmenu/.services...) geeft Projectivy aan dat de service niet is ingeschakeld, terwijl deze wel draait.

Android schakelt toegankelijkheidsservices soms uit. Door Button Mapper de permissie WRITESECURESETTINGS te geven, kan de app zichzelf weer inschakelen. Door de app uit te sluiten van batterijoptimalisatie, blijft deze responsief:

adb -s $D shell pm grant flar2.homebutton android.permission.WRITE_SECURE_SETTINGS
adb -s $D shell dumpsys deviceidle whitelist +flar2.homebutton

Koppel vervolgens in Button Mapper de YouTube-knop aan SmartTube.

Opruimen

Terwijl je verbonden bent, kun je de animaties versnellen en enkele Google-apps uitschakelen die je waarschijnlijk niet gebruikt:

Animaties versnellen:

for k in window_animation_scale transition_animation_scale animator_duration_scale; do
adb -s $D shell settings put global $k 0.75
done

Onnodige apps uitschakelen:

for p in com.google.android.videos com.google.android.play.games \
com.google.android.feedback com.google.android.partnersetup; do
adb -s $D shell pm disable-user --user 0 $p
done

Alle wijzigingen kunnen ongedaan worden gemaakt met adb shell pm enable <package> (of adb shell cmd package install-existing <package> voor YouTube). Schakel draadloos debuggen uit wanneer je klaar bent.

Het resultaat is een systeem zonder banners, zonder advertenties en met een afstandsbediening die de apps opent die je daadwerkelijk gebruikt.