Android TV Debloat: The Complete Beginner's Guide
Preinstalled apps can add sponsored rows and background services to your TV. On supported firmware, you can disable selected apps from your computer over your local network — no root, no flashing, nothing uninstalled — and matching restore commands can re-enable disabled apps if ADB remains accessible.
Before you start
- Have a Windows, macOS or Linux computer, the TV’s working remote, and access to its Settings. This website only generates text; opening it on a phone does not run ADB on your TV.
- Find your exact device list and compare its Android version and firmware with Settings → About. A similar model is not a confirmed match.
- Decide which features to keep: voice search, casting, phone remote, screen reader, screensaver and firmware updates. Review their app notes before selecting anything.
- Keep a working way back to Settings. If changing the home screen, install, configure and test a replacement launcher before disabling the original.
How it works
Android TV uses Android Debug Bridge (ADB). Available USB, network and wireless debugging modes depend on the model and firmware; enabling USB debugging alone does not always open a network port.
Once connected, pm disable-user --user 0 <package> disables an allowed package in user 0:
the firmware image is untouched. pm enable --user 0 <package> re-enables it if you still have ADB access.
Allow about 30 minutes for setup and an initial review; pairing and firmware differences can take longer. Read your device’s notes before starting.
Step 1 — Unlock developer options on the TV
Settings → Device Preferences → About → press Build number seven times. Then Developer
options → enable USB debugging. Some sets also have a separate “Network debugging” or
“ADB debugging” toggle — turn that on too.
Step 2 — Connect from your computer
Install the current Android SDK Platform Tools from Google and open a terminal in the extracted folder. Run adb version to check the tool is available (Windows PowerShell may require .\adb.exe; macOS/Linux may require ./adb).
Network debugging: if your firmware exposes an ADB network endpoint, enable it, find the TV’s local IP address and use the documented port. For firmware that uses port 5555, this example becomes:
adb connect 192.168.1.42:5555
Approve the authorization prompt on the TV. If connection is refused, check the exact model’s source notes and debugging settings; do not assume that USB debugging opens port 5555.
Wireless debugging with pairing: on firmware that offers this option, choose “Pair device with pairing code.” Use that screen’s IP address and pairing port, then enter its code when prompted:
adb pair <tv-ip>:<pairing-port> adb connect <tv-ip>:<connection-port> adb devices
The connection port shown on the main Wireless debugging screen can differ from the pairing port and can change. For example, Chromecast with Google TV 4K on the documented Android 14 firmware requires pairing first. Keep the computer and TV on a trusted local network, confirm only the intended TV is connected, and turn debugging off when finished. See Google’s ADB wireless connection documentation.
Before continuing, run adb devices. Your intended TV should appear with the status device, as in this example:
List of devices attached 192.168.1.42:5555 device
If the list is empty or says unauthorized or offline, resolve that connection first using the checks below. In every example, replace the IP address and port with the values shown by your TV.
Step 3 — Save an inventory and restore record
adb shell pm list packages > packages-before.txt
This is a package inventory, not a system backup. Download the generator’s matching disable and restore record and confirm it is saved before making changes.
Step 4 — Disable the bloat
Head to your device's list — or build a custom one with the script generator — match its firmware, review the source notes, save both command sets, and run the commands one line at a time. Test Home, the remote, inputs, casting and playback after each change. Two habits worth keeping:
- Copy one complete
adb shell pm disable-user --user 0line from the generated record at a time. Keep the restore section for recovery; do not paste the whole record into the terminal. - Never disable the TV app, input services (HDMI/tuner), the remote or keyboard services, Play Store or Play Services.
A successful disable usually reports new state: disabled-user. Check that the package ID matches the selected app, then test your TV before continuing. If the command fails or a needed feature changes, stop and use the matching restore command.
Step 5 — Restore if ADB remains available
adb shell pm enable --user 0 <package-id>
Replace <package-id> with the exact disabled package ID, or copy its matching restore line from your saved record. Every package page also carries a restore command for user 0. A successful restore usually reports new state: enabled; reopen the affected app or feature and test it again. If ADB and settings are inaccessible, consult the manufacturer’s recovery instructions. A factory reset erases user data; a package inventory cannot restore it.
Connection & command errors
- “adb” is not recognized / command not found
- Open a terminal in the extracted Platform Tools folder. Use
.\adb.exeon Windows PowerShell or./adbon macOS/Linux in place ofadb, including in generated commands. - Connection refused / timed out / no device listed
- Check that the TV is awake, debugging is enabled, and the IP address and connection port are current. Use the same local network; guest-network isolation can block the connection. For Wireless debugging, pair first and use the separate connection port. Port 5555 only applies when your firmware exposes it.
- unauthorized / offline
- For
unauthorized, check the TV for the computer authorization prompt and approve your computer. Foroffline, disconnect that endpoint withadb disconnect <tv-ip>:<connection-port>, reconnect, and checkadb devicesagain. Recheck pairing if required by your firmware. - More than one device/emulator
- Target only the intended TV: replace the initial
adbin each command withadb -s <serial>, using its exact serial fromadb devices. Apply the same target to both disable and restore commands. - Unknown package / SecurityException / permission denied
- Stop and check the package ID and exact firmware list. A package may be absent or protected on your build. Skip it if the firmware refuses the command; do not escalate to root or substitute an uninstall command.
Check your TV & finish
- Test Home, Settings, remote buttons, HDMI/tuner where present, streaming playback, and any casting, voice or accessibility features you use.
- Restore any app whose removal affected a needed feature. After those checks pass, reboot the TV and test again.
- Keep the downloaded record with its model and firmware details. Turn debugging off after testing; turn it back on and reconnect if you need to restore an app later.
What about the launcher?
The biggest visual change comes from replacing the stock launcher, which is what draws the sponsored home screen. Alternatives include FLauncher and Projectivy; CleanYourTV (formerly tv-vibehack) also ships a custom launcher — read our CleanYourTV project and device-list guide. If you disable the stock launcher, install and set a replacement first, or the Home button can land in a factory test app.
Which TVs does this work on?
Android TV and Google TV sets — Xiaomi, Redmi, TCL, Hisense, Sony, OnePlus, Realme, Philips, Nvidia Shield and other compatible models. Match your exact model and firmware to a source list; this site's lists cover only a subset of Android TV and Google TV devices. Samsung Tizen and LG webOS do not use this Android TV workflow. Upstream CleanYourTV also documents debloat-only support for some Fire TV devices, but Fire TV is not currently covered by this site's lists, generator or guide.