The Problem
Android TVs often run slow, display intrusive ads, and collect telemetry. Users also dislike the cluttered Google‑TV home screen. A lightweight, reversible solution that removes ads, stops telemetry, and replaces the home screen with a clean Apple‑TV‑style launcher is lacking.
What This Does
unbloat-android-tv installs a minimal home screen (Zen Home) and disables unwanted services on a target TV.
ecran-accueil/ZenHome.apkis the launcher that replaces Google‑TV.scripts/listes/pubs_telemetrie.txtlists ad‑related packages;scripts/listes/optionnel.txtlists optional services.kit.sh/kit.ps1present a menu that performs diagnostics, backups, unbloat, Zen Home installation, photo replacement, screenshot capture, and full restore.LANCER.*scripts bootstrap the menu by asking for the TV’s IP and invoking the appropriate shell/PowerShell script.
How It Is Wired
ENTRY POINT – LANCER.bat (Windows) or LANCER.sh (Linux/macOS) → calls kit.ps1/kit.sh. CONTROL FLOW –
kit.shreads the IP, verifies ADB connectivity, then enters awhileloop displaying a numbered menu.- Each menu number maps to a function defined in the same script:
diag→adb shell dumpsys→ outputs Android version, RAM, CPU, Wi‑Fi, and a package list.backup→adb backupof user data andadb pull /data/datato a local folder; also screenshots the home screen.unbloat→ iterates over lists inscripts/listes/*, executingadb shell pm disable-user --user 0 <pkg>for each.install_zenhome→adb push ecran-accueil/ZenHome.apk /data/local/tmp/followed byadb shell pm install -r /data/local/tmp/ZenHome.apk. *restore→ re‑enables every package disabled byunbloatand removes Zen Home viaadb shell pm uninstall com.zenthome. - Side effects – all ADB commands touch the device’s package manager, the
/data/datadirectory, and optionally/data/local/tmp. No external network calls are made; the script only communicates over the local ADB tunnel.
WIDE‑BLAST‑RADIUS FILES –
kit.sh/kit.ps1(control logic)scripts/listes/*.txt(data source for disabling packages)ecran-accueil/ZenHome.apk(payload installed on the TV)
These files are the single points of change if the unbloat logic or package lists need updating.
How To Use It
# 1. Clone the repo
git clone https://github.com/moses-y/unbloat-android-tv
# 2. Enable Developer mode and ADB on the TV
# 3. Run the launcher
# Windows
./LANCER.bat
# macOS
open LANCER.command
# Linux
chmod +x LANCER.sh
./LANCER.sh
The script prompts for the TV’s IP, then presents the numbered menu. Choose 2 to unbloat, 3 to install Zen Home, 6 to restore, etc.
Real‑World Use
A home‑owner with a TCL 2019 (Android 9) runs the kit during a weekend.
- After selecting options 1, 2, 3, the TV’s RAM usage rises from 451 MB to 720 MB, the home screen shrinks from 187 MB to 25 MB, and the foreground CPU drops from 61 % to 12 %.
- The user can revert in one step by selecting 6, returning the TV to its original state.
Code Health & Issues
- Medium/SDLC – No tests – 0 test files detected; all code paths unverified.
- Medium/SDLC – No CI/CD – No
.github/or other CI configuration; builds are manual. - Low – No license file –
LICENSEpresent but not checked for completeness. - Low – Documentation – Only Markdown files; no API docs or code comments.
The Bottom Line
unbloat-android-tv delivers a quick, reversible way to clean an Android TV and install a minimalist launcher. Its shell‑based menu is straightforward but lacks automated testing or CI, making maintenance harder for larger teams. It suits hobbyists and power users who can tolerate manual debugging and are comfortable with ADB.