ATV-deJunker
One script to debloat your Android TV. Replace the stock launcher, remove bloatware, install your streaming apps, disable ads. Fully automated via ADB over WiFi.
The Problem
Android TV ships with junk
Android TV devices come loaded with bloatware, recommendation rows that are really ads, and a stock launcher designed to promote Google's content over yours. You can't uninstall most of it through the UI. The home screen shows content you didn't ask for, apps you don't use, and "suggestions" that are paid placements.
The only way to clean it up is via ADB — Android Debug Bridge — which requires enabling developer mode, connecting over WiFi, and running package management commands one at a time. For a non-technical user, this is impractical. Even for a technical user, doing it manually is tedious and easy to get wrong.
The Solution
One command, clean TV
ATV-deJunker is a single bash script that automates the entire cleanup process. Connect to your TV via ADB over WiFi, and the script handles everything: installing your streaming apps, replacing the stock launcher with AT4K, removing bloatware, disabling ads, and rebooting into a clean experience.
The script is interactive where it needs to be (prompting for the TV's IP, waiting for Play Store installs) and automated where it can be (package removal, settings changes, launcher swap).
What It Does
The script runs through six stages:
1. Connect — prompts for the TV's IP address, connects via ADB over WiFi, waits for RSA key authorisation, and verifies the device model and Android version.
2. Install streaming apps — installs Netflix, Prime Video, Apple TV, YouTube, Plex, and Disney+ via install-existing (if the app is in your Google account) or opens the Play Store on the TV for a single-tap install.
3. Install AT4K launcher — installs the AT4K launcher (recommended via Google Play Store) and sets it as the default home activity. AT4K provides a clean, customisable home screen without ads.
4. Disable stock launcher — disables the Google TV launcher so it can't reclaim the home button. Recoverable with one ADB command if needed.
5. Debloat — removes 11 bloatware packages including home screen recommendation ads, Live Channels, Play Games, YouTube Music, Google Assistant TV, OEM telemetry, and regional preloads (meWATCH, Viu for Singapore devices).
6. Apply settings — disables tv_home_panel_enabled (sponsored home content) and limits background processes to reduce memory pressure on constrained hardware.
Recovery
If anything goes wrong, recovery is two commands:
adb shell pm install-existing com.google.android.tvlauncher
adb shell pm enable com.google.android.tvlauncher
This reinstates the stock launcher from the system partition. No data is lost — pm uninstall -k --user 0 removes packages for the current user only, preserving the system copy.
Design Decisions
-
ADB over WiFi, not USB — Android TV devices rarely have accessible USB ports. WiFi debugging is universally available once developer mode is enabled, requires no cables, and works from any machine on the same network.
-
Interactive where necessary — the script can't automate Play Store installs for apps not in your Google account. Instead, it opens the Play Store page on the TV and waits for you to press Install, then Enter to continue. Human-in-the-loop where automation isn't possible.
-
Conservative package removal — uses
pm uninstall -k --user 0which removes the package for the current user only. The system copy remains on the partition. A factory reset or theinstall-existingcommand brings everything back. No permanent damage possible. -
macOS-compatible timeout — macOS doesn't ship
timeout(1). The script triesgtimeout(coreutils), thentimeout, then falls back to a pure bash background-job approach. Works on macOS, Linux, and WSL without additional dependencies. -
No AT4K APK bundled — the script recommends installing AT4K via the Google Play Store for automatic updates. Manual APK sideloading is supported as a fallback but not the default path.
Current Status
ATV-deJunker handles the complete debloat pipeline. Re-run after any OTA firmware update — manufacturer updates can reinstate removed packages.