Skip to content

Instantly share code, notes, and snippets.

@0x4f53
Last active November 7, 2025 16:22
Show Gist options
  • Select an option

  • Save 0x4f53/27bee9a0069f7bd6a2aa9eb60bb10d1e to your computer and use it in GitHub Desktop.

Select an option

Save 0x4f53/27bee9a0069f7bd6a2aa9eb60bb10d1e to your computer and use it in GitHub Desktop.
TCL TV debloater. I've tried making it as close to stock Android TV as possible without messing up too many core features of Android TV.
#!/bin/bash
bloat=(
"com.tcl.partnercustomizer"
"com.tcl.smartalexa" # Alexa integration for TV controls
"com.tcl.gallery" # Gallery app
"com.tcl.notereminder" # Notes and reminders app
"com.google.android.videos" # Google Play Movies and TV
"com.google.android.play.games" # Google Play Games
# "com.android.vending" # Google Play Store
"com.tcl.MultiScreenInteraction_TV"
# "com.tcl.tv" # Important TV elements (HDMI/AV switching)
"com.tcl.ui_mediaCenter" # USB File explorer
"com.tcl.messagebox"
"com.netflix.ninja" # Netflix TV app
# "com.amazon.amazonvideo.livingroom"
"tv.wuaki.apptv"
"com.tcl.guard" # Shitty antivirus
"com.tcl.tvweishi" # Homescreen service for shitty antivirus
"com.tcl.t_solo"
"com.tcl.dashboard"
"com.tcl.tv.tclhome_master"
# "com.google.android.tv.remote.service"
"com.tcl.copydatatotv"
"com.tcl.initsetup"
"com.android.camera2"
"com.android.messaging"
"com.tcl.usercenter"
"com.tcl.externaldevice.update"
"com.tcl.useragreement"
"com.tcl.appstatecontroller"
# "com.tcl.micmanager" # Enables mic on TV remote
# "com.google.android.youtube.tv"
"com.google.android.youtube.tvmusic"
# "com.google.android.tvlauncher" # Stock Android TV launcher
"com.google.android.leanbacklauncher.recommendations" # "Shop" page
# "com.google.android.apps.tv.launcherx" # New Google TV launcher
"com.google.android.tvrecommendations"
"com.google.android.marvin.talkback"
"com.android.dreams.basic"
"com.tcl.bi"
"com.google.android.backdrop"
"com.google.android.apps.mediashell"
"com.tvos"
"com.tcl.videoplayer"
"com.google.android.apps.nbu.smartconnect.tv"
"android.autoinstalls.config.tcl.device"
"com.android.printspooler"
"com.tcl.esticker"
# "com.google.android.inputmethod.latin" # Gboard
# "com.google.android.katniss" # Google Assistant overlay
"com.google.android.syncadapters.calendar"
"com.google.android.onetimeinitializer"
"com.google.android.partnersetup"
# "com.google.android.gms" # Play Services
"com.google.android.gsf"
"com.android.providers.calendar"
"com.tcl.keyhelp"
"com.android.providers.contacts"
# "com.google.android.tv.assistant"
"com.google.android.feedback"
"com.android.providers.userdictionary"
"com.tcl.miracast"
"com.tcl.audioplayer"
"com.tcl.overseasappshow"
"com.tcl.rc.ota"
"com.tcl.imageplayer"
"com.tcl.pvr.pvrplayer"
"com.tcl.appmarket2"
"com.google.android.sss.authbridge"
# "com.google.android.tts" # Text to speech
"com.tcl.xian.StartandroidService"
"com.tcl.versionUpdateApp"
"com.tcl.assistant"
"com.tcl.waterfall.overseas"
"com.tcl.factory.view"
"com.tcl.system.server"
"com.google.android.tv.frameworkpackagestubs"
"com.google.android.ext.shared"
# "com.tcl.framework.custom" # Important UI (volume controls)
# "com.google.android.permissioncontroller"
# "com.google.android.overlay.modules.permissioncontroller"
# "com.google.android.overlay.modules.permissioncontroller.forframework"
"com.google.android.overlay.modules.ext.services"
# "com.google.android.overlay.modules.modulemetadata.forframework"
# "com.android.location.fused"
"uk.co.freeview.mdsclient"
"uk.co.freeview.amc_catchup"
"com.update.appnews"
"com.tcl.bootadservice" # Ads within TCL apps
"uk.co.freeview.onnow"
"au.com.stan.and"
"uk.co.freeview.uktv"
"uk.co.freeview.fvpconfigauth"
"uk.co.freeview.systemdistributor"
"uk.co.freeview.tifbridge"
"com.linecorp.linetv"
"uk.co.freeview.explore"
"com.google.android.videos"
"uk.co.freeview.bbc"
"uk.co.freeview.ch5"
"uk.co.freeview.itv"
"uk.co.freeview.stv"
"com.aos.aostv"
"uk.co.freeview.amc_horror"
"uk.co.freeview.ch4_vod"
"com.graymatrix.did"
)
for package in "${bloat[@]}"; do
echo "> ${package}"
# adb shell cmd package install-existing $package # Uncomment to reinstall
adb shell pm uninstall --user 0 "$package"
done
adb reboot
@jzazo
Copy link

jzazo commented Aug 25, 2024

Yeah, I learnt my lesson. I installed stock firmware as I didn't know how to reinstall uninstalled packages. Next time I will try reinstalling as you suggest. However, I don't have a production TV and a non-production one, I just have one TV with bloatware to try things on.

I don't know which packages caused issues, but google play was removed and when shutting TV off and turning it on again it started going black and flashing to launcher. It was so fast that I couldn't do a factory reset with the remote so I tried reinstalling stock. It took a while because reinstalling stock failed. I had to lower the stock version, flash twice to recover. Not nice.

After going back to latest stock, I removed these packages and things seem to be working fine, I believe they are safe to remove.

uk.co.freeview.mdsclient
uk.co.freeview.amc_catchup
uk.co.freeview.onnow
uk.co.freeview.uktv
uk.co.freeview.fvpconfigauth
uk.co.freeview.systemdistributor
uk.co.freeview.bbc_sounds
uk.co.freeview.tifbridge
uk.co.freeview.explore
uk.co.freeview.explore
uk.co.freeview.bbc
uk.co.freeview.ch5
uk.co.freeview.itv
uk.co.freeview.stv
uk.co.freeview.amc_horror
uk.co.freeview.ch4_vod
au.com.stan.and
tv.wuaki.apptv
com.tcl.messagebox
com.tcl.smartalexa
com.tcl.tv.tclhome_passive
com.tcl.MultiScreenInteraction_TV
com.tcl.guard
com.tcl.notereminder
com.tcl.tv.tclhome_master
com.tcl.usercenter
com.tcl.waterfall.overseas
com.tcl.partnercustomizer
com.amazon.amazonvideo.livingroom
com.google.android.marvin.talkback
com.google.android.tvrecommendations
com.google.android.videos
com.google.android.feedback
com.google.android.play.games
com.google.android.katniss
com.google.android.partnersetup
com.google.android.syncadapters.calendar
com.google.android.syncadapters.contacts
com.google.android.tts
com.android.printspooler
com.android.providers.calendar
com.android.providers.contacts
com.android.providers.userdictionary

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment