# android-tv-debloat-toolkit: stripping bloatware off an Android TV with ADB

> This is a small Python and PySimpleGUI program that connects to an Android TV over wireless ADB, removes the preinstalled apps the manufacturer shipped, and pushes your own APKs. Version 1.2 removed the bundled executable and rewrote the shell calls, and the project says plainly that it is not actively maintained.

**seun-novodev/android-tv-debloat-toolkit** — Lightweight toolkit to debloat, install APKs, and customize Android TV devices.

- Repository: https://github.com/seun-novodev/android-tv-debloat-toolkit
- Stars: 770 · Forks: 29
- Language: Python
- License: MIT
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/seun-novodev-android-tv-debloat-toolkit

## A small script, and a frank maintenance note

The android-tv-debloat-toolkit is a lightweight Windows application for debloating TCL and Google Android TV devices, installing APKs and customising the TV experience, built with Python and PySimpleGUI.

The maintenance status is stated at the top rather than buried. The project is not actively maintained, it works as described, and issues are read, but updates and responses may be slow. Pull requests are welcome, and the reason given is that the source code is short and straightforward.

That combination is unusual and useful. An unmaintained project is normally a liability, but a project that is one Python file with a small dependency is different from an unmaintained framework, because you can read it, change it and run it yourself. The top level of the tree reflects that: a LICENSE, the README, an adb/ directory with the platform tools, a banner image, run_toolkit.py, run_toolkit.pyw which is the same thing set up for a windowed launch, and a scripts/ directory.

The feature list is short. Connect to Android TV over Wi-Fi with ADB wireless. Pair and connect for Android 11 and later, or for a Chromecast with Google TV, using wireless debugging. Debloat TCL and Google bloatware. Remove the Google TV recommendations. Install APKs remotely, with FLauncher included. Disable the Google Launcher safely, after installing a custom launcher. And reboot the TV remotely.

The project is MIT licensed, the default branch is main, and the last push was on 2026-06-28 with version 1.2 published the same day, after 1.1 and 1.1.1 in April 2025.

## Why antivirus flagged it, and what changed in v1.2

The README has a section headed with a question about antivirus false positives, and it is the most useful part of the document because it explains a real constraint of the PyInstaller distribution model.

The claim is that there is no trojan, spyware or malicious code in the project. Previous versions included a pre-built run_toolkit.exe, and the README attributes the antivirus warnings to three things, none of which involve actual malware.

The first is PyInstaller packaging, which bundles a Python runtime and unpacks itself into a temporary folder at launch. That self-extracting behaviour is the same as how some malware operates, so heuristic scanners flag it even when the code inside is clean. The second is shell command execution, because the old code used os.popen() to run ADB commands, passing them through the Windows shell, and a scanner seeing a GUI program silently spawning shell processes treats that as suspicious. The third is the bundled ADB binaries, since shipping adb.exe inside a zip alongside an unsigned executable is another common pattern that triggers heuristic detection.

What changed in version 1.2 is specific. The pre-built executable has been removed from the repository entirely, and you run the toolkit from the Python source with nothing packaged. All shell commands were rewritten to use Python's subprocess module with explicit argument lists and no shell involvement, which the README notes is both safer and less suspicious. And input validation was added so no data typed by the user is passed unvalidated to a system command.

So the answer to a scanner that flagged the old build is a bit awkward but honest. The old artefact looked like malware to a heuristic, and the fix was to stop shipping the artefact. The README invites you to read run_toolkit.py yourself and says it is short, does exactly what it says, and that is a reasonable thing to check before you point a tool at your television.

## Connecting to the TV, and the two ways to do it

There are two connection paths, and which one you need depends on your device.

For a standard Android TV, such as a TCL set, an Onn box or an Nvidia Shield, you click Connect to TV and enter the TV's IP address, which you find under the settings for network information.

For Android 11 and later, or a Chromecast with Google TV, you enable Wireless Debugging in Developer Options, which is separate from ADB Debugging, and then click Pair and Connect for Android 11 and Chromecast. That dialog asks for the IP, the pairing port, the pairing code and the debug port, all of which are shown on the TV's Wireless Debugging screen.

The distinction exists because the wireless debugging flow is a two stage handshake, pairing first and then connecting, and the older flow is a single step. The FAQ states the toolkit is designed for devices that support ADB debugging, naming TCL TVs, Onn 4K boxes and the Nvidia Shield TV, with Chromecast with Google TV supported through the pairing option.

The requirements are modest but not optional. You need Windows 10 or 11, Python 3.8 or later, the TV with Developer Options enabled and ADB Debugging turned on, and the TV and the PC on the same Wi-Fi network.

Enabling Developer Options is the step everybody does first. You go to the settings for device preferences, then About, then Build Number, and click it seven times. Then you go back to Developer Options and turn on ADB Debugging.

## The two debloat modes, and why the order matters

The toolkit offers four functions once you are connected, and the README is explicit about which to run first.

Safe Debloat is the recommended first run, and it removes common bloatware safely. Advanced Debloat offers more options with risk ratings attached, using a three-level scale of safe, caution and critical. Install APK pushes apps directly to the TV. And Disable Google TV Launcher is the dangerous one, with the instruction to only do it after installing a backup launcher.

The FAQ frames the risk the same way, saying to always start with Safe Debloat, which only removes known bloatware, and that Advanced mode shows risk ratings for each item.

The order of operations is not a formality. If you disable the Google TV Launcher before a replacement is installed and working, the TV has no home screen, and on many sets the only way back is a factory reset, which is a remote wipe of your settings and installed apps. The README handles this by making the backup launcher step a documented procedure with its own numbered list.

That procedure is: download the FLauncher APK from APKPure, use the Install APK button to push it to the TV, open FLauncher from the Apps list to confirm it works, and only then use Disable Google TV Launcher. The README notes that FLauncher is open source, ad-free and maintained by the community.

## Running from source instead of an executable

The setup is five steps and there is no installer.

You download and install Python 3.8 or later from python.org, and during the installation you check Add Python to PATH. You then install the one dependency from a command prompt:

```
pip install PySimpleGUI
```

There is a licensing note on that dependency, and it is worth reading. PySimpleGUI version 5 and later requires a free account at PySimpleGUI.com to suppress the licence prompt. No payment is needed for personal use, you sign up and the prompt goes away.

Next you download the project from the green Code button on the repository page, choosing Download ZIP, and unzip it anywhere. Then you enable ADB on the TV as described, and finally you run it from a command prompt in the project folder:

```
python run_toolkit.py
```

or you double-click run_toolkit.py if Python is associated with .py files on your system.

The FAQ restates the dependency in one line: yes, you need Python 3.8 and the PySimpleGUI library, and this replaced the old executable approach to eliminate the antivirus false positives.

There is a detail in the troubleshooting section that catches people out. If you get an adb not found error, the toolkit looks for ADB in the adb/ folder next to the script, so you have to unzip the full project rather than just the Python file. And if the bundled adb.exe is 32-bit on a 64-bit Windows, you replace the files in that folder with the latest 64-bit version from Google's platform tools, copying adb.exe, AdbWinApi.dll and AdbWinUsbApi.dll in.

## Where this toolkit is the wrong choice

The first wrong case is a device you cannot reflash. This is a tool that removes system packages and disables the home launcher over ADB. A mistake, a partially applied package removal, or a launcher disabled without a working backup can leave a TV that boots to nothing. The mitigations are sensible, start with Safe Debloat, read the source, install a backup launcher first, but they are mitigations rather than a transaction, and there is no rollback in the tool.

The second is a device you do not own and cannot modify. Factory reset, which is the recovery path, wipes settings and installed applications. On a shared or rented device that is not your call to make.

The third is a phone or a tablet. The tool is built around Android TV, the TCL and Google bloatware lists, and the Google TV recommendations, and the FAQ is explicit that it is designed for devices supporting ADB debugging on TV form factors. A general Android debloat tool with a larger package list is a different project.

The fourth is a long-term dependency. The README says the project is not actively maintained and that responses may be slow, and the version line shows a two year gap between 1.1 in April 2025 and 1.2 in June 2026. A Python script you can read is fine to depend on, but the ADB package lists inside it will drift as the manufacturers update their firmware, and nobody is tracking that for you.

The alternative worth weighing is doing it by hand over adb shell pm uninstall, which is what the script does internally and what a reader with the source can do selectively. The value of the toolkit is the curated package lists and the risk ratings, so if you do not want its list, you do not need the program.

## Conclusion

Adopt this toolkit if you have a cheap Android TV with preinstalled apps you do not want and you are comfortable with ADB, since the safe debloat path is conservative and the project tells you to start there. Keep away if you want a maintained tool or a device you cannot afford to brick, because the README states the project is not actively maintained, and the risk of disabling the Google TV Launcher without a working backup is that the device becomes unusable. Before you run anything, read the source, since the README encourages exactly that, and install a backup launcher such as FLauncher first so you are not one failed step away from a device with no home screen.

## FAQ

### What does the Android TV Toolkit do?

It connects to a TCL or Google Android TV over wireless ADB, removes the preinstalled bloatware, removes the Google TV recommendations, installs APKs remotely, disables the Google TV Launcher and reboots the device. It offers a Safe Debloat mode that removes only known bloatware and an Advanced mode with per-item risk ratings.

### Why did antivirus software flag this toolkit as a trojan?

Earlier versions shipped a PyInstaller-built executable that unpacks a Python runtime at launch, ran ADB commands through os.popen and the Windows shell, and bundled adb.exe beside an unsigned binary, and all three are patterns heuristic scanners flag. Version 1.2 removed the executable from the repository, rewrote the shell calls to use subprocess with explicit argument lists, and added input validation.

### How do I run the Android TV Toolkit?

Install Python 3.8 or later with the Add Python to PATH option, run pip install PySimpleGUI, download and unzip the project, enable Developer Options and ADB Debugging on the TV, then run python run_toolkit.py from the project folder. The bundled ADB lives in the adb/ folder next to the script, so unzip the whole project.

### Is it safe to disable the Google TV Launcher with this tool?

Only after you install a working backup launcher, and the README gives the order: download FLauncher, push it with the Install APK button, confirm it opens from the Apps list, and only then disable the Google TV Launcher. Otherwise the TV can end up with no home screen and need a factory reset.

## Sources

- [Issues](https://github.com/seun-novodev/android-tv-debloat-toolkit/issues)
- [License: MIT](https://github.com/seun-novodev/android-tv-debloat-toolkit/blob/main/LICENSE)
- [README](https://github.com/seun-novodev/android-tv-debloat-toolkit/blob/main/README.md)
- [Releases](https://github.com/seun-novodev/android-tv-debloat-toolkit/releases)
- [seun-novodev/android-tv-debloat-toolkit on GitHub](https://github.com/seun-novodev/android-tv-debloat-toolkit)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/seun-novodev-android-tv-debloat-toolkit
