diff --git a/.github/maintainer/MAINTAINER.md b/.github/maintainer/MAINTAINER.md index a750d7c0..e3ef2b37 100644 --- a/.github/maintainer/MAINTAINER.md +++ b/.github/maintainer/MAINTAINER.md @@ -1,7 +1,7 @@ # How CleanYourTV PRs are reviewed CleanYourTV (Gathin23/cleanyourtv) is a prompt plus tools that debloat Android TV / Google TV / Fire TV over -ADB and a tiny native launcher (`launcher/`, plain Java, ~518 KB, for 1 GB TVs). Contributors mostly add +ADB and a tiny native launcher (`launcher/`, plain Java, ~520 KB, for 1 GB TVs). Contributors mostly add tested TV lists under `examples//`, translations, docs, small launcher options, themes, add-ons and tools. ## The policy: a small core plus a well-indexed hub diff --git a/README.md b/README.md index ec8f8ee3..58718172 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@

- 303 TV models · 86 brands · 28 languages · 518 KB launcher. Featured in TechCrunch, TechRadar, Tom's Guide, Mashable, Android Authority, XDA, FlatpanelsHD, It's FOSS, Phandroid, GIGAZINE, Xataka, WinFuture, Frandroid, Macitynet, Techaeris, TechPP and 180 more: 196 articles from 32 countries. Before: stock Google TV home with a sponsored ad. After: the Clean Your TV launcher. + 307 TV models · 87 brands · 28 languages · 520 KB launcher. Featured in TechCrunch, TechRadar, Tom's Guide, Mashable, Android Authority, XDA, FlatpanelsHD, It's FOSS, Phandroid, GIGAZINE, Xataka, WinFuture, Frandroid, Macitynet, Techaeris, TechPP and 180 more: 196 articles from 32 countries. Before: stock Google TV home with a sponsored ad. After: the Clean Your TV launcher.

**The viral tweet:** [x.com/gathint/status/2111379569030939102](https://x.com/gathint/status/2111379569030939102) @@ -118,14 +118,15 @@ Tested lists from contributors, one folder per model in [`examples/`](examples/) -**TCL** 66 · **Sony** 37 · **Xiaomi** 31 · **Philips** 16 · **Skyworth** 11 · **Hisense** 10 · **Amazon Fire TV** 7 · +**TCL** 68 · **Sony** 37 · **Xiaomi** 31 · **Philips** 17 · **Skyworth** 11 · **Hisense** 10 · **Amazon Fire TV** 7 · **BenQ** 4 · **OnePlus** 4 · **Panasonic** 4 · **Thomson** 4 · **Google** 3 · **Haier** 3 · **JVC** 3 · **NVIDIA Shield** 3 · **SHARP** 3 · **Vu** 3 · **CHiQ** 2 · **FFalcon** 2 · **Hitachi** 2 · **Insignia Fire TV** 2 · **Kalley** 2 · **Kogan** 2 · **Motorola** 2 · **Nokia** 2 · **onn** 2 · **RCA** 2 · **Redmi** 2 · **RockTek** 2 · **Sankey** 2 · **Toshiba** 2 · **Vidda** 2 · Acer · AiPro2K · AIWA · AQUA · Artel · ASUS · Beko · Caxium · Cecotec · Challenger · Compac · Dcolor · Dialog · EKO · Freebox · Grundig · INCLO · Karbonn · KTC · Liberton · Lumio · Master-G · MTC · Next · Noblex · OK. · Panavox · PEAQ · -Polytron · PRISM+ · SANYO · Sber · Super General · Tele System · TiVo · Tornado · Turkcell · Tuvio · Verizon · Vision · +Polytron · PRISM+ · SANYO · Sber · Seleco · Super General · Tele System · TiVo · Tornado · Turkcell · Tuvio · Verizon · +Vision · Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, Magcubic, Portronics, Stellamore, Wanbo and XGIMI projectors @@ -215,8 +216,8 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | Lumio Vision 7 55" (KTC ODM, Realtek, khardi, KTC_LUMIO_4K_EU_23GV1), India | Google TV 14 | | Magcubic HY300 Pro projector (rk3566_rgo, device adt3, Askey) | Android 11 | | Master-G MGA3200 (SCBC R1, Realtek; Android reports model `ATV R1`), Chile | Android TV 9 | +| Motorola / Coocaa SWTV-24AE-FHD (24LP6000G, Skyworth OEM, beomil), India/SEA | Google TV 14 | | Motorola MT4310 (Newsan; Hisense board, hayward, MediaTek), Argentina | Android TV 11 | -| Motorola SWTV-24AE-FHD (Skyworth OEM, beomil, MediaTek), India/Global | Google TV 14 | | MTC UK 2K Android TV (tabata, MediaTek m5621; JVC-family firmware, `android.autoinstalls.config.JVC` present), UK | Android TV 11 | | Next Start Pro 4K TV Box (SDT HPR314-Next, Realtek RTD1325), Turkey, streaming box | Google TV 14 | | Noblex NoblexTV (Skyworth-built, shinjuku, MediaTek m5621), Argentina | Android TV 11 | @@ -239,6 +240,7 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | PANAVOX Google TV (dongnae) | Google TV 14 | | PEAQ PTV 43AQU-5023C (Changhong, reports OK. AI PONT, dundas, MediaTek m7332) | Android TV 11 | | Philips 50PUD7406/43 (TPV, PH0M_EA_T32, MStar/MediaTek), Chile; 55PUS7906/12, Lithuania | Android TV 11 | +| Philips 50PUF7099/T3 (TPV EBONY_V560, Hisilicon), China | Android TV 9 | | Philips 50PUS8517/12 (TP Vision, PH1M_EA_9970A, MediaTek MT5895), Europe | Android TV 11 | | Philips 55OLED707/12 (TP Vision, PH1M_EA_9970A, MediaTek MT5895), UK | Android TV 11 | | Philips 55OLED708/12 (TPV, PH1M_WW_9972, MediaTek), Poland | Google TV 12 | @@ -253,7 +255,7 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | Philips Google TV TA7 (TPV, PH3M_AL_T32, MediaTek), Brazil | Google TV 14 | | Philips R8G Google TV (MOKA, whitefield, Realtek RTD2851F), US | Google TV 14 | | Philips Smart 4K TV (Skyworth, eleonas, MediaTek), India | Google TV 14 | -| Philips TPM191E / 50PUS8505 / 55OLED854 (TP Vision, PH9M_EA_5599, MediaTek MT5887), Europe | Android TV 12 | +| Philips TPM191E / 50PUS8505 / 55OLED854 / 65OLED804 (TP Vision, PH9M_EA_5599, MediaTek MT5887), Europe | Android TV 12 | | Polytron 2K (WLTV POLYTRON2K, hayward; Hisense/CVTE board, MediaTek mt5867), Indonesia | Android TV 11 | | Portronics Beem 470 Smart LED Projector (Allwinner H713, 1 GB), India | Android 11 | | PRISM+ Q65 Ultra 2026 QLED 4K AI Google TV (R10G, PRISMPLUS_FFM, MOKA, Realtek RTD2875 SoC, RTD6748 platform) | Google TV 14 | @@ -267,6 +269,7 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | Sankey SMART_TV (CVTE, HiSilicon Hi3751V350, 1 GB) | Android 12 | | SANYO ATV R2 (SCBC, Realtek RTD285O) | Android TV 9 | | Sber Salute TV 43" (CVTE TP.T962D4.PC756, Amlogic T962D4, at30a6, 2 GB), Russia | StarOS 1.101 / Android 13 | +| Seleco TV39020HDA9SMART 39" (AT_SmartScreen, Toptech + Zeasn, Realtek RTK2842P), Italy | Android TV 9 | | SHARP 2T-C32GH3000I (SHARP 2K Smart TV-A; Skyworth-built, beomil, MediaTek mt5867), Indonesia | Google TV 14 | | SHARP AQUOS TVE21F (AQUOS-TVE21F, banqiao, CVTE/MediaTek), UK | Android TV 14 | | SHARP AQUOS TVE23A (AQUOS-TVE23A, sandiego, CVTE/MediaTek mt5889), Denmark | Google TV 14 | @@ -321,6 +324,7 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | Stellamore T950S projector (Droidlogic be30a3, Amlogic txhd2) | Android 13 | | Super General 55" 4K (CVTE TP.SK708D.PC821, Amlogic T972, x30a4, 1 GB), Saudi Arabia | Android 9 | | TCL / FFalcon China (tcl9655_cn, MediaTek MT9655 "merak", UTT2.250416.001 AU01) | Android 14 | +| TCL 32ES570F (C06, C06_2K_GB, MStar mt5867, 939 MB), Italy | Android TV 11 | | TCL 32L5A (C06, model "Smart TV", 1 GB) | Android TV 11 | | TCL 32S5400A (C06, C06_2K_GB, MediaTek MT9221, 1 GB), 2023 | Android TV 11 | | TCL 32S5K (C06, C06_2K_GB, MediaTek MT9221, 918 MB), EU | Android TV 11 | @@ -350,6 +354,7 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | TCL 55P7K, Middle East (G10, G10_4K_GB, Realtek RTD2875P) | Google TV 12 | | TCL 55P8LS QD-Mini LED, Vietnam (G10, G10_4K_GB_32BIT, Realtek rtd6748) | Google TV 12 | | TCL 55Q10G Pro (China, tcl_mt5879_cn, MediaTek MT9952) | Android TV 11 | +| TCL 55Q6CX1 (Smart TV Pro, G08, G08_4K_GB, MediaTek) | Google TV 12 | | TCL 55S470G (G10, G10_4K_US_NF, Realtek), US | Google TV 12 | | TCL 55S546 (5-Series, G03_4K_US, BeyondTV4, GTV93), US | Google TV 11 | | TCL 58S571F (TCL Fire TV, AFTDEC012E, ginza, MediaTek mt5896), US | Fire OS 8 / Android 11 | @@ -378,7 +383,7 @@ Alwtniet, Anker Nebula, BYINTEK, Epson, Formovie, Gadnic, HOTACK, HY320, JMGO, M | TCL Q7C (Smart TV Pro, G08, G08_4K_GB, MediaTek tcl9618), European firmware | Google TV 14 | | TCL QM6K Pro, 2025 (G08, MediaTek tcl9618) | Google TV 14 | | TCL Smart TV (G07, G07_4K_GB_NF, Realtek RTD2851A, 2 GB) | Google TV 11 | -| TCL Smart TV Pro (G03, G03_4K_GB, BeyondTV4, Realtek R51MT05, V8-R51MT05-LF1V620), Middle East firmware | Google TV 11 | +| TCL Smart TV Pro (G03, G03_4K_GB / G03_4K_US, BeyondTV4, Realtek R51MT05, V8-R51MT05-LF1V620 / LF1V813), Middle East and US firmware | Google TV 11 | | TCL Smart TV Pro (G05, G05_4K_US, MediaTek MT5889); also TCL 55Q750G | Google TV 11 | | TCL Smart TV Pro (G08, G08_4K_GB, MediaTek), Australian firmware | Google TV 12 | | TCL Smart TV Pro (G08, G08_4K_GB, MediaTek), Europe/UK firmware | Android TV 12 | @@ -486,7 +491,7 @@ tools/theme.sh themes/aurora # push a theme; --r | [`tools/flamechart.py`](tools/flamechart.py) | Draws a before/after flame chart from those traces, for a pull request: one lane per thread on a shared time scale, the work a change targets in magenta with its total. Optional, like the trace tools. [Guide](tools/flamechart.md). | | [`tools/screendiff.py`](tools/screendiff.py) | Compares a before and an after screenshot pixel by pixel, leaving out the clock or anything you mask, and writes the pair with your Wi-Fi name blurred. Optional, like the trace tools. [Guide](tools/screendiff.md). | | [`tools/race_calendar.py`](tools/race_calendar.py) | Writes this season's F1 calendar into a theme for race-weekend mode, from the free Jolpica API. | -| [`launcher/build-and-install.sh`](launcher/build-and-install.sh) | Builds a shrunk release (about 518 KB), installs it, switches Home, and rolls back if Home does not land on it. | +| [`launcher/build-and-install.sh`](launcher/build-and-install.sh) | Builds a shrunk release (about 520 KB), installs it, switches Home, and rolls back if Home does not land on it. | The scripts never leave the TV without a Home app: they only disable a stock launcher they recognise, and skip the Home app in a list until another launcher answers HOME. Details below. @@ -558,7 +563,7 @@ apps), which is why the report names that loss per package instead of calling it ## The launcher -A small native home screen for Android TV: **about 518 KB**, plain Java, built for TVs with 1 GB of RAM. +A small native home screen for Android TV: **about 520 KB**, plain Java, built for TVs with 1 GB of RAM. No blur, no video, no network permission, no background services. The **TV** needs Android 8.0 (API 26) or newer: `minSdk` is a compile-time floor in diff --git a/docs/card.jpg b/docs/card.jpg index 124d3f49..29f5d4d0 100644 Binary files a/docs/card.jpg and b/docs/card.jpg differ diff --git a/docs/stats.png b/docs/stats.png index d4e7bdb2..8781d3c4 100644 Binary files a/docs/stats.png and b/docs/stats.png differ diff --git a/docs/workflows/translation.md b/docs/workflows/translation.md index 224fcedd..795b2101 100644 --- a/docs/workflows/translation.md +++ b/docs/workflows/translation.md @@ -28,7 +28,7 @@ 7. Check the size gate before you push. A language's strings ship in the release APK, and that APK has to stay under 589,824 B (576 KB): `launcher/app/build/outputs/apk/release/app-release.apk`, measured with `stat -c %s` on Linux or `stat -f %z` on macOS, and checked by the "Launcher build and unit tests" job - on every pull request. `README.md` quotes the launcher at about 518 KB, so a full language can be the + on every pull request. `README.md` quotes the launcher at about 520 KB, so a full language can be the difference between green and a failed build. A language that does not fit is a maintainer decision, not something to land by dropping strings ([#1271](https://github.com/Gathin23/cleanyourtv/issues/1271)). 8. Build the launcher, set the TV's language (Android 13+: `tools/tv.py 'cmd locale set-app-locales com.gathin.tvhome --locales '`) diff --git a/examples/README.md b/examples/README.md index f3638537..5e3710b2 100644 --- a/examples/README.md +++ b/examples/README.md @@ -85,8 +85,8 @@ on that firmware, grouped and commented. These are starting points: comment out | `lumio-vision-7/` | Lumio Vision 7 55" (KTC ODM, Realtek, khardi, KTC_LUMIO_4K_EU_23GV1), India | Google TV 14 | First Lumio list: Anoki ACR + Privacy Sandbox ad services, Realtek store-demo/karaoke, Ginga, Google feedback/partner-setup/calendar-sync/ambient screensaver, Play Games, YouTube Music; voice assistant (katniss) off by choice (~100 MB); setupwraith must go with launcherx (active Wi-Fi was system-owned, so Wi-Fi survived; FORCE_SETUPWRAITH=1) and doing so can break Cast; Live TV is com.realtek.tv; remote app buttons YouTube 190 / Netflix 191 / Prime 195 / TL;DR 200; Netflix shipped disabled; reboot-checked | | `magcubic-hy300-pro/` | Magcubic HY300 Pro projector (rk3566_rgo, device adt3, Askey) | Android 11 | Calculator, music, file manager, video player, Office, Miracast, HTC store and printing off; same Allwinner/HTC firmware family as the Portronics Beem 470; `com.htc.htcsettings` (projector settings), firmware updaters and factory packages kept; stock HTC launcher left enabled, `set-home-activity` takes Home; HDMI1-3 and CVBS1 list in the Inputs menu; config.json puts SmartTube, YouTube, Nuvio, VLC in the dock | | `master-g-mga3200/` | Master-G MGA3200 (SCBC R1, Realtek; Android reports model `ATV R1`), Chile | Android TV 9 | Same SCBC platform as `thomson-t32rtl6000/` and `sanyo-atv-r2/`: Google recommendation rows, telemetry and feedback, SCBC consent agent, S-Channels row, partner auto-installs, E-Show demo, E-Sticker, Vewd store; OTA kept, factory menus left alone; ISDB-T tuner stack, remote/Bluetooth and FastCast must stay; 1.5 GB RAM; 20 packages | +| `motorola-swtv-24ae-fhd/` | Motorola / Coocaa SWTV-24AE-FHD (24LP6000G, Skyworth OEM, beomil), India/SEA | Google TV 14 | Skyworth OEM board sold as Motorola in India (build UKN4) and Coocaa 24LP6000G in Vietnam/SEA (build UKN6); after-sale/activation trackers, ad services, recommendation rows, demos; Wi-Fi ownership setupwraith gotcha documented; remote Settings button emits keycode 83 (KEYCODE_NOTIFICATION) on scancode 240, needs HomeKeyService; Live TV is `com.cltv.hybrid` (Motorola) or `com.mediatek.wwtv.tvcenter` (Coocaa); reboot-checked | | `motorola-mt4310/` | Motorola MT4310 (Newsan; Hisense board, hayward, MediaTek), Argentina | Android TV 11 | Hisense silent auto-installs, store demo and disclaimer, feedback and partner setup, recommendation rows and MediaTek partnercustomizer, printing and calendar; Play Movies, Play Games and TalkBack/TTS off by choice; the factory manager re-enables katniss and tvrecommendations at every boot, so they stay on; 0.9 GB, 720p UI; tvlauncher off for a custom launcher, setupwraith left on (no HOME claim); remote app and Input keys survive the swap; Live TV is `com.mediatek.wwtv.tvcenter` | -| `motorola-swtv-24ae-fhd/` | Motorola SWTV-24AE-FHD (Skyworth OEM, beomil, MediaTek), India/Global | Google TV 14 | Skyworth after-sale/activation trackers, recommendation rows and partner customizer, TV Guard (dailymanage), Daily Key (myapp), e-manual; Google Play Games and feedback; launcherx + setupwraith off; setupwraith owned Wi-Fi saved at setup; remote Settings button emits keycode 83 (KEYCODE_NOTIFICATION) on scancode 240, needs HomeKeyService; Live TV is `com.cltv.hybrid` | | `mtc-uk-2k-android-tv/` | MTC UK 2K Android TV (tabata, MediaTek m5621; JVC-family firmware, `android.autoinstalls.config.JVC` present), UK | Android TV 11 | Google recommendation rows, partner customizer, feedback, ambient mode (katniss + backdrop), retail demo, MStar disclaimer popups, calendar leftovers; UK Freeview suite ships disabled at the factory (re-disabling throws SecurityException, harmless); dumpsys crippled on this firmware ("hung system process"), verify with `pm list packages -d` and screenshots; stock launcher `com.google.android.tvlauncher`, so `restore.sh` needs no launcher argument | | `next-start-pro-4k/` | Next Start Pro 4K TV Box (SDT HPR314-Next, Realtek RTD1325), Turkey, streaming box | Google TV 14 | Google feedback, on-device ad personalisation, Google TV home and ambient screensaver, setup wizard (took Home and crash-looped; owned the setup Wi-Fi), factory tests, Next IPTV, Roket and JetTV; Dolby service, Realtek and SDT services kept; **Dolby stutter fix**: Surround on Never plus Realtek's hidden MS12 output set to DD+/Atmos ([README](next-start-pro-4k/README.md)); Projectivy as Home; 2 GB; reboot-checked | | `noblex-shinjuku/` | Noblex NoblexTV (Skyworth-built, shinjuku, MediaTek m5621), Argentina | Android TV 11 | Panasonic TH-40HS550K list on the same Skyworth firmware family: Skyworth auto-installs, shop demo and Demo Now, e-manual, MediaTek PQ test tool, Google feedback and smartconnect, recommendation rows and Skyworth's launcher customizer, Assistant, Backdrop; unused apps off by choice; Chromecast kept; 0.9 GB, streaming apps that start on their own at boot are the real RAM cost (appops note); keep `com.mediatek.*` | @@ -109,6 +109,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `panavox-google-tv/` | PANAVOX Google TV (dongnae) | Google TV 14 | Google TV home replaced (launcherx and setupwraith off), Google telemetry and Privacy Sandbox services, Prime Video, Wi-Fi display sink, calendar and contacts sync, voice (katniss, tv.remote.service), Chromecast, TTS, TalkBack and Google extras off | | `peaq-ptv43aqu-5023c/` | PEAQ PTV 43AQU-5023C (Changhong, reports OK. AI PONT, dundas, MediaTek m7332) | Android TV 11 | First PEAQ list, same platform as ok-ai-pont-ikebukuro: Anoki ACR, AI PONT portal, Google recommendations, partner auto-installs, Homwee store/help, Google preloads; Assistant, Ambient, Prime Video and Media Player off by choice; Chromecast and Miracast kept; 1080p, 1.3 GB; setupwraith owns the Wi-Fi network and does not claim HOME, left alone; remote buttons work without tvlauncher; config.json has the dock; reboot-checked | | `philips-50pud7406/` | Philips 50PUD7406/43 (TPV, PH0M_EA_T32, MStar/MediaTek), Chile; 55PUS7906/12, Lithuania | Android TV 11 | First list for PH0M_EA_T32 (same board as the 65PUG7406/78 notes), not the org.droidtv xtv platform: DAC/GEL analytics, TPV framework logger and CMS client, app gallery, retail demo, partner customizer, recommendations, ambient mode; Chromecast off because a shared network of ~150 hosts kept pausing and closing YouTube (HOME sent by mediashell); point the screensaver away from the disabled backdrop; Assistant and updates kept; a second unit (EU) adds a boot-to-Live-TV quirk and the MMP player as a TV_INPUT_HARDWARE false positive; a third unit (55PUS7906/12, EU, TPM215E) shows HDMI (PS4) and DVB-T work with the list applied and MMP, eum and nettvregistration kept, and adds six candidate lines | +| `philips-50puf7099-t3/` | Philips 50PUF7099/T3 (TPV EBONY_V560, Hisilicon), China | Android TV 9 | China-market set, not the org.droidtv platform the other Philips lists cover: BestV/百视通 stock home (`com.bestv.ott`, not in `KNOWN_STOCK_LAUNCHERS`, so pass `STOCK_LAUNCHER=com.bestv.ott`), three package families side by side (`tv.fun.*`, `com.newtv.*`, `com.tpv.*`), no GMS; the casting, camera, video-call and smart-home apps off with the TPV telemetry and ad services and the BestV/NewTV background services, plus the store; the two firmware upgraders are commented out (the tested set had them off, which gives up system OTA, and `tv.fun.tvupgrade` can re-install the BestV home); the preinstalled content apps and the voice assistant kept by choice; the screensaver shipped pointing at a package that is not installed, so there was no DreamService at all; reboot-checked, but one session only and the physical remote untested ([device note](../docs/devices/philips-50puf7099-t3.md)) | | `philips-50pus8517/` | Philips 50PUS8517/12 (TP Vision, PH1M_EA_9970A, MediaTek MT5895), Europe | Android TV 11 | First `org.droidtv` TP Vision list: DAC analytics uploader (AWS Firehose), Top Picks, app gallery; Assistant, DLNA, IP control off by choice; disabling `eum` or `aurora` leaves persistent `xtv` retrying forever, and `eum` also kills the sources drawer -- see quirk 5; the same list was also run on a 70PUS8505 and a 65PUS9206 (same board and firmware) | | `philips-55oled707/` | Philips 55OLED707/12 (TP Vision, PH1M_EA_9970A, MediaTek MT5895), UK | Android TV 11 | Same board and firmware build as `philips-50pus8517/`, on an OLED panel: DAC analytics, Top Picks, app gallery and its preload installer, Alexa, setupwraith (Ethernet only, Wi-Fi impact unchecked); `nettvbrowser` must stay or ITVX hangs; Play-Fi re-enables itself at every boot, so it is left out; Chromecast and all used streaming apps kept | | `philips-55oled708/` | Philips 55OLED708/12 (TPV, PH1M_WW_9972, MediaTek), Poland | Google TV 12 | Google TV generation, not the 707's board: DAC analytics, frameworklogger, Samba TV ACR, NFT Collection, Play-Fi, Control4, Matter, Mimi, Alexa, Chromecast, setupwraith (Wi-Fi re-joined first) and the Philips launcher tab; `demome` holds TV_INPUT_HARDWARE so it stays; the remote's gear and Apps buttons need HomeKeyService (gear by scancode 141); nothing re-enabled after a reboot | @@ -123,7 +124,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `philips-google-tv-ta7/` | Philips Google TV TA7 (TPV, PH3M_AL_T32, MediaTek), Brazil | Google TV 14 | TP Vision `candeebug`/`gel` analytics, partner attribution and auto-installs, European operator apps, ad-consent and disclaimer popups; Netflix, Prime Video, Google TV app and Chromecast off by choice, Assistant and OTA kept; setupwraith + launcherx off for a custom launcher (setupwraith owned only an unused network); the gear button is KEYCODE_SETTINGS and needs HomeKeyService (`HOME_KEY_SERVICE=1`); theme | | `philips-r8g-google-tv/` | Philips R8G Google TV (MOKA, whitefield, Realtek RTD2851F), US | Google TV 14 | Anoki ACR, store-demo overlay, Realtek partner customizer, HbbTV (unused with ATSC), Android ad services; voice and ambient mode off by choice; port 5555 opens without pairing; setupwraith owned the Wi-Fi saved at setup and disabling it deleted the network; the standby light can be switched off over ADB ([note](../docs/devices/philips-r8g.md)) | | `philips-smart-4k-google-tv/` | Philips Smart 4K TV (Skyworth, eleonas, MediaTek), India | Google TV 14 | Skyworth recommendations, after-sale/activation trackers, iCast; Chromecast, Assistant off by choice; wireless-debugging pairing, setupwraith | -| `philips-tpm191e/` | Philips TPM191E / 50PUS8505 / 55OLED854 (TP Vision, PH9M_EA_5599, MediaTek MT5887), Europe | Android TV 12 | `org.droidtv` TP Vision list on Android 12: DAC analytics uploader, usage logging, demo mode, Top Picks, app gallery; voice, Prime Video, DLNA off by choice; Alexa, Chromecast and updates kept; DTS Play-Fi is re-enabled at every boot by the audio service, so it is left on; `eum`, `nettvbrowser`, `menudataapp` and `nettvregistration` kept, as on the 50PUS8517; for the 50PUS8505 and the 55OLED854, only an owner-selected subset and launcher handover were checked in one session, not the full list; the 55OLED854 found its remote's Settings button (scancode 357) and the OLED screensaver logo also seen on a different board ([notes](philips-tpm191e/README.md)) | +| `philips-tpm191e/` | Philips TPM191E / 50PUS8505 / 55OLED854 / 65OLED804 (TP Vision, PH9M_EA_5599, MediaTek MT5887), Europe | Android TV 12 | `org.droidtv` TP Vision list on Android 12: DAC analytics uploader, usage logging, demo mode, Top Picks, app gallery; voice, Prime Video, DLNA off by choice; Alexa, Chromecast and updates kept; DTS Play-Fi is re-enabled at every boot by the audio service, so it is left on; `eum`, `nettvbrowser`, `menudataapp` and `nettvregistration` kept, as on the 50PUS8517; for the 50PUS8505 and the 55OLED854, only an owner-selected subset and launcher handover were checked in one session, not the full list; the 55OLED854 found its remote's Settings button (scancode 357) and the OLED screensaver logo also seen on a different board; on the 65OLED804 tvrecommendations stayed off through restarts, and a held Home press needs `home_long_press_home` ([notes](philips-tpm191e/README.md)) | | `polytron-2k-hayward/` | Polytron 2K (WLTV POLYTRON2K, hayward; Hisense/CVTE board, MediaTek mt5867), Indonesia | Android TV 11 | Hisense silent auto-installs, MediaTek partnercustomizer, Google recommendations, feedback and partner setup, store demo and disclaimer; voice search, Chromecast, YouTube, Netflix and TTS off by choice; 1 GB, 720p UI, decoders up to 1080p; tvlauncher + setupwraith off for a custom launcher; Live TV is com.mediatek.wwtv.tvcenter | | `portronics-beem-470/` | Portronics Beem 470 Smart LED Projector (Allwinner H713, 1 GB), India | Android 11 | First Portronics list: HTC stock launcher/OTA/telemetry and app store, Allwinner Live TV/media/theme apps, stock YouTube replaced by SmartTube, AOSP phone/print/cell leftovers; casting/EShare kept; HOME key needs both setup flags, and Settings needs an explicit component because the firmware answers no ACTION_SETTINGS | | `prismplus-q65-ultra-r10g/` | PRISM+ Q65 Ultra 2026 QLED 4K AI Google TV (R10G, PRISMPLUS_FFM, MOKA, Realtek RTD2875 SoC, RTD6748 platform) | Google TV 14 | Realtek partner customizer, Google partner setup and auto-installs, ambient mode, unused DTMB/ISDB/ATSC tuners, karaoke, preloaded apps; Max off by choice; keep com.realtek.dtv and com.realtek.tv.atv for inputs | @@ -137,6 +138,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `sankey-smart-tv-hi3751v350/` | Sankey SMART_TV (CVTE, HiSilicon Hi3751V350, 1 GB) | Android 12 | CVTE ad and push services (`gaia.ad`, `wonder.cloud`, `industries`), the ad screensaver, the "cleaner", the stock weather and Google feedback; Miracast off by choice; the CVTE store kept by default (it hosts the stock launcher's Apps grid; the tested set turned it off because it kept pushing a CVTE-signed "WebTube" as a YouTube update); no Developer options and no App info page, ADB from the CVTE factory menu (MENU 1147); stock launcher kept (no FallbackHome, `COMMON_HOME`, #1201); Inputs pill opens `com.cvte.tv.globalui/.InputSourceActivity` | | `sanyo-atv-r2/` | SANYO ATV R2 (SCBC, Realtek RTD285O) | Android TV 9 | S-Channels, E-SHOW demo, Vewd, TV Booster, SANYO OTA | | `sber-salute-tv-at30a6/` | Sber Salute TV 43" (CVTE TP.T962D4.PC756, Amlogic T962D4, at30a6, 2 GB), Russia | StarOS 1.101 / Android 13 | First StarOS list: Sber content apps, SberPrime, kids room, smart home, Salute browser and screensaver, app catalogue, surveys, beta, bug reporter, cleaner, Huawei Cast/MHshare/DLNA receivers; OTA kept by default; Sber's platform service reinstalls removed apps (disable only) and cannot itself be disabled (its core re-enables it, component disables are refused), so the Salute voice assistant stays; Developer options locked and Sber Studio's ADB switch did not open 5555, see README; app "rotation" limit lowered with `sys_storage_threshold_percentage`; Inputs work through `ru.sberdevices.tvinputs`; reboot-checked | +| `seleco-tv39020hda9smart/` | Seleco TV39020HDA9SMART 39" (AT_SmartScreen, Toptech + Zeasn, Realtek RTK2842P), Italy | Android TV 9 | Same Toptech/Zeasn platform as [caxium-58-realtek-rtk2851p](caxium-58-realtek-rtk2851p/): Zeasn device portal, services feed and store, partner auto-installs, retail demo, print spooler, camera, live wallpapers, Chrome, USB media player; phone Netflix, voice search and Miracast off by choice; shipped with the phone build of Prime Video instead of the TV app, replaced by hand; stock Zeasn Home disabled last; Live TV and inputs stay with `com.toptech.tvmenu`, whose `.input.InputActivity` the Inputs pill opens; the remote's Input key still goes to the Zeasn Home; config.json has the dock; reboot-checked | | `sharp-2t-c32gh3000i/` | SHARP 2T-C32GH3000I (SHARP 2K Smart TV-A; Skyworth-built, beomil, MediaTek mt5867), Indonesia | Google TV 14 | Same platform as the Motorola SWTV-24AE-FHD: Skyworth after-sale/activation trackers, recommendation rows and partner customizer, TV Guard, Daily Key, e-manual, iCast; Android ad services; dreamx, Chromecast, Prime Video, YouTube Music off by choice; wireless-debugging pairing only; setupwraith owned the Wi-Fi saved at setup; remote gear sends keycode 83; Live TV is `com.cltv.hybrid`; 1 GB | | `sharp-aquos-tve21f/` | SHARP AQUOS TVE21F (AQUOS-TVE21F, banqiao, CVTE/MediaTek), UK | Android TV 14 | Anoki ACR, retail demo, factory/test apps, PAI auto-installs; Google recommendations and setup wizard (Wi-Fi owned by system); Assistant, Chromecast and phone remote off by choice; unused streaming off by choice; 1.8 GB; YouTube button stays with the vendor `com.cvte.hotkey.dispatcher` | | `sharp-aquos-tve23a/` | SHARP AQUOS TVE23A (AQUOS-TVE23A, sandiego, CVTE/MediaTek mt5889), Denmark | Google TV 14 | Google TV sibling of the TVE21F: Anoki ACR, retail demo, e-manual, factory/test apps, partner rows; Android ad services; Prime Video, YouTube, YouTube Music, Play Games, Chromecast and Google TTS off by choice; setupwraith owned the Wi-Fi saved at setup; remote gear is KEYCODE_STAR (17), YouTube is KEYCODE_TV_INPUT_COMPOSITE_1, Netflix stays with the firmware; 2.7 GB | @@ -191,6 +193,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `stellamore-t950s/` | Stellamore T950S projector (Droidlogic be30a3, Amlogic txhd2) | Android 13 | Zeasn App Store and stock launcher both bundle Google Ads (doubleclick); Zeasn device portal/OTA, Stellamore factory/test/guide; 1 GB; keystone correction must stay enabled | | `super-general-cvte-t972/` | Super General 55" 4K (CVTE TP.SK708D.PC821, Amlogic T972, x30a4, 1 GB), Saudi Arabia | Android 9 | Not Google TV; `com.sdk.hades` adware in two silently installed packages, CVTE ad services and ad screensaver, Stark store, cleaner, weather, firmware updater; Play Services ships disabled (`pm enable` it); ADB from the factory menu (MENU 1147 on a source); app buttons come from CVTE's hotkey service, Source is left to the app in front (open `com.cvte.tv.globalui/.InputSourceActivity`), a key-filtering accessibility service breaks Volume hold; NFX repointed with a same-package stand-in; third-party launcher; reboot-checked; [notes](super-general-cvte-t972/README.md) | | `tcl-mt9655-cn-android14/` | TCL / FFalcon China (tcl9655_cn, MediaTek MT9655 "merak", UTT2.250416.001 AU01) | Android 14 | No Google services; no Developer options at all — the ADB toggle opens adbd in TLS mode on a random port with no pairing service, so the only way in is a dual male USB-A cable (PC USB 3.0 → TV USB 2.0) and then `adb tcpip 5555`; every adb install is refused (`Install not allowed` from system_server), only a USB stick through 电视卫士 installs apps; debloat only, stock launcher cannot be replaced (`launcherStrategy` allowlist empty, verifier demands the cyberui signature); reboot-checked; [why the debloat works and the installs do not](../docs/devices/tcl-mt9655-cn-android14.md) | +| `tcl-32es570f/` | TCL 32ES570F (C06, C06_2K_GB, MStar mt5867, 939 MB), Italy | Android TV 11 | Older V8-T221T01-LF1V121 firmware than `tcl-32s5k/`; TCL Home, Quick Panel and T-Solo disabled with the remote still working; ttvs re-enables Rakuten, Alexa and usercenter at every boot; TGuard disables but keeps running; no standby-LED setting | | `tcl-32l5a/` | TCL 32L5A (C06, model "Smart TV", 1 GB) | Android TV 11 | Same C06 platform as `tcl-32s5400a/` (SDK 30, build AR2101); TCL account, TGuard cleaner, promo rows, TCL Channel waterfall, store demo sticker, browser, feedback and Google TV recommendations; custom Apple TV style launcher installed as default home (`com.gathin.tvhome`), stock launcher `com.google.android.tvlauncher` disabled; Live TV `com.tcl.tv` and inputs `com.tcl.tvinput` kept; reboot-checked | | `tcl-32s5400a/` | TCL 32S5400A (C06, C06_2K_GB, MediaTek MT9221, 1 GB), 2023 | Android TV 11 | Same C06 platform as `tcl-40s5400a/`, but older AR2101 / V8-T221T05-LF1V005 firmware and SonyLIV/YuppTV preloads; TCL account/TGuard/promos, Google extras, regional preloads; firmware updater kept (ttvs is the updater); stock launcher priority 2, keep the remote/BT/TCL settings packages; a second unit on V8-T221T01-LF1V121 needs 500 MB free before any install (`pm trim-caches`) | | `tcl-32s5k/` | TCL 32S5K (C06, C06_2K_GB, MediaTek MT9221, 918 MB), EU | Android TV 11 | Same build family as the 40S5400A; TCL account/TGuard/promo rows, USB players, voice and photo screensaver off by choice; `com.tcl.usercenter` is re-enabled by ttvs at every boot; setupwraith safe here (Settings owns the Wi-Fi); remote standby is a full power-down | @@ -220,6 +223,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `tcl-55p7k/` | TCL 55P7K, Middle East (G10, G10_4K_GB, Realtek RTD2875P) | Google TV 12 | Same G10 build as `tcl-g10-google-tv/` but logkit, Samba TV ACR and ttvs ship enabled; TCL Channel, push messages, TGuard, T-Solo, Alexa, hotel/demo; OSN+, Disney+ MEA, iQIYI off by choice; setupwraith before launcherx; Settings key is KEYCODE_NOTIFICATION, Web key 4159; TCL Audio Only turns the panel off with sound playing | | `tcl-55p8ls/` | TCL 55P8LS QD-Mini LED, Vietnam (G10, G10_4K_GB_32BIT, Realtek rtd6748) | Google TV 12 | Same G10 build as `tcl-g10-google-tv/`; Samba TV ACR, logkit, ttvs, TCL Channel/push/partner home rows, hotel/demo, TGuard, Alexa, T-Solo, MagiConnect, Miracast; Prime Video, YouTube Music, Play Movies/Games off by choice; saved Wi-Fi belonged to setupwraith (re-join first); Play Store auto-installs VTV Go, HBO Max, iQIYI at sign-in; launcher key services need APP_AUTO_START; reboot-checked | | `tcl-q10g-pro/` | TCL 55Q10G Pro (China, tcl_mt5879_cn, MediaTek MT9952) | Android TV 11 | No Google services, TCL boot ad + analytics/BI, OTA and account services; ADB opens from Device info + UP/DOWN/LEFT/RIGHT, not the build number; debloat only, stock launcher cannot be replaced (signature check at install time) | +| `tcl-55q6cx1/` | TCL 55Q6CX1 (Smart TV Pro, G08, G08_4K_GB, MediaTek) | Google TV 12 | European G08 build (STT2.221228.001 AS35): TCL promos, push messages, onboarding overlays, telemetry/logkit, Google Play Movies, TTS, dreamx screensaver; launcherx and setupwraith safely disabled (Wi-Fi owned by system, not setupwraith) and replaced with CleanYourTV; Game Bar, T-Exhibit, AirPlay, Chromecast, Miracast and DVB tuner kept; suspension/interactive/ttvs kept (they host the Source QuickPanel and live TV overlays); key helpers left unbound to preserve volume ramp; duplicate WebViews commented (check the active provider first); reboot-checked | | `tcl-55s470g/` | TCL 55S470G (G10, G10_4K_US_NF, Realtek), US | Google TV 12 | Same build as the G10 list, but Samba TV, logkit and ttvs ship enabled; ttvs kept (it hosts the firmware updater) and re-enables Samba's front end at boot, so opt out in Settings > Privacy too; Assistant voice and Chromecast off by choice; setupwraith off (Wi-Fi belonged to android.uid.system); remote gear button (keycode 83) opens the quick settings panel and the app buttons are remapped (Pluto TV opens Tubi); `APP_AUTO_START` must be allowed for the launcher or TclAppBoot stops the key service at boot; reboot-checked | | `tcl-55s546-us/` | TCL 55S546 (5-Series, G03_4K_US, BeyondTV4, GTV93), US | Google TV 11 | Same G03 platform as tcl-g03-google-tv on the US GTV93 build: TCL telemetry, promos and preloads off; TCL+ and TCL Channel kept; launcherx off with remote app buttons and volume repeat still working, no key helper needed; reboot-checked | | `tcl-58s571f-fire-tv/` | TCL 58S571F (TCL Fire TV, AFTDEC012E, ginza, MediaTek mt5896), US | Fire OS 8 / Android 11 | The S5 sibling of `tcl-43s450f-ca/` (same AFTDEC012E platform as `amazon-fire-tv-aftdec012e/`): Amazon ACR, ad/recommendation feeders, advertising ID, Shopping, demo, tutorials, telemetry, KSO service; Alexa extras, preloads and TCL apps (OpApp, Luna, Kids, News, Gallery, System Status, Prime Video) off by choice; Alexa voice returns at every boot as on the Hisense; the stock launcher also owns Settings; Appstore kept for the remote's branded buttons; AirPlay, Miracast, Live TV, Silk kept; debloat only | @@ -248,7 +252,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `tcl-q7c-google-tv/` | TCL Q7C (Smart TV Pro, G08, G08_4K_GB, MediaTek tcl9618), European firmware | Google TV 14 | Same build as the 85RM7L list (AU02), with the launcher: TCL promos, home pushes, Channel+/waterfall, account, TGuard cleaner, log capture, Android 14 ad and privacy services, manual/repair/hearing/solo apps, soundbar updater, Alexa; Assistant, AirPlay, Miracast/T-Cast, Netflix, Prime Video, Google TV and Play Games off by choice; ttvs, Chromecast, game bar and dreamx kept; launcherx and setupwraith off (Ethernet, FORCE_SETUPWRAITH=1); every remote button is scancode 240, keycodes in the README (Settings 83, YouTube 190); the debugging switch did not close port 5555, check adb_enabled; reboot-checked; a second unit, a 65Q7D Pro on Wi-Fi in Greece, is in its README (Wireless debugging only, setupwraith owned the Wi-Fi in use, the key helpers cost volume repeat); a fourth unit, a 65T8C on Wi-Fi, also in its README (Wireless debugging only, AirPlay and Prime Video kept, TCL keyboard off after Gboard); a fifth unit, an EU/UK set OTA'd from Android 12, in its README (OTA re-enabled nothing and installed channelplus; Source-key QuickPanel via suspension; keyboard and browser kept) | | `tcl-qm6k-google-tv/` | TCL QM6K Pro, 2025 (G08, MediaTek tcl9618) | Google TV 14 | Samba TV ACR (ttvs), TCL TV+, TCL Live, store/hotel demo; setupwraith must go for a custom launcher (also AU14, #23); a QM7 (2024) owner ran this list with seven extra packages — [deltas and a hung Cast receiver](../docs/devices/tcl-75qm751g-qm7.md) | | `tcl-g07-google-tv/` | TCL Smart TV (G07, G07_4K_GB_NF, Realtek RTD2851A, 2 GB) | Google TV 11 | TCL BI analytics (ttvs, also the firmware updater), TGuard, waterfall, TCL Live, TCL Home dashboard, messages, hotel/demo, partner auto-installs; voice, Miracast, MagiConnect, T-Solo, firmware updates and unused preloads off by choice, Chromecast kept; launcherx, setupwraith and dreamx off (Wi-Fi belonged to android.uid.system), reboot-checked; Input key works without InputKeyService, gear is scancode 561 (`settings_key_scancodes`), Netflix and YouTube buttons need an accessibility helper | -| `tcl-g03-google-tv/` | TCL Smart TV Pro (G03, G03_4K_GB, BeyondTV4, Realtek R51MT05, V8-R51MT05-LF1V620), Middle East firmware | Google TV 11 | Same platform as tcl-43c645: TCL BI analytics and logkit, promo rows (TCL Channel, BrowseHere), dashboard, messages, partner auto-installs; streaming apps, voice, Chromecast, Miracast/T-Cast, USB player, game bar, TCL Live off by choice, firmware updates kept; launcherx, setupwraith and dreamx off (setupwraith owned the Wi-Fi: forget and re-join first), reboot-checked; Input key works without InputKeyService, gear is keycode 4077 (`settings_key_keycodes`), config.json sets Live TV to com.tcl.tv; a second unit on the same build ships a Bluetooth TCL_RC902V_M1 remote whose Netflix/YouTube/Prime buttons die with launcherx and come back from `app_keys` (in config.json, verified with the real remote) | +| `tcl-g03-google-tv/` | TCL Smart TV Pro (G03, G03_4K_GB / G03_4K_US, BeyondTV4, Realtek R51MT05, V8-R51MT05-LF1V620 / LF1V813), Middle East and US firmware | Google TV 11 | Same platform as tcl-43c645: TCL BI analytics and logkit, promo rows (TCL Channel, BrowseHere), dashboard, messages, partner auto-installs; streaming apps, voice, Chromecast, Miracast/T-Cast, USB player, game bar, TCL Live off by choice, firmware updates kept; launcherx, setupwraith and dreamx off (setupwraith owned the Wi-Fi: forget and re-join first), reboot-checked; Input key works without InputKeyService, gear is keycode 4077 (`settings_key_keycodes`), config.json sets Live TV to com.tcl.tv; a second unit on the same build ships a Bluetooth TCL_RC902V_M1 remote whose Netflix/YouTube/Prime buttons die with launcherx and come back from `app_keys` (in config.json, verified with the real remote); a US unit (GTV93) shows dreamx also hosts the Google Home panel and TCL's updater needs StartandroidService for its device number, so it stays on | | `tcl-g05-google-tv/` | TCL Smart TV Pro (G05, G05_4K_US, MediaTek MT5889); also TCL 55Q750G | Google TV 11 | TCL Channel, waterfall, ttvs BI (also the firmware updater on AR71), TGuard; Quick Panel off by choice (the 55Q750G keeps it for the Input key); usercenter and smartalexa come back at every boot; setupwraith returned after a reboot on AR68, launcher half unverified there, but on a 55Q750G (AR71) build-and-install.sh worked and Home held after a reboot, once the setup Wi-Fi was forgotten and re-joined; remote buttons work without the key services (the G05_4K_GB units kept it off too, see the [55C728 note](../docs/devices/tcl-55c728-g05-4k-gb.md)) | | `tcl-g08-au-android12/` | TCL Smart TV Pro (G08, G08_4K_GB, MediaTek), Australian firmware | Google TV 12 | Same fingerprint as the EU G08 list (STT2.221228.001 AS34) plus the Australian preloads: Stan, AirPlay (kept), TCL Channel, TCL Live free channels (channelplus), e-sticker, hotel portal, TCL Guard; no Google Cast or voice assistant. Launcher with HomeKeyService: Settings, TV (HDMI 1), YouTube→SmartTube and Netflix→Plex buttons mapped, at the cost of volume repeat (measured on this G08 too). No aerial, so with channelplus off there is no Live TV: the tuner only holds TCL Live IP channels and falls back to HDMI 1 | | `tcl-g08-eu-android12/` | TCL Smart TV Pro (G08, G08_4K_GB, MediaTek), Europe/UK firmware | Android TV 12 | Older EU G08 build (STT2.221228.001 AS34): the US list applies only partially — no Samba-ACR ttvs payload, no AirplayAPK, no hotelmenu/TV+/e-sticker preloads, no Android 14 ad services. TCL pushes/demo/help, duplicate webviews, Mediatek casting leftovers, Play Movies, TTS, dreamx, printspooler; suspension/interactive/ttvs listed as DO-NOT-DISABLE (they host the Source-key QuickPanel and the TIAS source overlay — disabling kills the remote Source key, verified fix on a live set); stock launcher kept; debloat only. A second unit, a 75Q7C on AS36 with five more TCL preloads (commented), runs the launcher as Home: remote keycodes and the volume-repeat trade in the README | @@ -298,7 +302,7 @@ on that firmware, grouped and commented. These are starting points: comment out | `xiaomi-mitv-moor2/` | Xiaomi MiTV-MOOR2 / MOOR4 (venom, MediaTek) | Google TV 11 | Mi ad row and PatchWall, Mi analytics, MiLink, store demo; setup wizard off so a third-party launcher can own Home; MOOR4 on the same firmware: setupwraith owned the setup Wi-Fi (forget and re-join first), Continue watching is not in the local TV provider | | `xiaomi-mitv-mosr4/` | Xiaomi MiTV-MOSR4 (irobot, MediaTek) | Google TV 11 | Mi ad rows and PatchWall, Mi analytics, TV Manager, Miracast sink, OTA off by choice; setup wizard off so a third-party launcher can own Home; `overseaservice` hosts the Netflix key and must stay; second unit: setupwraith before launcherx, remote buttons need both key services and `config.json`, and those services cost the volume's live repeat; [notes](../docs/devices/xiaomi-mitv-mosr4.md) | | `xiaomi-mitv-mssp0/` | Xiaomi MiTV-MSSP0 / Xiaomi Mi TV 4A 32 (amelie), firmware PI.5926 | Android TV 9 | Xiaomi telemetry and promo helpers, Google recommendation feeds; Assistant, Gallery and media browser off by owner choice; Clock replaces Backdrop; TV inputs, Gboard, Bluetooth and firmware update settings kept; 11 packages, applied October 19 and checked again October 21 | -| `xiaomi-mitv-mssp1/` | Xiaomi MiTV-MSSP1 (nino), firmware PI.5925 | Android TV 9 | Eight Xiaomi telemetry/content and Google recommendation packages; replacement Home reboot-checked; updater, Assistant, Chromecast, USB media and TV input services kept enabled | +| `xiaomi-mitv-mssp1/` | Xiaomi MiTV-MSSP1 (nino), firmware PI.5925 | Android TV 9 | Eight Xiaomi telemetry/content and Google recommendation packages, plus verified extras (report senders, partner auto-installer, both heavy screensavers with a reassign-first warning, TV Manager, restorable Google preinstalls, Xiaomi media/accessibility leftovers); replacement Home reboot-checked; updater, Assistant, Chromecast, USB media and TV input services kept enabled | | `xiaomi-mitv-mssp2/` | Xiaomi MiTV-MSSP2 (volver, MediaTek), firmware PI.4621, low-RAM | Android TV 9 | PatchWall, Mi analytics, TV Manager, partner auto-installs, Google feedback/bug reports, old leanback home still installed; hotkeys, phone remote, Media Player, updater and Chromecast kept; empty Live TV/HDMI screenshots | | `xiaomi-mitv-mssp3/` | Xiaomi MiTV-MSSP3 (machuca, MediaTek) | Android TV 11 | PatchWall, Mi analytics, Netflix observer; Chromecast, screensavers, unused streaming apps off by choice | | `xiaomi-mitv-mssp3-android9/` | Xiaomi MiTV-MSSP3 (machuca, MediaTek), Android 9 firmware PI.7524 | Android TV 9 | Same model before its Android 11 update: PatchWall, Mi analytics, TV Manager, OTA; voice assistant re-enables itself at every boot (updated system app rescan); screensaver, preloaded apps off; 1.8 GB, swap full before; notes for the older PI.4663 build (two packages absent, old leanback home to disable) | diff --git a/tests/test_translation_recipe_gate.py b/tests/test_translation_recipe_gate.py index 474f1e96..1e42f194 100644 --- a/tests/test_translation_recipe_gate.py +++ b/tests/test_translation_recipe_gate.py @@ -5,7 +5,7 @@ in `values/strings.xml`, so a full language is by far the largest thing a transl adds to `launcher/app/src/main/res/` - and the release APK has a hard budget: `.github/workflows/ci.yml`'s `launcher` job, which runs on every pull request in `launcher/`, measures `launcher/app/build/outputs/apk/release/app-release.apk` and fails the build at 589,824 B. The launcher -ships just under that (README.md quotes about 518 KB), and #1271 is a full Korean translation that did +ships just under that (README.md quotes about 520 KB), and #1271 is a full Korean translation that did not fit. Until now the page said nothing about it, so a translator could follow the recipe exactly and land a red build at a step the page never mentions. diff --git a/tools/readme_stats.py b/tools/readme_stats.py index fd75f9a0..565415ca 100644 --- a/tools/readme_stats.py +++ b/tools/readme_stats.py @@ -37,7 +37,7 @@ try: except ImportError: sys.exit("readme_stats.py needs Pillow: tools/venv/bin/pip install -r tools/requirements-perf.txt") -STATS = [("303", "TV MODELS"), ("86", "BRANDS"), ("28", "LANGUAGES"), ("518 KB", "LAUNCHER")] +STATS = [("307", "TV MODELS"), ("87", "BRANDS"), ("28", "LANGUAGES"), ("520 KB", "LAUNCHER")] W, H = 1600, 240 img = Image.new("RGB", (W, H), "#15181e"); d = ImageDraw.Draw(img) def f(size, wt):