Last active
November 7, 2025 16:22
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.