Skip to content

Instantly share code, notes, and snippets.

@0x4f53
Last active July 21, 2024 19:52
Show Gist options
  • Save 0x4f53/27bee9a0069f7bd6a2aa9eb60bb10d1e to your computer and use it in GitHub Desktop.
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=()
bloat+=("com.tcl.partnercustomizer")
bloat+=("com.tcl.smartalexa") # alexa integration for tv controls
bloat+=("com.tcl.gallery") # gallery app
bloat+=("com.tcl.notereminder") # notes and reminders app
bloat+=("com.google.android.videos") # Google Play Movies and TV (Doesn't get rid of homescreen recommendations)
bloat+=("com.google.android.play.games") # Google Play Games
#bloat+=("com.android.vending") # Google Play Store
bloat+=("com.tcl.MultiScreenInteraction_TV")
#bloat+=("com.tcl.tv") # Important TV elements, such as switching between HDMI and AV mode
bloat+=("com.tcl.ui_mediaCenter") # USB File explorer app
bloat+=("com.tcl.messagebox")
bloat+=("com.netflix.ninja") # Netflix TV app
#bloat+=("com.amazon.amazonvideo.livingroom")
bloat+=("tv.wuaki.apptv")
bloat+=("com.tcl.guard") # Shitty "antivirus"
bloat+=("com.tcl.tvweishi") # Homescreen service for shitty "antivirus"
bloat+=("com.tcl.t_solo")
bloat+=("com.tcl.dashboard")
bloat+=("com.tcl.tv.tclhome_master")
#bloat+=("com.google.android.tv.remote.service")
bloat+=("com.tcl.copydatatotv")
bloat+=("com.tcl.initsetup")
bloat+=("com.android.camera2")
bloat+=("com.android.messaging")
bloat+=("com.tcl.usercenter")
bloat+=("com.tcl.externaldevice.update")
bloat+=("com.tcl.useragreement")
bloat+=("com.tcl.appstatecontroller")
#bloat+=("com.tcl.micmanager") # Enables mic on TV remote
#bloat+=("com.google.android.youtube.tv")
bloat+=("com.google.android.youtube.tvmusic")
#bloat+=("com.google.android.tvlauncher") # Stock Android TV (7.0) Launcher (lightweight)
bloat+=("com.google.android.leanbacklauncher.recommendations") # "Shop" page on homescreen
bloat+=("com.google.android.apps.tv.launcherx") # New Google TV Launcher (heavy and hated)
bloat+=("com.google.android.tvrecommendations")
bloat+=("com.google.android.marvin.talkback")
bloat+=("com.android.dreams.basic")
bloat+=("com.tcl.bi")
bloat+=("com.google.android.backdrop")
bloat+=("com.google.android.apps.mediashell")
bloat+=("com.tvos")
bloat+=("com.tcl.videoplayer")
bloat+=("com.google.android.apps.nbu.smartconnect.tv")
bloat+=("android.autoinstalls.config.tcl.device")
bloat+=("com.android.printspooler")
bloat+=("com.tcl.esticker")
#bloat+=("com.google.android.inputmethod.latin") # Gboard
# bloat+=("com.google.android.katniss") # Google Assistant overlay for TV
bloat+=("com.google.android.syncadapters.calendar")
bloat+=("com.google.android.onetimeinitializer")
bloat+=("com.google.android.partnersetup")
#bloat+=("com.google.android.gms") # Play Services
bloat+=("com.google.android.gsf")
bloat+=("com.android.providers.calendar")
bloat+=("com.tcl.keyhelp")
bloat+=("com.android.providers.contacts")
#bloat+=("com.google.android.tv.assistant") # Google Assistant
bloat+=("com.google.android.feedback")
bloat+=("com.android.providers.userdictionary")
bloat+=("com.tcl.miracast")
bloat+=("com.tcl.audioplayer")
bloat+=("com.tcl.overseasappshow")
bloat+=("com.tcl.rc.ota")
bloat+=("com.tcl.imageplayer")
bloat+=("com.tcl.pvr.pvrplayer")
bloat+=("com.tcl.appmarket2")
bloat+=("com.google.android.sss.authbridge")
#bloat+=("com.google.android.tts") # Text to speech, talks back to user
bloat+=("com.tcl.xian.StartandroidService")
bloat+=("com.tcl.versionUpdateApp")
bloat+=("com.tcl.assistant")
bloat+=("com.tcl.waterfall.overseas")
bloat+=("com.tcl.factory.view")
bloat+=("com.tcl.system.server")
bloat+=("com.google.android.tv.frameworkpackagestubs")
bloat+=("com.google.android.ext.shared")
#bloat+=("com.tcl.framework.custom") # Important TV UI elements, such as the volume controls
#bloat+=("com.google.android.permissioncontroller") # Permissions granter
#bloat+=("com.google.android.overlay.modules.permissioncontroller") # Permissions granter
#bloat+=("com.google.android.overlay.modules.permissioncontroller.forframework") # Permissions granter
bloat+=("com.google.android.overlay.modules.ext.services")
#bloat+=("com.google.android.overlay.modules.modulemetadata.forframework")
bloat+=("com.android.location.fused")
bloat+=("uk.co.freeview.mdsclient")
bloat+=("uk.co.freeview.amc_catchup")
bloat+=("com.update.appnews")
bloat+=("com.tcl.bootadservice") # ads within tcl apps
bloat+=("uk.co.freeview.onnow")
bloat+=("au.com.stan.and")
bloat+=("uk.co.freeview.uktv")
bloat+=("uk.co.freeview.fvpconfigauth")
bloat+=("uk.co.freeview.systemdistributor")
bloat+=("uk.co.freeview.tifbridge")
bloat+=("com.linecorp.linetv")
bloat+=("uk.co.freeview.explore")
bloat+=("com.google.android.videos")
bloat+=("uk.co.freeview.bbc")
bloat+=("uk.co.freeview.ch5")
bloat+=("uk.co.freeview.itv")
bloat+=("uk.co.freeview.stv")
bloat+=("com.aos.aostv")
bloat+=("uk.co.freeview.amc_horror")
bloat+=("uk.co.freeview.ch4_vod")
bloat+=("com.graymatrix.did")
for package in "${bloat[@]}"; do
echo "> ${package}"
#adb shell cmd package install-existing $package # uncomment this to reinstall everything you uninstalled
adb shell pm uninstall --user 0 $package
done
adb reboot
@0x4f53
Copy link
Author

0x4f53 commented Jul 21, 2024

This script tries to debloat TCL TVs running Android TV 7.1 and makes them resemble stock Android TV 7.0 as closely as possible.

Tested on: tcl beyondtv v8-r851t02-lf1v634

Core functionality such as Google Assistant, TV input picker, TV image settings etc. still remain. You can uncomment the commented lines to remove them as well.

After you're done with these, if you want to get rid of the Android TV home screen, install an app like Projectivy Launcher first, then remove the Android TV launcher by running adb shell pm uninstall --user 0 com.google.android.tvlauncher.


Inspired by:
https://sites.google.com/site/tweakradje/devices/xiaomi-mi-tv-stick
https://gist.github.com/ungeskriptet/b97929def22723f925a7ed3a295dac57

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