# TCL 55" 4K Google TV, 2023 model year, US (device G10, product G10_4K_US_NF, Realtek RTD2875P)
# Android 12 (Google TV, basic mode), firmware STT2.230203.001, software V8-R75PT01-LF1V499
# Likely a good starting point for other 2023+ TCL Google TV sets on the Realtek G10 platform.
#
# Also confirmed on a TCL 55P6K (Spain retail name for the same G10 platform), product
# G10_4K_GB_NF_32BIT, identical firmware build STT2.230203.001 — this list applies unchanged.
#
# Also tested on a TCL 43P69K, Netherlands (G10_4K_GB_NF_32BIT, Android 12 / SDK 31,
# build STT2.230203.001, ro.adb.secure=1). Unlike the original US unit, logkit, Samba TV ACR
# and ttvs shipped enabled; all three were disabled and stayed off after a reboot (2026-10-22).
# Its TCL Channel package is com.tcl.waterfall.overseas. That unit also disabled TGuard and
# MagiConnect, but kept TalkBack and re-enabled dreamx to keep the screensaver menu in Settings.
# Comment out TalkBack and dreamx below to match that choice; the unit-specific additions are optional.
# Tweakers groups the Netherlands range as "TCL P6K/P69K/P61K":
# https://tweakers.net/televisies/tcl/p6k-p69k-p61k_p1739438/vergelijken/
# Only the 43P69K unit above was tested here; check the product and build before using this list.
#
# Also used on a TCL C69B (EU, product G10_4K_GB, software V8-R75PT01-LF1V548, same build
# STT2.230203.001; tv.plus and smartlink.core are not installed there). That set kept
# partnercustomizer, gamebar and tv.remote.service by choice, so those three are untested on it;
# everything else on the list was disabled and lived with. Its BT_RC833 remote sends
# YouTube 4065, Netflix 4062, Prime Video 4099 and Web 4159, which only app_keys brings back once
# launcherx is off, and the gear as keycode 83 on scancode 233 (settings_key_keycodes).
#
# Also used on a TCL 55Q651G (US Q6, 2024; product G10_4K_US_NF, software V8-R75PT01-LF1V534, same
# build STT2.230203.001). As on the 43P69K, Samba TV ACR and logkit shipped enabled; both were
# disabled, along with the optional 55Q651G lines below. Kept by choice: ttvs (firmware updates),
# partnercustomizer (the remote's YouTube button goes through it, as
# googletvcustomer://com.tcl.partnercustomizer/startapp?packagename=com.google.android.youtube.tv),
# dreamx, AirPlay and ui_mediaCenter (USB media). Re-enabled: com.tcl.channelplus and
# com.google.android.tv.remote.service (see quirks). With launcherx kept for the remote's app and gear
# buttons, key_filter false and stock_home_redirect set to launcherx, a held volume key over an HDMI
# eARC soundbar (CEC) still ramps: 34 steps in about 6 s, as before any change. A cold boot stayed on
# Google TV's home until the boot probe change in #1546.
#
# Also used on a TCL 55Q6CS, India (product G10_4K_GB, software V8-R75PT01-LF1V534, same build
# STT2.230203.001, Realtek rtd6748). Tested on 2026-10-28 for one day with one reboot check, not yet lived with
# for several days. As on the 43P69K, Samba TV ACR, logkit and ttvs shipped enabled; they were disabled and stayed
# off after the reboot, as did everything else applied. tv.plus and smartlink.core are not installed. That unit
# kept tv.remote.service (the mic works), dreamx (screensaver switched to the launcher's ClockDream), AirPlay,
# Miracast and MagiConnect, and also disabled the India-firmware extras in the optional section below.
# The saved setup Wi-Fi belonged to setupwraith there too: forgotten and re-joined in Settings first.
# Its remote sends the same app keycodes as the C69B (Netflix 4062, YouTube 4065, Prime Video 4099, Web 4159,
# gear 83 on scancode 233), plus Input as 4514 (scancode 139; input_key_keycodes) and Dashboard as 4001
# (scancode 365; app_keys "4001:settings"), all dead once launcherx is off. With INPUT_KEY_SERVICE=1 and
# HOME_KEY_SERVICE=1 all of them worked from the real remote, but held volume then stepped once per press, as in
# docs/devices/tcl-55p71b-g09-key-repeat.md; the owner kept the buttons. APP_AUTO_START (below) held across the
# reboot. disable.sh skips android.autoinstalls.config.google.gtvpai there (no permission block to read for its
# input check); it was disabled by hand there, but HDMI playback was not checked afterwards, so leave it enabled
# unless you test your inputs.
#
# Apply:   TV_HOST=<tv ip> tools/disable.sh examples/tcl-g10-google-tv/debloat.txt
# Undo:    TV_HOST=<tv ip> tools/restore.sh examples/tcl-g10-google-tv/debloat.txt com.google.android.apps.tv.launcherx
# Everything is DISABLED, not uninstalled. Comment out any line you want to keep.
#
# Stock launcher: com.google.android.apps.tv.launcherx (pass it to restore.sh, the default is wrong here).
# Live TV app: com.tcl.tv (keep it, it also owns HDMI/antenna playback). Keep com.tcl.tvinput,
# com.tcl.dashboard, com.tcl.suspension, com.tcl.autopair and com.tcl.systemserver too.
# Already disabled at the factory on the original US unit: com.tcl.logkit, tv.samba.ssm.ui
# (Samba TV ACR), com.tcl.ttvs. These shipped enabled on the Netherlands 43P69K and the US 55Q651G
# (see optional lines).
#
# Known quirks on this firmware:
# - The red "TV" tile disappears from the Google TV Home row after this list (probably
#   com.tcl.partnercustomizer). TV stays in the Apps row and behind the Inputs tile.
# - Disabling dreamx leaves screensaver_components pointing at it. Switch to the AOSP fallback with
#   tools/tv.py 'settings put secure screensaver_components com.android.dreams.basic/.Colors'
#   On the 43P69K it also removes the screensaver menu from Settings. dreamx was re-enabled there;
#   leave its line commented out if you need that menu, even when using a third-party screensaver or the add-on photo-screensaver.
# - screencap writes an empty file while Live TV/HDMI is on screen. Press Home first.
# - The Google TV promo banner is drawn by launcherx itself, so only launcher/ removes it.
# - Disabling the stock launcher alone is not enough to install a replacement:
#   com.google.android.tungsten.setupwraith (the setup wizard) also claims Home at a lower
#   priority and takes over once launcherx is disabled. Disable it too before setting the new
#   launcher as Home — launcher/build-and-install.sh does this automatically and rolls back if
#   Home doesn't land on the new launcher. List it in your own debloat file so restore.sh brings
#   it back. Confirmed on two separate 55P6K units.
# - On the 43P69K, the saved setup Wi-Fi belonged to setupwraith (dumpsys wifi: cname=...setupwraith).
#   Forget and re-join it in Settings BEFORE disabling setupwraith, so the network belongs to Settings;
#   otherwise disabling its owner drops Wi-Fi and the ADB connection.
# - TclAppBoot blocks the launcher's key services (and WireGuard's VPN) at every boot until the
#   package has APP_AUTO_START (docs/TROUBLESHOOTING.md). Run `appops write-settings` after
#   `appops set com.gathin.tvhome APP_AUTO_START allow`: app-ops are saved lazily, and a plain
#   `reboot` drops the change. Confirmed on the C69B over three reboots.
# - The remote's mic button needs com.google.android.tv.remote.service, which is commented out below: a
#   press starts AtvSearchAssistantService inside that package, so with the package disabled the button
#   does nothing (no key on any /dev/input/event*) and logcat says the service is "not found".
#   `pm enable com.google.android.tv.remote.service` brings voice back without a reboot. Confirmed on a
#   43T6C (G10, Realtek, build STT2.230203.001) and on the 55Q651G; the phone-remote app pairing needs
#   it too. (#1441)
# - With no antenna channels scanned, TCL Live (com.tcl.channelplus) is Live TV's only source: with it
#   disabled, Live TV opens the channel scan (com.tcl.tv/.scan.launch.ScanMainActivity). After
#   `pm enable com.tcl.channelplus` the channels come back only after a reboot, because com.tcl.tv
#   starts its BootService at boot. Comment its line out if you watch TCL Live. Confirmed on the 55Q651G.

# TCL content, ads and promos
com.tcl.tv.plus                        # TCL TV+ content app
com.tcl.channelplus                    # TCL Live FAST channels, also removes them from Live TV; see quirks
com.tcl.tv.tclhome_passive             # pushes TCL content to the home screen at boot
com.tcl.partnercustomizer              # TCL tweaks to Google TV home rows
com.tcl.interactive                    # TCL TIAS background service
com.tcl.smartlink.core                 # bundles a silent app installer (CustomInstallService)

# Retail demo / store mode
com.tcl.exhibit
com.tcl.esticker

# Preloaded apps and services
com.tcl.ocean.instructions             # e-manual
com.tcl.repairguide
com.tcl.gamebar                        # re-enable for the console game-mode overlay
com.tcl.ui_mediaCenter                 # re-enable to play media from USB drives
com.tcl.UpdatePeripheral               # re-enable to update a TCL soundbar
android.autoinstalls.config.google.gtvpai
com.google.android.feedback
com.google.android.marvin.talkback
com.google.android.apps.tv.dreamx      # ambient mode screensaver, see quirks above
# com.google.android.tv.remote.service # phone-app remote, and the remote mic's bridge: see quirks above

# Optional: uncomment what you don't use
# Tested on the Netherlands 43P69K; telemetry shipped enabled there, unlike the original US unit.
# Samba TV ACR, logkit and guard were disabled on the US 55Q651G too; ttvs was kept there.
# tv.samba.ssm.ui                      # Samba TV ACR viewing tracking
# com.tcl.ttvs                        # TCL analytics; re-enable if firmware updates stop arriving
# com.tcl.logkit                      # log capture and upload
# com.tcl.waterfall.overseas           # TCL Channel / content feed on the 43P69K
# com.tcl.guard                       # TGuard memory cleaner
# com.tcl.magiconnectfree              # MagiConnect phone-to-TV app
# Tested on the US 55Q651G:
# com.tcl.messagebox
# com.tcl.usercenter                   # TCL account prompts
# com.tcl.useragreement                # TCL EULA screen, only needed during setup
# com.tcl.smartalexa                   # Works with Alexa
# com.google.android.play.games
# com.google.android.videos            # Google TV movies and shows
# com.tcl.airplay2                     # AirPlay, together with the next line
# com.realtek.airplay2
# com.netflix.ninja                    # Netflix, together with the next line
# com.netflix.tokenmanager
# com.amazon.amazonvideo.livingroom    # Prime Video
# com.google.android.youtube.tv
# Disabled on the India 55Q6CS (by the owner's choice for the apps):
# com.tcl.messagebox                   # TCL push messages
# com.tcl.t_solo                       # TCL promo app
# com.tcl.smartalexa                   # Alexa integration
# com.tcl.hearaid                      # hearing-aid audio app
# com.tcl.browser                      # TCL web browser
# com.google.android.youtube.tvmusic   # YouTube Music
# com.google.android.videos            # Google TV / Play Movies storefront
# com.google.android.play.games        # Play Games
