BLACKFYRE
MG—01
LANG
←
ALL POSTS
05 · Writing / 2026
21 OCT 2026 · 6 MIN READ

My TV Keeps Trying to Sell Me Things

Coding agents are stripping ads and tracking from Android TVs over ADB. What CleanYourTV and dumbtv do, and why my Samsung is out of reach.

An agent's ADB commands clearing a TV home screen
CONTENTS
05 +

The TV in our living room tries to sell me something before it lets me reach the HDMI input I bought it for. Nobody in my family has ever clicked one of those tiles, and the AdGuard DNS filter on our home network already blocks most of what they try to load. The home screen is still full of rows nobody asked for and apps nobody installed. Last week a few thousand people cleared that out of their own sets in an afternoon. They gave a coding agent the TV’s model number and let it find the set on the Wi-Fi.

It started with a post on X on 17 October. Gathin T. had sat down at his parents’ Xiaomi TV, which “was showing a sponsored ad before you could even get to Netflix”, and left the rest to Claude Code, which took out 25 Xiaomi packages and wrote a new launcher. “Looks like an Apple TV now lol.” The replies filled with people doing the same to their own sets, and the prompt he published grew into CleanYourTV. Four days later it lists tested package lists for 147 models from 49 brands, most of them sent in by those people.

How it works

It works because an Android TV is an Android device underneath, with the same debug bridge as a phone. Press the build number seven times to unlock developer options, switch on ADB debugging, allow the computer once, and ADB gives you a shell over the network. The rest is ordinary Android housekeeping. pm disable-user switches a package off without deleting it, so the manufacturer’s ad services and content rows stop running while a restore script can still bring every one back. A new launcher then takes over the Home button, which leaves the sponsored rows nowhere to appear. CleanYourTV leaves the hunting to the agent, because the bloat differs from brand to brand, and has it ask before it touches anything you might use. dumbtv, by Muzzammil Yasin Sabuwala, is more opinionated and spells out what it switches off on a Fire TV:

  • automatic content recognition (ACR), which fingerprints whatever is on the screen to report what you watch
  • the advertising ID and the sponsored rows
  • watch-time analytics and the A/B experiment engines
  • Alexa and the microphone app
  • the promotional screensaver and the update helpers

It snapshots the TV’s settings before the first pass, so a restore puts back the values that set actually had. It also replaces Amazon’s home screen with a 45 KB launcher of its own that has no internet permission at all.

What a DNS filter can’t reach

A DNS filter only reaches the network side of this. AdGuard answers a blocked domain with an empty address, so a sponsored tile has no picture to load and a tracking call goes nowhere. The launcher that wants to show the tile is still the home screen, the apps nobody installed are still there, and the ACR service still fingerprints the screen, even if it can’t report what it saw. Filtering has side effects too. CleanYourTV’s notes on the Freebox Player POP, an Android TV box from the French operator Free, record AdGuard DNS blocking pixel.spotify.com. The Spotify app then decides the network is down, and it stays broken after the filter is lifted until its data is cleared.

My Samsung, and the box plugged into it

None of this helps my TV. It’s a Samsung, and dumbtv’s table puts Samsung, LG, Roku and the rest on a single line: “no shell, no path”. Tizen and webOS give an owner nothing like ADB, so the advice that’s left is to “block it at the router, or boot the TV straight into HDMI”. AdGuard already covers the first. The second turned out more interesting than it sounds, because the box at the other end of our HDMI cable is Magyar Telekom’s IPTV receiver, the Telekom TV SmartBox. It’s an SEI800DT built by SEI Robotics, and it runs Android TV 12 on firmware Telekom last updated in April 2026. Its home screen is Telekom’s own, with rows of film premieres, so it’s the same kind of device as the Freebox: an operator box whose launcher probably lives in the same packages as the live TV. It’s also rented, which means the one device in the room that could be cleaned up belongs to the company that fills its home screen. Nobody has added it to CleanYourTV’s catalogue yet.

This is territory the EFF has been on for years. Back in 2015 it argued that users need the ability to teach smart TVs new lessons, and its Opt Out October tips still come down to switching off ACR and the advertising ID in the settings, the one fix that works on a Samsung too. It matters more than it sounds: a 2024 study of Samsung and LG sets found ACR fingerprinting the picture even when the TV was only a display for an HDMI source, which in our living room means the Telekom box’s output, and that opting out stopped the traffic to the ACR servers.

Where it goes wrong

The tools appeared on 17 and 18 October, and the people using them have already found the edges. TechCrunch reports that Claude sometimes refused a request as bare as “hack my TV”, so people learnt to describe what they wanted instead. One user bricked an Android TV with Claude’s help, and another got stuck halfway through a Fire TV. An agent with a shell can switch off a package the TV needs as easily as one it doesn’t, so the careful projects build their restraint into the repository. dumbtv takes its snapshot before it changes anything, disables packages rather than uninstalling them, and won’t replace the operating system at all, because every current TV has a signed boot chain and “pretending otherwise is how people brick their TVs”. It also notes that a factory reset undoes everything it did, which on a rented box is the way out I’d check first.

Wrapping up

We’ve put up with this visual pollution for as long as TVs have had home screens, looking past the rows of things to buy on the way to the input we wanted. Switching packages off over ADB has been possible for years. What stopped most owners was the evening it takes to work out which of the dozens of packages on a given model are safe to touch, and that’s the part an agent now does in about fifteen minutes. The catalogue in CleanYourTV keeps what a few thousand people learnt doing it, so the next owner of the same set starts from their list. My Samsung stays out of reach. The Telekom box plugged into it may not, and in November I’ll find out what’s on it.

CITE THIS POST

Referencing this in a paper or thesis? Here’s a BibTeX entry.

galicz2026keeps.bib
BIBTEX
1@misc{galicz2026keeps,
2 author = {Galicz, Mikl{\'o}s},
3 title = {{My TV Keeps Trying to Sell Me Things}},
4 year = {2026},
5 month = oct,
6 howpublished = {\url{https://blackfyre.ninja/blog/my-tv-keeps-trying-to-sell-me-things/}},
7 url = {https://blackfyre.ninja/blog/my-tv-keeps-trying-to-sell-me-things/},
8 urldate = {2026-10-21},
9 note = {Blog post, blackfyre.ninja}
10}
TAGS
06 · CONTACT

Have a system that needs building?

GET IN TOUCH → PROJECTS →
PRODUCT DATA SHEET
MG—01
BLACKFYRE
S/N MG-1985-1027
Miklós Galicz — Golang Advocate · Solution Architect
MODEL
MG—01 "Miklós Galicz"
SERIES
1985
ORIGIN
Nagykovácsi, Hungary
FUNCTION
Senior Full Stack Engineer · Solution Architect
CORE LANGUAGES
Go · PHP · JavaScript
SPOKEN
Hungarian · English · German
SERVICE LIFE
~20 years in software, ongoing
POWER SUPPLY
Coffee, 2–4 cups / day
DIMENSIONS
1 × human, standard size
OPERATING TEMP.
Calm under production incidents
CONNECTIVITY
[email protected] · github.com/blackfyre · linkedin.com/in/galiczmiklos
Less, but better. Specifications subject to continuous improvement.
● ● ●