Thursday, November 12, 2026

Automating Android TV debloating with cleanyourtv

Automating Android TV debloating with cleanyourtv

cleanyourtv is a Python-and-shell toolkit that strips manufacturer bloatware and ad rows from Android TV and Google TV sets over Wi-Fi using standard adb tooling, then installs a clean custom launcher — all fully reversible, for owners of their own devices.

ToolGathin23/cleanyourtv — an agent-driven Android TV/Google TV debloating and launcher-replacement toolkit using adb and pm disable-user
CategoryDevice hardening / bloatware removal / smart TV privacy
Primary UseOwners of Android TV and Google TV devices disable telemetry, sponsored content rows and preloaded junk packages via pm disable-user, then replace the ad-driven home screen with a minimal launcher — with a one-line restore
Safe UseIntended exclusively for devices you own or are authorized to manage; nothing is uninstalled, every change is recorded and reversible via the bundled restore script, making it a defensive hardening tool for personal or fleet-owned televisions
Telemetry NoteThis tool removes telemetry rather than creating it; on the TV side it leaves a backup file, disabled packages and a non-default launcher — all visible in the TV's developer options and package list

cleanyourtv is one of those rare repositories that turns a genuinely unpleasant consumer experience — a smart TV home screen sold to advertisers — into a fifteen-minute automated job. Written primarily in Python with a substantial shell-script layer, it targets any television running Android TV or Google TV, which means it rides on the same Android Debug Bridge (adb) that ships on every Android phone. The project has racked up remarkable traction: roughly 57,000 stars, a #1 trending week on trendshift.io, press coverage across TechCrunch, TechRadar and XDA, and translated READMEs in over a dozen languages including Hebrew, Chinese, Vietnamese, Ukrainian and Portuguese. The repo metadata tags it with adb, bloatware-removal, privacy and a self-aware vibe-coding — a hint at its most distinctive design choice.

That choice is that cleanyourtv is built to be operated by a coding assistant rather than a human typing commands. The README positions the workflow around PROMPT.md: you clone the repo, open it in Claude Code, Codex, Gemini CLI, Antigravity CLI or DeepSeek Harness, paste the prompt, fill in your TV model, and the agent does the rest. This is not a gimmick — it is an architectural answer to the hardest problem in TV debloating, which is that bloat differs wildly between the 468 TV models and 126 brands the project documents. Instead of shipping a static blocklist, the prompt has the assistant discover what is actually installed on your set and ask before touching anything you might use, such as the voice assistant, Chromecast or system updates.

The mechanics are deliberately conservative. The three-phase pipeline is Back up, Disable, Install: first the tool records the installed package list and settings, then it disables manufacturer telemetry, ad services, content rows and preloaded junk using pm disable-user, and finally it builds and installs a small native launcher as the default home. The critical property of pm disable-user — versus uninstalling — is that nothing is deleted, so a restore script can undo every single step with one line if you change your mind. No root, no USB cable, no permanent modification. The agent reuses the repo's own tools/disable.sh and launcher/build-and-install.sh rather than improvising its own scripts, which is where the backup, a Home guard and the restore record live.

Connectivity is over Wi-Fi: the computer and TV share a network, and the TV needs USB debugging (or a Network/ADB debugging toggle, where present) enabled in developer options after the classic tap-on-Build-seven-times ritual. The build environment expectations are specific and worth noting — Python 3, a JDK from 17 through 22, and Android SDK platform 34 with build-tools 34, because the launcher is compiled on the spot. For users without a coding agent, the repo explicitly offers a manual path, and independent developers have built free community apps for Android phones, Mac and Windows on top of the same per-model package lists.

The launcher itself is the visible payoff, and the README documents it lovingly. It mimics an Apple TV home: a pitch-black screen with a rounded dock of four favourite apps, a top shelf that names the focused app in large type with an ambient glow sampled from its artwork, the remaining apps in a grid that slides up on Down, and a single floating glass highlight that springs tile to tile. Three frosted buttons expose Inputs — HDMI ports with connection state, AV and Live TV — network status and Settings. Typography is Google's Outfit font, paired with a drifting Clock screensaver designed to avoid burn-in. An optional stats line (CPU, free memory, free storage) is off by default and only refreshes while Home is on screen, a nice touch of restraint.

Extensibility is handled through themes and module cards. Themes change colours, wallpaper, dock shape and column count without a rebuild — pushed via tools/theme.sh and defined in each theme's config.json, so the same binary can render the bundled aurora wallpaper theme or a six-column, six-app-dock layout. Module cards let third-party apps plug a tile into the home screen, but only with explicit user approval, which keeps the permission model aligned with the project's whole anti-nag philosophy. Tile rearrangement is hold-OK → Move, and an App library view restores any removed app to Home with one press.

Platform support is honestly documented, including its limits. Fire TV gets the debloat half only, because Fire OS refuses to hand Home to a third-party launcher — and the 2015 Fire TV Box on Fire OS 5 rejects every pm route entirely. A few China-market TCL sets refuse to install any launcher at all, and their per-model lists say so in the header. Samsung's Tizen, LG's webOS, Roku, Vizio and Hisense VIDAA sets lack adb altogether, so the project instead publishes remote-only tracking-shutdown guidance. The repo even includes docs/devices/samsung-tizen.md documenting what a 2021 Samsung set answers over Wi-Fi — presumably reconnaissance for a possible port — and a showcase of four webOS launcher ports.

What makes the project robust at scale is its community data model: tested package lists from contributors live one folder per model under examples/, with TCL (85 lists), Sony (50), Xiaomi (44), Philips (23) and Skyworth (17) leading, generated into the website tables by tools/gen_tables.py from each device's tv.json. This is effectively a crowdsourced map of which vendor packages are safe to disable on which hardware — a dataset with defensive value beyond the launcher, since it doubles as an inventory of what telemetry vendors actually preload.

From a security-operations perspective, this is a hardening tool, not an attack tool: every action it takes is scoped to a device you explicitly paired with over adb, gated by an on-screen authorization prompt on the TV, recorded, and reversible. The trust posture of the repo itself deserves mention too — the README warns that copycat domains like cleanyourtv.com and clean-your-tv.net are not run by the project, and that no official app exists in any app store. That kind of explicit impersonation warning is unusual and welcome in a repo this popular.

For an authorized professional, cleanyourtv is best understood as a repeatable, evidence-backed answer to smart TV sprawl: it produces a backup, makes surgical pm disable-user changes, verifies its work with screenshots pulled from the TV, and leaves an audit trail you can restore from. Whether you are cleaning one family television or a lab full of vendor test units, it converts a tedious, model-specific chore into a documented, agent-assisted workflow — and its per-model dataset is a useful reference for anyone auditing what Android TV vendors ship by default.

Official project repository for Gathin23/cleanyourtv.
Download Tool

Educational analysis for authorized security professionals. Use only in controlled, authorized environments.

Sponsored
Share articleFacebookXLinkedIn

Continue exploring

Browse all articles →

0 comentários:

Post a Comment

Note: Only a member of this blog may post a comment.