Repository navigation
Releases: Gathin23/cleanyourtv
Release list
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.