Skip to content

Releases: Gathin23/cleanyourtv

v2.4.0: 93 TVs, 17 languages

Choose a tag to compare

@Gathin23 Gathin23 released this 20 Oct 12:07

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 or theme.sh --reset does 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_library adds a pill after the last row with every installed app, to put on Home or take off. See docs/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/dussehra ships 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), and rows_below_dock fits 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_dock under 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_stats pushed 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/.ps1 now record each package's state, the Home owner and the animation scales before touching the TV. restore replays 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).
  • setupwraith is skipped when it owns the saved Wi-Fi network, because disabling it deletes that network (#214, @maxhayim; FORCE_SETUPWRAITH=1 overrides). 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.ps1 enables 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.md is 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

Choose a tag to compare

@Gathin23 Gathin23 released this 19 Oct 18:17

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_motion in config.xml or 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 install fails before touching the stock launcher (#190, @rachit-jain), and recognises Xiaomi's com.mitv.tvhome as a stock launcher (#128, @321sssrt-bit).
  • b64push.py works 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.sh and restore.sh resolve 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

Choose a tag to compare

@Gathin23 Gathin23 released this 19 Oct 13:48

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 optional wallpaper.jpg) pushed with tools/theme.sh themes/<name> overlays config.xml, so a theme changes dock, columns, colours and wallpaper without a rebuild. Three ship in themes/.
  • 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_cards turns it off. Spec in docs/specs/card.md, how-to in docs/modules.md, 42 unit tests.
  • Tiles refresh while Home is open when an app is installed, updated or removed (#109, @angelwzr).
  • input_action for 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 when vpn_app is 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.py reuses ~/.android/adbkey when 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.sh followed 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/aurora works from the repo root; it used to look for the folder inside tools/.

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.md with new entries from tonight's test. SHOWCASE.md lists 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

Choose a tag to compare

@Gathin23 Gathin23 released this 19 Oct 06:08

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.