How to Debloat Google TV (Unofficial Guide)
Google TV adds its own search bar, sponsored rows, and a first-run setup wizard that can fight you for the Home key. Here's how to debloat Google TV cleanly using the open-source cleanyourtv project, and the specific traps to avoid.
Updated October 20, 2026 · Unofficial guide
Google TV is the newer, tile-based interface Google layers on top of Android TV — the version with a persistent search bar, a "For you" row, and a lot more sponsored content than the plainer Android TV skins it replaced. If you're trying to debloat Google TV specifically (as opposed to older Android TV), the good news is the mechanism is the same ADB-over-Wi-Fi approach described in our general Android TV debloat guide. The bad news is Google TV has two or three brand-new ways to shoot yourself in the foot that plain Android TV doesn't, all centered on one package: the setup wizard. This is an unofficial guide to the open-source cleanyourtv project, not an official Google product.
pm disable-user, never uninstall. Keep the debloat list you applied so tools/restore.sh can undo it exactly, and turn Wireless debugging back off once you've finished.
What makes Google TV different to debloat
Under the hood, a Google TV set is still Android TV — same package manager, same pm disable-user, same ADB debug bridge on port 5555. What changes is the stock software stack: the launcher is com.google.android.apps.tv.launcherx instead of a manufacturer skin, and behind it sits a first-run setup wizard, com.google.android.tungsten.setupwraith, that most Android TV builds don't ship at all. Debloating Google TV safely means understanding what that wizard owns before you touch it.
Step 1: Turn on Wireless debugging
On most Google TV sets, Developer options exposes a toggle literally called Wireless debugging rather than a generic USB debugging switch (Settings → Device Preferences → About → press OK on Build seven times → back → Developer options → Wireless debugging). Turning it on opens network ADB the same way USB debugging does on older Android TV builds, so the two terms are mostly interchangeable in cleanyourtv's docs.
Pairing when there's no plain connect option
A few Google TV sets — a Skyworth-built Philips among them — never open plain port 5555 from the toggle alone. For those, pair once through the stock adb binary first:
adb pair 192.168.1.50:<pairing-port> <code>
adb connect 192.168.1.50:<connect-port>
adb -s 192.168.1.50:<connect-port> tcpip 5555 The pairing code and port appear on the TV screen under Developer options → Wireless debugging → Pair device with pairing code; the IP and port for the already-paired connection sit just above it. If you'd rather discover the pairing port from the command line, adb mdns services (or dns-sd -B _adb-tls-pairing._tcp on macOS) lists it while the code is on screen. Once adb tcpip 5555 succeeds, cleanyourtv's own tools/tv.py connects on port 5555 from then on — until the next reboot, at which point you pair again. Android also switches Wireless debugging off whenever Wi-Fi drops, so if the TV goes offline mid-session, turn it back on from the TV and adb reconnects without needing a new code.
Step 2: Find launcherx and decide the disable order
Google TV's stock launcher is com.google.android.apps.tv.launcherx. To debloat Google TV's home screen, you install cleanyourtv's replacement launcher first, confirm it's actually receiving the Home key, and only then disable launcherx:
TV_HOST=192.168.1.50 launcher/build-and-install.sh The install script checks which package currently answers the Home intent before disabling anything, because cmd package set-home-activity can print "Success" on Google TV without actually changing which app owns Home — the only reliable test is watching what happens when Home is pressed.
Step 3: The setupwraith gotcha
This is the single most common way a Google TV debloat goes sideways. After launcherx is disabled, you'd expect the new launcher to own Home outright. Instead, on several Google TV 14 sets (Xiaomi's MiTV-MOOR2 among them), a different system package grabs Home: com.google.android.tungsten.setupwraith, the first-run setup wizard, whose .RecoveryActivity sits at a higher intent-filter priority than anything a sideloaded app can outrank. pm disable-user on just one of its components is refused with a security exception — the fix is disabling the whole package:
tools/tv.py 'pm disable-user --user 0 com.google.android.tungsten.setupwraith' Disabling the full setup wizard is harmless for everyday use — it only exists for the first boot — but list it in your debloat.txt so tools/restore.sh re-enables it later; you'll want it back before a factory reset.
Check Wi-Fi ownership before you disable it
On Google TV, the network joined during first-run setup can belong to setupwraith rather than the system, and Android deletes an app's saved Wi-Fi networks the moment that app is disabled. That means disabling the wizard can drop the TV off Wi-Fi entirely — ADB, screenshots, and even the phone remote stop working, and a restart doesn't bring the network back on its own. Check before you touch it:
tools/tv.py "dumpsys wifi" | grep -o 'cname=[^ ]*' If that line names setupwraith, forget the saved network and rejoin it from the TV's own Settings → Network & Internet first (it then belongs to android.uid.system and survives the disable). Cleanyourtv's tools/disable.sh skips setupwraith automatically while it still owns the network, unless you override it with FORCE_SETUPWRAITH=1. If a TV is already offline because of this, reconnect it with its own remote or a USB keyboard, then re-enable Wireless debugging.
The crash-loop variant
A related failure mode shows up on Google TV 14 (seen on a Xiaomi MiTV-MZTU0): setupwraith's .RecoveryActivity takes Home and system_server crash-loops trying to start it, repeatedly, every couple hundred milliseconds. Cleanyourtv's install script avoids this by starting the new launcher and confirming it owns Home before disabling the stock one, and setting the Home preference last. If you're already caught in the loop, this one command breaks it:
tools/tv.py 'pm enable --user 0 com.google.android.apps.tv.launcherx' Then disable setupwraith by itself, confirm the new launcher owns Home, and disable launcherx again.
Google TV devices this applies to
cleanyourtv's tested lists cover Chromecast with Google TV (sabrina), the onn 4K Streaming Box, and Google TV builds from TCL, Sony, Xiaomi, Philips, BenQ, CHiQ, Skyworth and more — any device running the Google TV interface rather than a plain Android TV launcher. A few examples:
- Chromecast with Google TV 4K (sabrina) — Google TV 14, one of the simplest ADB-over-Wi-Fi debloats in the set.
- onn 4K Streaming Box (2023, Walmart) — Google TV 14, Amlogic hardware.
- TCL 55S470G / TCL G10 Google TV sets — Google TV 12, the same family that first surfaced the setupwraith crash-loop.
- Sony BRAVIA 9 II and BRAVIA BF1 — Google TV 14, among the newest sets in the project's 80 tested lists.
Browse brand pages for the full tested lists: TCL, Sony, Xiaomi, Philips, or see every model cleanyourtv has tested. Google TV sets also show up under other brands in the same 80-device set — BenQ, CHiQ, Hisense, Skyworth and onn all ship at least one Google TV model alongside their plainer Android TV lines, and the debloat packages overlap heavily across them since most run the same MediaTek or Realtek reference platforms with a thin brand skin layered on top of the same Google TV launcher and setup wizard described above.
After you debloat Google TV
Once the new launcher owns Home and setupwraith is handled, grant the location permission the network pill needs (Android 10+ requires it to read the Wi-Fi name, and a reinstall or pm clear drops it):
tools/tv.py 'pm grant com.gathin.tvhome android.permission.ACCESS_FINE_LOCATION' Then turn Wireless debugging back off in Developer options — the launcher and the rest of Google TV keep working fine without it. If something feels off after you debloat Google TV, restoring the TV replays the exact pre-change record, and our broader Android TV debloat guide covers the parts of the process that aren't Google TV-specific, like developer options and small-batch disabling.