# TCL UnionTV, Latin America (ro.product.model UnionTV, TCL; persist.tcl.client_type SEM-LA-RT41KB-S1),
# Realtek RTD284x (RT2841), Android TV 9 (API 28), build PPR2.180905.006.A1 (2020-11-15), 1.4 GB RAM with
# ro.config.low_ram=true, wired Ethernet. Sold in Brazil.
# Fingerprint: TCL/UnionTV/UnionTV:9/PPR2.180905.006.A1/builder.20201115.105034:user/release-keys
# Same platform and build as examples/thomson-32he5800 (THOM-EU-RT2841-S1); this is the TCL-branded
# Latin America variant. The differences are noted below.
#
# Tested: applied 2026-10-19 in batches with screenshots between them; launcher/ installed with the default
# build-and-install script, Home, Inputs menu (HDMI 1/2, AV, Live TV), HDMI switching, Settings,
# Netflix/Prime/YouTube launch and the Clock screensaver checked on the device. Not yet lived with for days.
#
# Also confirmed 2026-10-26 on a TCL 32S6500S, identical fingerprint but persist.tcl.client_type
# TCL-LA-RT41KB-S1 (not SEM-LA-RT41KB-S1 above) and Wi-Fi only, no Ethernet. Applied in six batches with
# screenshots between them and a reboot check (all 34 disabled packages, including the launcher's own
# second pass below, survived it); launcher/ installed, Home confirmed with mFocusedApp/mResumedActivity,
# Inputs menu, D-pad from all four edges and YouTube launch checked. Not yet lived with for days either.
#
# Apply:   TV_HOST=<tv ip> tools/disable.sh examples/tcl-uniontv-latin-america/debloat.txt
# Undo:    TV_HOST=<tv ip> tools/restore.sh examples/tcl-uniontv-latin-america/debloat.txt
# Everything is DISABLED, not uninstalled. Comment out any line you want to keep.
#
# Stock launcher: com.google.android.tvlauncher (restore.sh / build-and-install defaults work). Other HOME
# claimants are only the two FallbackHome activities (com.tcl.keycustomfunctionservice,
# com.android.tv.settings); setupwraith does not claim HOME here. com.google.android.leanbacklauncher is
# also installed and stays enabled as a fallback.
# Live TV app: com.tcl.tv (keep it, it owns tuner/HDMI playback; its TVActivity has a leanback entry, so
# launcher/ needs live_tv_package com.tcl.tv - and hidden_apps needs com.tcl.tv added too, or it still
# shows as a duplicate grid tile alongside the Inputs menu's "Live TV" row; the default hidden_apps only
# excludes the placeholder com.mediatek.wwtv.tvcenter). Keep com.tcl.tvinput, com.tcl.tvpassthrough (the
# HDMI TvInputServices) and com.tcl.sourcemananger (source key / input panel). Inputs come from the
# standard TvInputManager, so the launcher's Inputs menu itself works with the default config.
# Standby: Quick start ("Iniciar rapido", STR, sys.tcl.str.switch) suspends to RAM and takes Ethernet down
# with it, so ADB, Cast and Wake-on-LAN cannot wake the TV; there is no network-standby option on this
# firmware. TCL's picture/system panel opens with `am start -a com.tcl.settings.action.NETWORKSETTINGS`.
# Not tested on the Wi-Fi-only 32S6500S unit above.
# Wi-Fi pill name on Android 9: showing the connected network's name (not just "Wi-Fi") needs both the
# launcher's own ACCESS_FINE_LOCATION grant (build-and-install.sh does this) and the TV's system Location
# turned on (`settings put secure location_mode 3` and `settings put secure location_providers_allowed
# +network`, then restart the launcher) - unlike config.xml's show_network_pill comment, which only
# mentions this gate on Android 14. Ask before turning system Location on; it is a privacy-relevant change
# beyond the app's own permission grant.
#
# Differences from the Thomson list, which keeps these three: com.tcl.partnercustomizer,
# com.tcl.copydatatotv and com.tcl.common.terminalmanagerplus were disabled here with the remote, HDMI
# switching, Settings and the launcher all still working. The remote's T key (partnercustomizer's TKey
# activity) was not tested; re-enable partnercustomizer if your remote has one and it stops working.
# Kept here but disabled in the Thomson list: the TCL media players (com.tcl.ui_mediaCenter,
# audioplayer, imageplayer, videoplayer) for USB playback, and com.google.android.partnersetup.
#
# The 32S6500S unit shipped with a few packages this list's first unit did not have:
# com.tcl.waterfall.overseas, com.tcl.useragreement, com.google.android.leanbacklauncher.partnerwidget,
# com.google.android.leanbacklauncher.partnercustomizer and com.tcl.partnercustomizer.resource - all
# disabled below with the remote, HDMI, Settings and the launcher still working.
# com.android.vending, com.tcl.browser and com.globo.globotv (Globoplay) were the apps still enabled and
# on the leanback home screen afterward on that unit, besides the ones kept below by choice; which survive
# depends on what the retailer and the owner's own account preloaded, so check `pm list packages` on yours.
#
# Two lines below (com.google.android.leanbacklauncher.recommendations and
# android.autoinstalls.config.tcl.device) disabled cleanly on the first unit, but on the 32S6500S unit
# tools/disable.sh's own TVINPUT_ALLOW safety check skipped both: dumpsys showed neither package's
# permission block, so the input-driver check could not clear them and left them enabled. Harmless either
# way (both are content/auto-install helpers, not input drivers) - set TVINPUT_ALLOW=1 once every other
# input still works after a reboot if you want them off too (#321).
#
# Deliberately NOT disabled (system-relevant or unclear): com.tcl.framework.custom, com.tcl.keyhelp,
# com.tcl.keycustomfunctionservice (remote keys), com.tcl.autopair, com.tcl.tcl_bt_rcu_service (remote
# pairing), com.tcl.settings, com.tcl.initsetup, com.tcl.appstatecontroller,
# com.tcl.xian.StartandroidService, com.tcl.ui_mediaCenter (USB playback), com.realtek.netflix.setting
# (Netflix ESN/config), Chromecast (mediashell), firmware updates
# (versionUpdateApp, rc.ota).
# Also left alone on the 32S6500S unit, none of them tested further: com.tcl.factory.view (a BootUpReceive
# receiver and a .MainMenu activity; the name alone puts it in PROMPT.md's "never even open a factory
# package" category, so it was left exactly as found, neither disabled nor started - treat it the same way
# on any TCL set until someone reports what it actually does), com.google.android.sss.authbridge and
# com.tcl.systemuioverlay (both gave dumpsys almost nothing to go on), and com.android.ListenNetStateService
# (one BootBroadcastReceiver, unclear what it feeds; low risk but untested, so left enabled out of caution).

# Telemetry and feedback
com.tcl.bi                              # TCL analytics / telemetry service
com.google.android.feedback
com.google.android.tv.bugreportsender

# Content rows, promos and auto-installs
com.google.android.tvrecommendations
com.google.android.leanbacklauncher.recommendations   # TVINPUT_ALLOW=1 may be needed, see header
com.tcl.partnercustomizer               # TCL promo rows / T-key content
com.tcl.partnercustomizer.resource      # 32S6500S unit only
com.google.android.leanbacklauncher.partnerwidget      # 32S6500S unit only
com.google.android.leanbacklauncher.partnercustomizer  # 32S6500S unit only
android.autoinstalls.config.tcl.device  # Play auto-installs of partner apps; TVINPUT_ALLOW=1 may be needed
com.tcl.esticker                        # retail demo stickers
com.tcl.appmarket2                      # TCL app store (Google Play Store stays)
com.tcl.tvweishi                        # "cleaner" widget service
com.tcl.usercenter                      # TCL account sign-in nags
com.tcl.copydatatotv                    # phone-to-TV copy helper, starts at boot
com.tcl.waterfall.overseas              # TCL content/ad app (WebActivity, VideoPlayActivity, Firebase);
                                        # com.tcl.cyberui, same family, came pre-disabled by TCL on this unit

# Preloaded apps
com.google.android.videos               # Play Movies & TV
com.google.android.play.games
com.google.android.music
com.android.printspooler
com.tcl.useragreement                   # one-time ToS screen, 32S6500S unit only

# Off by choice on this unit (voice, and two third-party apps installed on this unit); re-enable if wanted
com.google.android.katniss              # Google Assistant / voice search
com.nousguide.android.rbtv              # Red Bull TV
tv.twitch.android.app

# The 32S6500S owner also switched off their own streaming apps and Miracast. Left commented out here,
# since most owners use them; uncomment any you don't:
# com.netflix.ninja
# com.amazon.amazonvideo.livingroom       # Prime Video
# com.spotify.tv.android
# com.google.android.apps.mediashell      # Chromecast receiver
# com.tcl.MultiScreenInteraction_TV       # TCL's Miracast-like screen mirroring/DLNA app

# Second pass, applied the same day. The launcher's Clock screensaver replaces Ambient Mode:
#   tools/tv.py 'settings put secure screensaver_components com.gathin.tvhome/.ClockDream'
com.google.android.backdrop             # Ambient Mode screensaver (Google content)
com.google.android.tts                  # Google text-to-speech, ~18 MB resident; only accessibility uses it
com.google.android.marvin.talkback      # screen reader; re-enable if someone needs it
com.google.android.speech.pumpkin       # offline hotword, unused once katniss is off
com.android.gallery3d                   # old AOSP gallery; TCL Media Center opens photos
com.android.wallpaper.livepicker
com.android.dreams.basic
com.tcl.common.terminalmanagerplus      # TCL device-management service, starts at boot and watches
                                        # package installs; remote, HDMI and Settings fine without it
