Repository navigation
Releases: Gathin23/cleanyourtv
Release list
v2.6.0
213 TVs from 63 brands, 24 languages, and 186 community pull requests from 120 people since 2.5.0. As before there are no binaries: build the launcher with launcher/build-and-install.sh (one command, see the README). It is about 445 KB.
I tested this release on my parents' Mi TV 4A (Android TV 10), installing main from this morning over 2.4. That build is the same as this tag apart from the last merges: #568 and #666 were tested on their own on the same TV, and #730 and the Home-guard fix were not tested on this TV.
- The install, a reboot straight to Home, the dock, the pills, the Inputs menu and a theme push all worked.
- The log showed no crashes, and the launcher used about half the memory 2.4 did.
- Eight of the nine new switches below did what they say when turned on. With all of them at their defaults, Home was pixel-identical to before.
- The
scenesandaurorathemes worked, including wallpaper rotation. - A module card went the whole way: install, prompt, Show card, open and back, uninstall.
Two things were not checked on hardware because they need a remote key held down: hold actions in app_keys (#719) and the Module cards list behind a long press on the Settings pill. Every new launcher option is off by default, so an existing setup looks the same after updating.
Launcher (2.6)
- Nine new opt-in switches, all off by default:
show_inputs_pillhides the Inputs pill (#789, @csermet).boot_to_live_tvopens Live TV on the first Home after a boot (#496, @alessandrodauria).hold:entries inapp_keysopen a second app when a remote button is held (#719, @nikhiltalreja).dock_glassdraws the dock band as frosted glass like the pills (#690, @shivamsingh262).dock_opacitylets a wallpaper show through the dock (#675, @cristianrojas07).app_glowcolours the focus highlight with the focused app's colour (#558, @cristianrojas07).focus_overshootgives the highlight and tile zoom without the bounce (#595, @priku).glow_style: horizonwashes the app's colour down from the top (#524, @Samreay).wallpaper_captionsshows the rotating picture's name (#771, @luyzfernando08).
- Instant return to Home (#666, @Samreay): coming back from an app no longer rebuilds the tiles unless apps changed. On the Mi TV 4A, main showed about half a second of black and a replayed entrance; now Home is just there.
- Dock padding (#568, @cristianrojas07): a focused first or last dock tile clears the band's rounded end, with an even margin on both sides.
- VIEW_INPUTS, opt-in (#730, @johnbenwoo):
handle_view_inputsanswers the Input button's intent with the Inputs menu, for firmware where only the stock launcher did. - More from the remote:
app_keysby scancode (#592, @wouterdamman).app_keyscan switch to a TV input withinput:<id>(#766, @matheus-caldeira).key_filterkeeps key repeat working on TCL G09 (#770, @Shan7anu).- The key services stay bound across reboots (#644, @nPeppon) and take no accessibility events (#586, @priku).
- Inputs:
- Pick an exact Live TV tuner (#534, @midhatn).
- Vendor source numbers for Xiaomi China's tvplayer (#722, @Miradil-paridin).
- HDMI/AV through YaOS's source player (#779, @ramory-l).
- No connection state on AV rows (#596, @priku).
- Fire OS settings fall back to MainSettingsActivity (#407, @delta-whiplash).
- Other options:
- A compact top bar (#556), names under every tile (#557) and 32-bit wallpapers (#570), all @cristianrojas07.
ambient_glowoff (#581, @renjithsasidharan) andshow_network_pill(#594, @priku).reduced_motion(#523, @Samreay) and real sunrise and sunset when a location is set (#580, @pixelari).- A clock screensaver that starts only from Home (#610, @avazibra) and sequential or shuffled wallpapers (#620, @gethari).
stock_home_redirectfor firmware that turns the stock launcher back on (#479, @TeaTax16).- The memory stat shown as used/total (#510, @hikiasi).
- A dock app moved on the TV stays put (#505, @johnossawy).
- Lighter on slow sets:
- From @priku: no icon decode when a tile has a banner (#583), one LEANBACK query per rebuild (#584), and tiles let go when memory is short (#585).
- From @cristianrojas07: the wallpaper kept in GPU memory (#667), the screensaver glow in 16 steps (#668), no network pill refresh every minute (#669), the app library off the UI thread (#671) and smoother glow rings (#569).
- Also: no replayed entrance when Home is already on screen (#552) and a stats line that keeps running (#553), both @cristianrojas07; pills refresh after the first frame (#544, @Samreay); a readable theme overlay before storage mounts (#614, @anvu69).
- Translations, 24 languages now:
- New: Norwegian Bokmål (#588, @Howardno), Dutch (#607, @wouterdamman) and Uzbek (#609, @avazibra).
- Completed or updated: Russian (#640, @angelwzr), Spanish (#554, @cristianrojas07), Catalan (#713, @quicodomingo).
- Spanish date on two lines (#725, @oscarolbe) and Indonesian greeting hours (#695, @PatrickNoFilter).
- The CI size gate is now 460 KB (471,040 bytes).
Add-ons
addons/is a new home for optional module-card apps, kept out of the launcher build. The launcher only shows a card after you approve it on the TV. See cleanyour.tv/addons.- CONTRIBUTING now has "where does my idea go": a launcher change, a theme, an add-on or a showcase entry.
Safety
- The Home guard no longer counts a factory-test app as another Home. On the Mi TV 4A,
com.duokan.factorytest/.FactoryLauncheranswers HOME. That let a list holding the current launcher disable it and hand Home to the factory test screen. - The Home guard also runs on firmware without
cmd package, where it used to be skipped in silence (#804, @xbsheng).
Debloat lists
213 TVs across 63 brands, 66 new since 2.5. These are the first lists from Anker Nebula, Artel, Caxium, Dialog, Epson, Gadnic, Karbonn, Noblex, Nokia, OK., PEAQ, Sankey, Super General and Tornado.
- TCL:
- 75T7 (#547, @TheWombRaider) and 43S5400A (#578, @Topikhidayatt).
- BeyondTV sets: 55P638 (#635, @octa22), 43P615 (#639, @dniskav), BeyondTV Poland (#658, @dorian-korejwo), 50C725K (#727, @victorNavas), 50P615 and 55EP640 (#776, #777, @filippap95), 65Q550G (#799, @Frontesque).
- 50DP660 (#642, @intrak).
- G08 sets: C89B (#653, @barnumbirr), Europe/UK G08 (#657, @darksidewalker), Q7C (#735, @JHoerbst), 55C745 (#768, @NaimHusain), 65C7K (#764, @mendeel), 55C7K UK (#783, @ediab).
- 55P8LS (#681, @nahtheking) and the 43S450F-CA Fire TV Edition (#775, @RamonEspinosa).
- Xiaomi:
- China firmware: MiTV-MTEQ0 (#612, @anvu69), MiTV-ASTP0 (#628, @kienmai160598), Redmi MiTV-MFTP0 (#631, @shaoxyz).
- MiTV-MSSP2 (#643, @bart-b-pl), TV S Mini LED 75 (#651, @SferaDev), MiTV-MSSP0 / Mi TV 4A 32 (#661, @angelwzr), MiTV-MSSP1 (#759, @StixHub).
- TV Stick 4K and Stick 4K 2nd gen (#740, @steepenergy; #749, @farnsworth3010).
- Sony:
- BRAVIA VH21 EU (#606, @wouterdamman), X9000H China (#660, @MarioZero99), XBR-55X850D (#679, @Amidwestnoob).
- XR-65A80J (#685, @samipuro), KD-65X82L (#688, @shivamsingh262).
- Skyworth:
- 7S60_A5 (#537, @VincentYe123), SW-22SA (#551, @FORD79-main), Coocaa 8R40_K5C (#703, @joselynrianaaa).
- 65A3F (#709, @wenyuwen2011), Coocaa K3 Pro (#716, @yaxi01555-prog), SWTV-24AE-4K (#733, @MazubaM).
- Philips: Google TV TA7 (#518, @wesley-prado), 55OLED708 (#641, @havrysh-dmytro), 65PUS9435 (#682, @leopic), 50PUD7406 (#765, @JuancaCM).
- Amazon Fire TV: Hisense Fire TV, a Fire OS 8 TV (#545, @ameyarya), Fire TV AFTEU014 (#738, @HaukeK311), AFTDEC012E (#811, @GaneshVarma1).
- Projectors: Anker Nebula D2426 (#728, @sedir), Gadnic PROJ100W (#744, @agusdc111), Epson LS800 (#784, @snoopyh42).
- One each:
- Dialog ViU (#559, @chathurabuddi), Sankey (#562, @dsolisp), Artel (#615, @avazibra), Karbonn (#656, @7H-ANKUR), FFalcon r34a0 (#678, @WANDUYIIIII).
- Caxium (#694, @ralphcorleone), Noblex (#697, @DavehPino), Hisense FFM (#702, @anshwalia), OK. AI PONT (#732, @ehystiv).
- Thomson 43RT1055 and SPPL 4K (#634, @man-u-13; #755, @geekyvikas).
- Nokia Streaming Box 8000 and 8010 (#326, @UavL; #748, @xxiten).
- Super General (#750, @egyjs), Chromecast HD (#781, @thayford), PEAQ (#786, @manos02), Tornado (#808, @MostafaRafea19).
- Existing lists corrected or extended:
- Remote keys: TCL G09 (#555, @cristianrojas07), TCL G10 on a C69B (#579, @pixelari), Sony VU31 (#582, @renjithsasidharan), TCL QM6K (#593, @jerinjoy), Mi Box S 2nd gen (#665, @vmatao), MiTV-MOOR2 (#726, @raafaelima).
- Second units: TCL 60C635 (#451, @ComeCaramelos), Hisense 65U68QF (#572, @Solankimimoh), MiTV-MOSR4 and Mi Box S (#650, #710, @Yveaux), Hisense U9DG (#731, @johnbenwoo), TCL 55C725 Brazil (#767, @matheus-caldeira).
- Cecotec (#616, @gkitayama), MiTV-MZTU0 keeps mediashell for Stremio (#645, @indrampd), Toshiba Cosmos (#663, @carlosmolados-droid), and AFMU0's mic needs tv.remote.service (#757, @jmastorga).
Prompt, tools and docs
- Tools:
check.pyshows what a firmware update undid (#434), and there is a voice, ACR and telemetry audit (#497), both @xbsheng.- A key-latency and idle benchmark (#437, @eddysangalli).
tv.py --screenshot(#571, @xbsheng; #560, @Samreay) andrelay.pyfor sandboxed assistants (#561, @Samreay).- Verified base64 uploads (#567, @am-tmac), a JDK 17 check (#575, @trollord) and a minSdk preflight (#630, @xbsheng).
- TCL AUTO_START handling (#526, @Samreay) and a test suite that doesn't hang (#785, @csermet).
- Docs, a lot of it from @xbsheng (#605, #617, #739, #745, #769, #793, #807):
- Device and firmware notes from @enricoottavoita (#587), @Dineshk4rthick (#626), @nothing531 (#633), @SferaDev (...
v2.5.0: 147 TVs, 21 languages
147 TVs from 49 brands, 21 languages, and 131 community pull requests from 92 people folded in. No binaries, as before: build the launcher with launcher/build-and-install.sh (one command, see the README); it is about 405 KB. I installed this build over 2.4 on my parents' Mi TV 4A before tagging (main at d27bb06, the same code as this tag apart from the version number). With a full dock, both rounded ends of the band are drawn. The glow under the dock follows the focused tile's colour (#540), tiles look as before with no black flash (#536), and the clock, date and greeting come back after a reboot and change at once with the time zone (#539). The Inputs menu and a theme push work, the Italian and Indonesian strings are in the APK, and the log shows no crashes. The Settings hold-OK menu and the app library were not re-checked in this run (the library is off by default). Each contributor tested their piece on the set named in their PR, and every new launcher option is off by default, so an existing setup looks the same after updating.
Launcher (2.5)
- Edit the dock from the TV (#340, @bjrb20): change which app sits in a dock slot from Launcher settings, no theme push needed.
- Rows and wallpaper from the remote: rows-below-dock chips in Launcher settings (#380) and a wallpaper picker for a theme's
wallpapers/collection (#382), both @PatrickNoFilter. A theme can also rotate through a local wallpaper collection (#356, @gethari). - Per-app launch action, label and banner (#433, @y0rune):
launch_actions,app_labelsandapp_bannerslet a theme open an app on a specific screen, rename a tile or give it a better banner. - Remote buttons the stock launcher used to answer (#323, @HarshavardhanNetha): the YouTube key (190) and Xiaomi's PatchWall keys work again with the stock launcher off. The input key (
KEYCODE_TV_INPUT) opens the Inputs menu (#342, @iyts). - Inputs: an HDMI-CEC device shows once, on its port's row (#405, @priku); the source panel can be an activity and opens directly when there is no Live TV app (#411, @mmzanes); Live TV prefers a digital tuner and keeps its own activity (#339, @thiagodamas).
- Optional, all off by default: a cinematic top shelf (
cinematic_home, #390, @manas-04); a race-weekend mode from an F1 calendar in a theme (#385, @ritiksahni); an opt-in application ID for Xiaomi Home allowlists (#377, @NoneShell). - Fixes: a square "banner" no longer shows as a blurry tile (#324, @tumise100); top-bar pills are not cut off when they scale on focus (#330, @MoonZhe); OK no longer opens apps during reorder (#412, @SaviorOneZero); the glass highlight refits after a cold start (#436, @eddysangalli); the dock band's rounded ends stay inside the grid (#476, @priku); the clock hides until the system time is set, so a TV that boots before it has the time shows no wrong date (#539, @VincentYe123); the glow stays when focus moves below the dock (#540, @VincentYe123); the evening sky glow sits above the dock (#409, @ottoben1996); the quick settings panel grows to its longest label and the VPN-off badge stands alone when only a stub of the network name fits (#426, #428, @www-r3m1x).
- Lighter on slow sets: cached font weights everywhere and no per-frame dock lookup (#370, @leovvay); less overdraw, no window background and no card fill under opaque banners (#536, @Samreay).
- Translations: Bangla (#349, #395, @abuhasanrumi), Czech (#438, @martinhorsky), Italian (#462, @enricoottavoita) and Indonesian (#519, @PatrickNoFilter), so 21 languages now. Russian strings and date (#426, #427, @www-r3m1x), Portuguese completed (#530, @seixando) with the full weekday on Home (#373, @luyzfernando08), Finnish for the newer strings (#315, @priku).
- The CI size gate is now 420 KB (430,080 bytes) to make room for the new languages.
Debloat lists
147 TVs across 49 brands, 54 new since 2.4, and the first lists from AIWA, BYINTEK, Cecotec, Challenger, Compac, EKO, FFalcon, Freebox, JVC, Kogan, Motorola, MTC, Polytron, SHARP, Tele System, Verizon, Vidda and Vision:
- TCL: 32S5400A (#322, @mrigankutkarsh), 55C815 (#336, @Johannesnc), BeyondTV2 on Android 11 (#381, @tomastoloza), 43S5K (#391, @manas-04), 32S5K (#392, @DevTahsin), 85RM7L (#397, @jbalucha), Smart TV Pro G09 (#413, @mmzanes), Smart TV Pro G03 (#423, @www-r3m1x), 55C715 (#502, @bendorneanu), 55C725 (#504, @AngelusGi), L40S66E (#508, @lucasfarfa), 32L5A (#520, @DEVILxD5919), 55P7K (#529, @egyjs) and the MT9655 China set, where ADB is USB-only and the launcher is blocked (#498, @moqilin258-commits).
- Amazon Fire TV: Fire TV Stick Lite (#351, @kushc451), Fire TV 50" 4K, done remotely (#394, @maxhayim), Fire TV Stick 4K 2nd gen, the first Fire OS 8 list (#466, @mateuslecchi), Fire TV Stick 4K Max (#493, @samoralespu).
- Sony KD-49X8307C from 2015 (#325, @Nunu00) and KD-55XE8596 (#331, @bjrb20); Philips TPM191E (#334, @amadr-95) and 75PUS8505 (#439, @martinhorsky); Xiaomi MiTV-ANSP0 (#399, @ForeverSkys) and TV S Pro 100 2025 on HyperOS 3 (#463, @fants); Hisense E5Q Pro (#358, @nzjiance2) and Vidda VIDAA (#354, @HeimaoLST); XGIMI MoGo 3 Pro (#480, @TeaTax16) and MoGo 2 (#516, @ankit9971); BYINTEK Love U4 (#414, @mmzanes) and T5 Max (from #355, @mzet97).
- One each: AIWA AI PONT SA (#226, @thiagodamas), FFalcon 65S585C Pro (#335, @codertesla), MTC UK 2K (#341, @pkia), Panasonic 4KTV-0SU (#346, @caesar-nomad), Freebox Player POP (#366, @malo-gx), Vu Premium FHD 43 (#367, @mano18), Compac ATV R2 (#384, @ritiksahni), Polytron 2K (#388, @andikatuluspangestu), Cecotec VQU10065S (#418, @gkitayama), Tele System TS ON T2/HD (#430, @ilmanzo), EKO 2K Google TV (#440, @FRodrigues21), onn. 4K Plus (#443, @Alightsole), Motorola SWTV-24AE-FHD (#445, @MandipKumarKanu), OnePlus Y1 (#455, @behl1anmol), Toshiba on Vestel Cosmos, the first Vestel list (#460, @carlosmolados-droid), SHARP AQUOS TVE21F (#465, @AessemOps), Kalley 43G200 (#478, @samoralespu), Vision 2024VISION43STV (#486, @leojukic03), JVC (#492, @mabno), Google TV Streamer 4K (#501, @thspin), Challenger 32T22 BT (#507, @xngxllw), Thomson T32RTL6000 (#509, @hikiasi), Verizon Stream TV (#517, @jjulian), Kogan Google TV (#541, @hjemmel).
- Existing lists corrected: the Beem 470 keeps its accessibility helper (#372, @kirankunapuli), onn 4K keeps ambient mode so Google Photos works (#393, @shuklamrajat), the TCL G07 got notes from a second unit and the Bluetooth remote's button codes (#415, @mmzanes; #420, @Jeeiib), the Philips 65PUS8102 drops FrameworkLogger (#483, @priku), and the MiTV-MSSP3 has notes for the older Android 9 firmware (#494, @alessandrodauria).
Prompt and tools
- Check that ADB is really closed (#490, @amachador):
tools/adb-closed.py, becausencreports a closed port as open on macOS. The tools also warn when a TV reportsro.adb.secure=0(#319, @nexuspcs). recovery.pychecks the record's names, states and Home before replaying it (#317), and the tools' Python packages and the Gradle distribution checksum are pinned (#318), both @nexuspcs.tv.pykeeps its generated ADB key readable only by you (#491, @niv1999).- The disable step leaves the launcher that owns Home alone while nothing else can take it (#350, @ppjsw), doesn't count a vendor FallbackHome as a second launcher (#435, @eddysangalli), and keeps the packages that drive the HDMI and AV inputs (#421, @xbsheng).
- The prompt now checks the remote's buttons after the Google TV launcher is off (#344, @iyts), reboot-checks the debloat (#503, @bendorneanu), and warns about the hidden factory menu that leaves a Haier/CVTE set half-disabled (#481, @xbsheng).
- Theme pushes:
theme.shfinds the theme folder on Windows Python (#329, @MoonZhe), writes through a ThemeProvider where the shell can't reach Android/data (#410, @mmzanes), and switches accessibility off before writing the service list back (#424, @www-r3m1x);theme.ps1renames Del to Drop because the alias shadowed it (#532, @AndresDiagoM). - CONTRIBUTING explains how to test a long press when
input keyevent --longpressarrives as a short press (#485, @priku).
Docs, showcase and the repo
- Docs: a Simplified Chinese usage guide (#352, @roninriddle); Chromecast casting needs setupwraith (#422), a Samsung Tizen set has no ADB (#449), a QM7 owner report (#468), the Google TV Streamer's casting and crash-loop notes (#506) and the FPD CG50-C3 note (#512), all @xbsheng; device notes for the TCL 75C63B (#320, @djsnabu), Philips 65PUG7406 (#461, @Gu-BRA), Sharp 32FI4EA (#514, @jesperwhenriksen) and Sony XR-75X91K CN (#521, @surfanAA); the L43M7-EA startup-ad setting (#403, @Castor6); and Developer options hidden behind a build password on ISP boxes (#408, @HoangTran0410).
- Showcase, 10 new: Cast Fix (#362, @thayford), TidyTV (#374, @jolan94), Clean Your TV Companion (#379, @gethari), a Polytron glass dock (#386, @andikatuluspangestu), TV Remote (#404, @HoangTran0410), MYO Launcher (#406, @faustinoaq), CleanTV (#432, @0x006E), Scenes (#474, @manas-04), Baron Home (#495, @sethihq) and Afnon, a prayer-times home screen (#528, @egyjs).
- The README has a new top and the full press list (73 articles from 21 countries in
docs/PRESS.md).
131 pull requests merged since 2.4.0, from 92 people. Thank you.
v2.4.0: 93 TVs, 17 languages
Ninety-three TVs, seventeen languages, and 96 community pull requests folded in. No binaries, as before: build the launcher with launcher/build-and-install.sh (one command, see the README). I installed this build over 2.3 on my parents' Mi TV 4A before tagging and went through navigation, Launcher settings, theme pushes, reorder and the app library; that run caught two layout bugs, both fixed below. Each contributor also tested their piece on the set named in their PR. Every new launcher option is off by default, so an existing setup looks the same after updating.
Launcher (2.4)
- Settings on the TV (#167, @roninriddle): hold OK on the Settings pill for Launcher settings: 4 to 7 tiles per row, motion on or off, opt-in advanced effects, and the default-home chooser. Follow theme hands control back to your
config.json; a theme push ortheme.sh --resetdoes the same. - Reorder apps from the remote (#299, @Samreay): in the Settings pill's long-press menu, or as a top-bar button with
reorder_button. - App library (#305, @harshsingh0930):
app_libraryadds a pill after the last row with every installed app, to put on Home or take off. Seedocs/app-library.md. - Quick settings panel (#264, @hayitsjose): with
settings_key_panel, the remote's gear opens a small glass panel (TV settings, Display, Network, Apps to re-enable something, Launcher settings) over any app. The gear can be matched by keycode (settings_key_keycodes, 83 on TCL Google TV remotes; #217, @johnny1K), and it now works on Home even when HomeKeyService is not running (#292, @Samreay). - Festive skin: a theme with
"festival": "dussehra"(or"diwali") turns the network pill into a diya whose flame follows the connection, Inputs into a temple bell and Settings into a marigold, and gives the first Home of the day a petal shower.themes/dussehraships with it and switches itself off after 21 October (festival_until). - Optional, all off by default: a CPU, memory and storage line under the clock (
show_stats, #221, @christosuster); a time-of-day sky behind everything (sky_intensity, #231, @ottoben1996); one plain grid without the dock band (dock_row: false, #297, @Samreay); the big app name above the dock can go (dock_title: false), androws_below_dockfits the screen height, with tiles kept near full size (#293, @Samreay); free dock slots can stay empty (fill_dock: false, #275, @abuhasanrumi). - The Inputs menu shows the names you gave your inputs in Settings > Inputs and leaves out hidden ones (#291, @mwamodo). Apps with two identical launcher entries get one tile (#298, @anandhakrishnanaji).
- Smoother on slow sets: each font weight is built once and the glow is tinted instead of repainted (#225, @leovvay), and wallpapers decode at screen size, so a 3000x2000 photo takes 4 MB instead of 12 MB (#277, @abuhasanrumi; a picture still over 4K after sampling is refused).
- Focus and motion: Up into a grid row scrolls it fully on screen (#246), the last visible row no longer nudges the grid (#289), and reduced motion puts the name below the zoomed tile (#288), all @Samreay. The highlight has the tile's own corner radius (#247, @majnioui), Up and Down click like Left and Right (#273, @vlaship), Home stays put after a side panel closes (#224, @GeneralKoski), and the German date fits on two lines (#276, @evomentum).
- Translations: Portuguese (#199, @seixando), Hebrew with a right-to-left Home (#218, #269, @lionlev21), Traditional Chinese for Taiwan (#251, @sorosora), Finnish (#301, @priku), Vietnamese (#313, @ptrinh); French completed (#216, @ScaryFr92). Seventeen languages.
- The greeting can end with a name:
"greeting_name": "Amma"(#172, @ptrinh).
Found on the TV before tagging
- Showing 2 or 3
rows_below_dockunder a titled dock shrank tiles to a third of their size; tiles now stay at 85% or more and the extra rows scroll. - Turning on
show_statspushed the top buttons below the clock row; they stay level now, and the line leaves CPU out on TVs that hide it from apps.
Install and tools
- Restore puts back what was there (#248, @xbsheng):
disable.sh/.ps1now record each package's state, the Home owner and the animation scales before touching the TV.restorereplays that record, so apps you had disabled yourself stay disabled. A TV cleaned before 2.4 has no record, so restore warns and enables the whole list as before. - The install starts the new launcher before disabling the stock one, so a launcher that cannot start leaves the TV's Home alone (#240, @xbsheng).
- Lists are checked before anything reaches the TV: a line that is not a bare package name refuses the whole list (#201, @xbsheng).
setupwraithis skipped when it owns the saved Wi-Fi network, because disabling it deletes that network (#214, @maxhayim;FORCE_SETUPWRAITH=1overrides). The check stops cleanly when it cannot tell (#272, @vlaship).- Theme pushes keep the accessibility helpers enabled (#211, @johnny1K) and restart Home, then rebind HomeKeyService (#287, @Samreay).
build-and-install.ps1enables the key helpers again on Windows PowerShell 5.1 (#263, @hayitsjose).
Debloat lists
93 TVs across 31 brands, 39 new since 2.3, and the first lists from Haier, JMGO, Kalley, onn, Portronics, PRISM+, Wanbo and AiPro2K:
Sony KD-55X85J South America (#198, @ptorresmanque), TCL UnionTV Latin America (#200, @seixando), TCL 65C735 (#205, @WhidanB), TCL 43C645 (#208, @FrcJules), Philips 55PUS7503 (#209, @iago-veiga), Philips R8G Google TV (#212, @maxhayim), Skyworth SWTV-24NA-4K NF (#213, @maxhayim), Xiaomi MiTV-MSSP3 on Android 9 (#223, @GeneralKoski), Xiaomi MiTV-AXFR1 (#229, @tanaypatwa), AiPro2K (#233, @Alefrankie), Hisense U75 (#235, @CharlesZ54), PRISM+ Q65 Ultra 2026 (#238, @dineshalphaque), TCL C755 (#241, @Samreay), Hitachi CDH-LE32SMART21 (#242, @Dinamarcus), Panasonic TH-40HS550K (#250, @afzafri), BenQ E55-750 (#252, @sorosora), Sony XBR-65X900F (#255, @whiskeykilo), Sony BRAVIA 4K GB US/Canada (#256, @akirschke15-cmd), Sony BRAVIA VU31 (#258, @ipythonist), Sony KD-65X9300D (#259, @waranon), Xiaomi MiTV-AXSO2 (#260, @Alafazam), Hisense HiSmartTV A4 on Android 11 (#262, @vcheckk), TCL 55S470G (#265, @hayitsjose), Kalley R10G (#266, @SobusaDriver), Haier H32S80EFX (#267, @devilnaked), onn 4K Streaming Box 2023 (#270, @shuklamrajat), Portronics Beem 470 projector (#278, @kirankunapuli), TCL 43EP660 (#279, @fzunic7), Sony BRAVIA TL2 (#281, @aidplmraul69), Sony KD-55X8509C from 2015 (#282, @xbsheng), JMGO N1S projector (#284, @spikeganush), Philips 55OLED707 (#285, @oliverjwroberts), TCL G07 (#290, @mwamodo), Philips 65PUS8102 (#295, @priku), Haier DVB2K (#296, @manjunathan1999), Sony BRAVIA 4K VH21 (#302, @swordfish6975), Wanbo X5 Pro projector (#303, @swordfish6975), Hisense HG9 (#100, @tannerpowell) and NVIDIA SHIELD TV 2019 (#314, @xbsheng, from @geekitup's report).
Existing lists confirmed or corrected: MiTV-AFMU0's lost Wi-Fi traced to setupwraith (#219, @hovsep-dc), TCL G10 on a 55P6K (#230, @DrewVix), Philips 50PUS8517 drops two packages that hang the TV (#234, @veikus), MOOQ0 on firmware 5135 (#243, @silpdev), Mi Box S 2nd gen on 737 (#253, @GanzellaLorenzo), and the VU31's launcher half (#300, @anandhakrishnanaji).
Docs, showcase and the repo
- Docs: close network ADB when you are done (#202), TVs with no debugging switch at all (#236) and why Live TV screenshots come back empty (#203), all @xbsheng; helping someone in another home over Tailscale (#220) and TVs that only offer Wireless debugging (#215), both @maxhayim.
- Showcase: CleanXiaomiTV (#197, @majnioui), rotating wallpapers with a picker (#204, @Alafazam), tv-bookshelf (#237, @griffincockfoster56), a Hisense 55U6K fork (#274, @vlaship), KIDŌ (#283, @glidiandev) and Cosy Home (#294, @oliverjwroberts).
- Lint passes and CI keeps it that way (#249), with more tests for the grid and dock edges (#280, @fuglyab).
SECURITY.mdis in, with private vulnerability reporting switched on, and the README has a contact section and the press that covered the project.
96 pull requests merged since 2.3.0, from 59 people. Thank you.
v2.3.0: 54 TVs, 12 languages
Fifty-four TVs, twelve languages, and a day of community pull requests folded in. No binaries, as before: build the launcher with launcher/build-and-install.sh (one command, see the README). Honest note: unlike 2.2, I have not yet run this build on my own TV; it builds and passes the unit tests in CI, and each contributor tested their piece on the set named in their PR.
Launcher (2.3)
- GPU-friendly focus animation and opt-in
reduced_motion(#119, @occcat): the glass highlight is cached as a hardware layer and the ambient glow is a small bitmap instead of a CPU-drawn gradient, so the spring stops crawling on MediaTek sets from 2019.reduced_motioninconfig.xmlor a theme calms the motion further for TVs whose GPU still cannot keep up. - Settings and Wi-Fi pills fall back to Xiaomi's own settings app on China firmware (#129, @321sssrt-bit).
- Down from the top buttons returns to the dock tile you came from (#138, @AleksanderSandnes).
- App banners load at xhdpi or better on low-density TV UIs (#131, @angelwzr).
- The remote's Settings button opens Settings through the opt-in Home key service, including gear buttons Android leaves unmapped (#193, @TuanTITAN85).
- Tile labels go through the same cleaner as module-card labels, so a bidi override cannot redraw a tile's name (#117), and pressing Home while on Home returns to the top row (#118). Both found by @udhaykumarbala.
- Translations: Serbian Latin (#145, @miki995), Polish (#158, @adrbsk91), Arabic (#168, @majnioui), Turkish (#188, @cayisik); Russian completed (#141, @angelwzr). Twelve languages.
Install and tools
- The install script finds the JDK and SDK on Linux (#139, @AleksanderSandnes), stops when
pm installfails before touching the stock launcher (#190, @rachit-jain), and recognises Xiaomi'scom.mitv.tvhomeas a stock launcher (#128, @321sssrt-bit). b64push.pyworks with pre-Nougat adbd by following the TV's announced payload size (#147, @terryli-94) and keeps chunks a multiple of 3 so the base64 stream decodes (#187, @mustafa4101996ahmed).disable.shandrestore.shresolve list paths against the directory you run from, with a test (#153, @alfibi).
Debloat lists
54 TVs across 23 brands, 24 new since 2.2:
Sony BRAVIA 9 II (#127, @JegoVPN), Thomson 32HE5800 (#130, @MarioParraL), CHiQ GTVU65 (#133, @Mfolio), TCL BeyondTV EU/Nordic (#137, @AleksanderSandnes), Hitachi 65QLEDSM20 (#144, @ajurcevic), Sony KD-55X80J (#145, @miki995), Sony BRAVIA 4K GB (#154, @jcardonne), Xiaomi MiTV-ASTP1 China firmware (#128, @321sssrt-bit), Panasonic 4KTV-JUP (#142, @KimiWang2046), Redmi MiTV-ANTL0 on Android 5.1.1, debloat half only (#148, @terryli-94), TCL 40S5400A (#159, @adrbsk91), Skyworth SWTV-21AE (#161, @fakhringuyen), Xiaomi Mi Box S 2nd gen (#169, @Bahriish), Sony BRAVIA AE2 (#171, @ptrinh), Xiaomi MiTV-MOSR4 (#177, @heybyben), Philips 50PUS8517, the first TP Vision list (#178, @veikus), TCL BeyondTV2 Latin America (#179, @eddysangalli), TCL 50EP680 (#181, @jiri-cermak), Vu 4K (#182, @harshmandalgi), Sony BRAVIA BF1 (#183, @EswaramoorthyKarthikeyan), Hisense HiSmartTV A4 (#184, @prateekjaindev), Xiaomi TV Box S 3rd gen (#185, @dennisblokland), Sony KD-65X80J (#191, @rachit-jain), and the first Fire OS 6 list, Fire TV Stick 4K (#195, @IdentityDC).
Compatibility notes for the Xiaomi S Pro "freeguy" live in docs/devices/ (#160, @rowanchen-com).
Docs, showcase and the repo
- Ad-blocking Private DNS as an optional extra in the FAQ and the prompt (#157, @majnioui). How to tell an enabled accessibility helper from a bound one in
docs/TROUBLESHOOTING.md(#186, @maam00). - Showcase: a Sony China fork (#126, @roninriddle), CleanMyTCL for Android TV 9 (#180, @eddysangalli), Fire TV Glass for Fire OS 8 (#196, @ivantrj). Twelve projects built on top.
- README: a numbers line, six screenshots, live badges, the contributor wall. CI now builds the launcher and validates every list on each pull request; issue forms, a PR checklist and a code of conduct; Discussions are open.
45 pull requests merged since 2.2.0. Thank you.
v2.2.0: CleanYourTV
The repo is now cleanyourtv (old tv-vibehack links redirect) and the site is live at cleanyour.tv. No binaries, as before: build the launcher with launcher/build-and-install.sh (one command, see the README). Everything below was installed and checked on a Mi TV 4A (Android TV 10) tonight.
Launcher (2.2)
- Themes: a
config.json(and optionalwallpaper.jpg) pushed withtools/theme.sh themes/<name>overlaysconfig.xml, so a theme changes dock, columns, colours and wallpaper without a rebuild. Three ship inthemes/. - Module cards (#116, @udhaykumarbala): any Android TV app can declare its own tile (label, caption, glow colour). The launcher asks once on the TV with Keep hidden selected, pins the answer to the app's signing key and the card's name, and launches a card only by its own explicit component. Hold OK on Settings for the list.
module_cardsturns it off. Spec indocs/specs/card.md, how-to indocs/modules.md, 42 unit tests. - Tiles refresh while Home is open when an app is installed, updated or removed (#109, @angelwzr).
input_actionfor HDMI players that ignore the standard VIEW intent, and the VPN badge no longer gets cut off by long network names (#113, @zarubaf). A red "VPN off" badge whenvpn_appis set and no VPN is up (#115, @zarubaf).- Ethernet icon on the network pill when wired (#122, @sonalder-darlene).
- Hardware tuner preferred for the Live TV entry (#73, @damonearl).
- Translations: Thai (#54, @abnkei), Russian (#108, @angelwzr), French (#105, @ScaryFr92). Eight languages now.
tools/tv.pyreuses~/.android/adbkeywhen it exists, so the TV stops asking "Allow USB debugging?" twice (#105, @ScaryFr92).
Install and restore
- When Home resolves to Android's launcher chooser (what you get after
tools/restore.shfollowed by a re-applied list), the install scripts now pick the known stock launcher among the HOME claimants instead of refusing. tools/theme.sh themes/auroraworks from the repo root; it used to look for the folder insidetools/.
Debloat lists
30 TVs across 16 brands. New: Xiaomi MiTV-MSSP3 (#107, @samdegan2311, with the persistent Netflix observer finding), Stellamore T950S projector (#110, @aravinddass), TCL 55Q10G Pro, China (#111, @netube99, with the hidden ADB gesture and the sideload gate explained), XGIMI Horizon S Pro projector (#114, @zarubaf), plus notes on the RCA AI PONT (#38, @pranabsarma18) and Xiaomi MOOQ0 (#81, @mirhnaz).
Prompt and docs
- PROMPT.md checks that the TV accepts APKs before building a launcher (#123, @netube99) and queries the HOME claimants on Google TV.
- README rewritten: banner, shorter sections, the TV list folded. Full troubleshooting moved to
docs/TROUBLESHOOTING.mdwith new entries from tonight's test.SHOWCASE.mdlists nine launchers and add-ons built on top.
Thanks to everyone who sent a list, a fix or a port this weekend: 65 pull requests merged from 36 people, 50 of them today.
v2.1.0: community round
First tagged release, so people can Watch → Custom → Releases instead of following every PR. No binaries: build the launcher with launcher/build-and-install.sh (one command, see the README).
Launcher
- Targets Android 14 with the package-visibility
<queries>Android 11+ needs, so Google TV sets install it and see their apps (#34, #60). - The install script now builds a shrunk release APK (about 240 KB instead of 1.6 MB) and precompiles it on the TV (#40).
- Safer install order for Google TV: start the new launcher, disable the stock one, set the home preference last, then check where Home resolves and roll back if it is wrong (#91, #85, #86). Stock launcher detected from the TV, only known launchers are ever disabled (#65, #85).
- Inputs pill hides itself on sticks and boxes without HDMI or tuner (#42); glass highlight follows the grid scroll (#47); D-pad stays inside a row at its ends (#55); header no longer overlaps on long network names (#60).
- Optional, off by default: VPN badge on the network pill (#69), Solar Hijri date (#70), a Default home tile where the TV has a home picker (#30), an Input-button service for Google TV remotes (#27) and a Home-key service for Xiaomi remotes that send ALL_APPS (#83), both enabled with an install flag.
- Translations: Spanish, Catalan, Simplified Chinese (#46, #35, #32). Screensaver date follows the translation (#88).
Debloat lists
21 TVs now, sorted by brand in the README: BenQ, CHiQ, Hisense, Insignia (Fire OS, debloat only), NVIDIA Shield, OnePlus, RCA, SANYO, Sony ×2, TCL ×4, Xiaomi ×7.
Docs
Troubleshooting entries for the Google TV Home takeover and crash loop (with the one-line recovery), USB power on Mi Box S, Iran time zone, and the wireless-debugging notes contributors sent in.
Thanks to everyone who sent a list, a fix or a bug report this week.