Hitachi · Android TV 11
Hitachi CDH-LE32SMART21 debloat list
The cleanyourtv list for the Hitachi CDH-LE32SMART21 disables 19 packages on Android TV 11: the manufacturer's telemetry, sponsored content rows and preloaded apps you never asked for, plus the stock launcher once the clean home screen is in place. It was tested on a real set by a cleanyourtv contributor.
19
packages disabled
Android TV 11
operating system
Debloat + launcher
what cleanyourtv does
About this Hitachi CDH-LE32SMART21 list
Header: Hitachi CDH-LE32SMART21 (32", Latin America / Argentina; TCL-built: device C06, product C06_2K_GB
model "Smart TV", TCL client type HIT-LA-MT9221-01), Android TV 11 (API 30), build AR2101, TCL software V8-T221T01-LF1V030, fingerprint TCL/C06_2K_GB/C06:11/AR2101/AR14:user/release-keys. MediaTek MT9221 (ro.board.platform mt5867), 1280x720 panel, about 920 MB RAM (ro.config.low_ram=true), 2.5 GB /data. Same platform and firmware family as examples/tcl-40s5400a; read that list too. Stock launcher: com.google.android.tvlauncher (the scripts' default). The only other HOME claimant is com.android.tv.settings/.system.FallbackHome; setupwraith does not claim HOME on this firmware. Live TV app: com.tcl.tv (its TVActivity has a leanback entry, so launcher/ needs no live_tv_action). Inputs come from com.tcl.tvinput: the tuner (TDTVInputService) and three passthrough inputs (HDMI 1, HDMI 2, AV). launcher/ config used: live_tv_package com.tcl.tv; hidden_apps com.tcl.partnercustomizer (TKey Channel tile) and com.tcl.suspension (Quick Panel tile). HDMI 1, HDMI 2, AV and Live TV all show up in the Inputs menu; switching to HDMI 2 was confirmed on screen. Applied in batches on one real unit on 2026-10-19, each batch checked with screenshots. Tested on one day only (shorter than CONTRIBUTING.md asks); I will report back if anything breaks. Checked after the full list: launcher/ (v2.3) installed with pm install and is Home after a reboot; Netflix and YouTube open and play; Settings and Wi-Fi are fine; the remote's real Home, Input and Back buttons all work; the firmware updater opens (Settings > Device Preferences > About > Software update > Network update > System update shows the version and a check button). No accessibility helper is involved. Memory: MemAvailable about 373 MB after boot on launcher/ vs about 248 MB on the stock home after debloat. Ad-blocking Private DNS was also enabled and validated (dns.adguard-dns.com); YouTube still plays, its own ads are not blocked. Undo: tools/tv.py 'settings put global private_dns_mode opportunistic' Known quirks on this firmware: - screencap -p on stdout is corrupted by MediaTek log lines ("Init wrapper sys mutex successful"). Save to /sdcard and pull the file instead. - Screenshots are empty while Netflix, an HDMI input or the ttvs update screen is shown. - Storage: /data was 93% full (190 MB free) and sys_storage_threshold_percentage is 10, so about 270 MB is reserved and pm install failed with "Requested internal only, but not enough space". `pm trim-caches 4G` freed about 100 MB, not enough. Uninstalling user-installed apps the owner did not want (Crossy Road, Max, Crunchyroll, DirecTV GO) freed about 470 MB. Those are not in this list. - INSTALL_FAILED_VERIFICATION_FAILURE is not a firmware sideload block here: 1) with this little RAM, the com.tcl.guard memory manager (TGuard) kills com.android.vending in the middle of verification (logcat "tguard-kill-systemApp"), which fails the install. Force-stop apps / `am kill-all`, or install right after a reboot. 2) installing only base.apk of a split app is rejected by Play Protect for the missing splits; that is not a valid sideload test. The 272 KB launcher APK installed fine. - com.tcl.guard runs as a persistent system process (*PERS*, uid 1000). `pm disable-user` succeeds but the process still starts at boot, so the disable does not stop the memory manager. It stays in the list for the UI/cleaner parts. - Opening Settings' About page directly (am start -a android.settings.DEVICE_INFO_SETTINGS) and then Software update crashes TvSettings (ClassCastException AboutActivity -> MainSettings in com.tcl.android.tv.settings.update.SoftwareUpdateFragment). Enter through the main Settings menu. Not caused by the debloat. - com.tcl.ttvs is the firmware updater (also BI and Alexa), not text-to-speech. Keep it. com.tcl.messagebox carries an org.tcl.ttvs receiver; it was disabled here and the updater still opened and showed the check screen. DO NOT DISABLE on this TV (kept and working): com.tcl.tv # Live TV app, plays HDMI, source picker on the Input key com.tcl.tvinput # TV input services for HDMI, AV and the tuner com.tcl.suspension # Quick Panel, handles VIEW_INPUTS; only hidden in the launcher config com.tcl.partnercustomizer # TKey Channel; kept, only hidden in the launcher config com.tcl.ttvs # firmware updater (see quirks) com.tcl.autopair # Bluetooth remote auto-pairing com.tcl.tcl_bt_rcu_service # Bluetooth remote com.tcl.keyhelp # remote-key help/virtual keys com.tcl.system.server # remote-key plumbing com.tcl.settings # picture/sound settings com.tcl.providers.config # TCL config provider com.tcl.inputmethod.international # keyboard com.tcl.initsetup # setup flow com.tcl.factory.view # factory menu com.tcl.copydatatotv # data copy hook com.tcl.micmanager # voice
Before you run it: every package below is disabled, not uninstalled. Comment out (prefix with #) any line for an app you use. Never disable the Play Store, Play Services, the on-screen keyboard or the TV input services that play HDMI. Switch USB debugging off when you are done.
Packages the Hitachi CDH-LE32SMART21 list disables
Telemetry (3)
| Package | Note |
|---|---|
com.google.android.feedback | — |
android.autoinstalls.config.tcl.device | partner-app auto installer config |
com.google.android.partnersetup | — |
Content, ads and promos (5)
| Package | Note |
|---|---|
com.google.android.tvrecommendations | — |
com.tcl.waterfall.overseas | TCL Channel web-video portal |
com.tcl.messagebox | TCL messages/popups, carries a ttvs receiver (see quirks) |
com.tcl.esticker | store-demo sticker |
com.tcl.useragreement | — |
Background services (3)
| Package | Note |
|---|---|
com.tcl.guard | TGuard UI/cleaner; the memory manager still runs (see quirks) |
com.google.android.apps.nbu.smartconnect.tv | data-saver VPN |
com.tcl.t_solo | TCL Bluetooth "listen alone" |
Stock home, replaced by launcher/ com.google.android.tvlauncher # launcher/build-and-install.sh disables the stock launcher itself, after Home has moved (8)
| Package | Note |
|---|---|
com.amazon.amazonvideo.livingroom | Prime Video |
com.google.android.apps.mediashell | Chromecast receiver |
com.tcl.ui_mediaCenter | USB media player, together with the next three |
com.tcl.videoplayer | — |
com.tcl.audioplayer | — |
com.tcl.imageplayer | — |
com.google.android.videos | Play Movies |
com.google.android.play.games | — |
Apply the Hitachi CDH-LE32SMART21 debloat
Turn on Developer options on the TV (Settings → Device Preferences → About → press OK on Build seven times), switch on USB debugging and, if shown, Network or ADB debugging. Then, from a clone of the cleanyourtv repository on a computer on the same Wi-Fi:
export TV_HOST=192.168.1.50 # your TV's IP address
tools/venv/bin/python -I tools/tv.py --probe
tools/disable.sh examples/hitachi-cdh-le32smart21/debloat.txt Then build and install the clean launcher, which makes itself the default Home and rolls back if it fails:
TV_HOST=192.168.1.50 launcher/build-and-install.sh Prefer to let an assistant do it? Paste the cleanyourtv prompt into Claude Code with "Hitachi CDH-LE32SMART21" as the model; it reads this list, checks each package on your TV and asks before anything that depends on your preferences.
Restore the Hitachi CDH-LE32SMART21
TV_HOST=192.168.1.50 tools/restore.sh examples/hitachi-cdh-le32smart21/debloat.txt The restore script replays the state recorded before the change, so Home goes back to the launcher that owned it. More in the restore guide and the Android TV debloat guide.
Source: examples/hitachi-cdh-le32smart21/debloat.txt in the MIT-licensed cleanyourtv repository.