How to unenshittificate your Google TV
In August 2024 I bought my first tv ever at Wallmart, a Pillips 7000 series 4K Ultra HD LED Google TV. For only $280 I had a 4K tv that I could use to stream content from my PS3, Wii, and my local media server. It's a bit sluggish running a cheap 32-bit arm processor, but thats not my biggest problem with the tv. I got sick of those damn ads.
Those damn ads
Below is the promotional image for the tv I purchased from phillips. The biggest thing on the screen is an Oppenheimer ad, taking up 50% of the screen real estate. Below is "Top picks for you" which google puts in ads or "recommendations" for movies/shows that promoters want me to watch. And finally below that is a list of apps installed on the tv which contains a ton of preloaded apps that you cannot remove from my tv. My tv came with Netflix, Prime Video, Tubitv, and Univision none of which I use. But because I could not uninstall these apps from my tv I was locked into them.
Even being a tech savy person I didn't realize what I was getting into when I bought my tv. I personaly use Linux, Ad Block in my Firefox browser, and heavly manage what software is running on the devices I own. When faced with my tv I wanted to do the same. I wanted to strip away the ads, the recommendations, the preinstalled applications, and make the tv truly mine. In this guide I am documenting the process on how to do just this. But first I must quickly talk about dumb tv's.
Just use a dumb tv
The easy and commenly recommended solution to my problem is to just
"Get a dumb tv! They dont have any preinstalled apps or ads, just your content."
It is true that dumb tv's would solve my problem, but the problem is that you cannot buy dumb tv's, or at least in retail. Back in the early 2000s all tv's were dumb, I have a tv that is 720p with massive bezels that just shows content from my console and computers. It works great as a dumb tv and does have the problems stated earlier, but I want a tv that is at least 1440p (preferably 4K) and at least 50 inches. I commenly have people over where I live and its a nice-to-have to have a nice tv. The problem is that dumb tv's that fit this criteria are not really sold to consumers any more, at least on the cheaper end. It is more profitable for OEMs to put smart software in their devices to get monetary kickbacks from either Google, Roku, or Amazon. There are still dumb tv's being sold to business but you should expect to pay a pretty penny for one. Since they are made for businesses, and the manufacturer doesnt get kickbacks, they cost a lot more. Getting a dumb tv is not a solution for most people, especially those who already bought an affordable smart tv from retail.
The Guide
Ok so now that dumb tv's are out of the way, this is the plan on how you "unenshittifiy" your Google/Android tv.
The core of this guide centers around that Google TVs run android, a mobile linux based distribution. All android devices support a USB debugging feature called adb (Android Debug Bridge) that allows the user to access higher privileged settings/operations then from the normal user interface. With adb you can disable and partially uninstall preloaded applications, change the user interface (called the launcher), and sideload custom applications that is not provided in Androids "Google Play Store".
In an itemized list this guide will:
- Replace the default launcher with flauncher
Flauncher is a launcher (default user interface) for Google TVs. It is simple and just shows the installed apps on the tv, no ads, nothing else. I am using a fork of flauncher that includes some fixes and improvements, but you can also just use the original here.
- Removing all preinstalled applications
No more Netflix or Amazon Prime Video if you dont use them!
- Removing everything Google
Google likes to inject their services into everything they use spying on you in the process. In the process we will add apps that replace some of the functionality lost when removing these apps.
⚠️ Warning ⚠️
Before you start or do anything listed in this guide or any other guide be warned that you are completing these operations AT YOUR OWN RISK with FULL LIABALITY if anything is to go wrong. It is unlikely that anything listed here should result in bricking your tv but it is possible. I will also note that many google tv's can still be easily factory reset to fix anything if the tv does break, but you should still proceed with caution.
1. The user interface
The image posted in the opening to this blog post shows the default user interface for Google TV and as described it sucks. In Android everything is an app including the default user interface that your tv loads into, and on Android these are called launchers. On most Android phones you can select your launcher of choice but google tv does not let you do that directly. To change the user interface you MUST install an app that supports being a luncher and then disable the Google TV launcher AFTER installing the custom launcher. If you do this in the wrong order you will likely brick your tv.
First download your launcher of choise. As stated earlier I am using Flauncher for this, but there are other launchers avaliable if you wish to look around.
Once you have downloaded your launcher (it should be an APK) we then need to install it to your tv. To do this we need to connect adb to your tv. To enable debugging on your tv, fist open settings and find the entry listing your tv's build number (usually under System > About). Click this option multiple times and the tv should state that "You are now a developer". Go back into just System settings and enter "Developer Options". Find USB debugging and enable it. Then connect a USB cable to your tv and a computer that you installed android tools onto. Run...
$ adb devices
... and a prompt to verify your device should show up on your tv. Approve this message and you now have adb connected to your tv.
Finally run...
$ adb install <path to apk locally>
... to install the custom launcher onto your tv.
To verify that this works open the launcher app from your default google tv interface. If it works great! If it doesnt show up as a google tv app or doesnt work I would reccommend using a different launcher.
Above is my tv running FLauncher! Horray!
Now you will notice that when your press the home button on your Google TV remote, select the home option in the input menu, or restart your tv that it will boot into the default user interface. You have two options to fix this
Option 1: Remap the home button
Using Button Mapper which is avaliable in the play/auora store, you can remap your home button to open your custom launcher application instead of acutally going home (which is the Google TV default interface). The downside to this is that the tv will always boot into the Google TV default interface and menus like the input switcher will do the same. If you always want your custom launcher see option 2.
Option 2: Disabling the default launcher
On my Google TV the launcher application was called com.google.android.apps.tv.launcherx
.
Using adb you can disable the launcher application (along with another app)
to stop google tv from using the default interface.
# Disable com.google.android.apps.tv.launcherx which is the default launcher on CCwGtv
$ adb shell pm disable-user --user 0 com.google.android.apps.tv.launcherx
# com.google.android.tungsten.setupwraith will then be used as a 'fallback' and will automatically
# re-enable the default launcher, so disable it as well
$ adb shell pm disable-user --user 0 com.google.android.tungsten.setupwraith
With the default launcher disabled google tv SHOULD fallback to your custom launcher application at all times. If it does not do this the tv will result in a soft brick. Be warned.
1.5. Fixing the input switcher (with LiveTV from mediatek)
If you are using a physical google tv and not just a streamer such as a chromecast, disabling the custom launcher will break your input switcher if your custom launcher does not support switching inputs on its own (flauncher does not). If this is the case you need to find a different input switcher application.
My google tv uses mediatek for alot of its software, and I think alot of Google
TVs do the same. If you have the same luck that I did you MAY have an
application hiddden in your tv called com.mediatek.wwtv.tvcenter
. This
application will bring back a different input switcher that I like alot better then
the default included one. There are two things you can try to get this working
if your tv uses mediatek.
Option 1: Install from file
I recommend trying option 2 first. If it doesnt work due to missing application then try this option.
Try to find an file called 'LiveTV.apk' on your tv. Within adb shell run
adb shell find / -name "LiveTV.apk" 2>/dev/null
With luck you should find an apk on your tv with this name and the package name
of com.mediatek.wwtv.tvcenter
. If you do run
adb shell pm install --user 0 <path to apk on tv>
If your tv does not have an apk you can try using the one from my tv hosted here.
Option 2: Install from package manager
Run the following commands
adb shell pm install-existing --user 0 com.mediatek.wwtv.tvcenter
adb shell pm enable --user 0 com.mediatek.wwtv.tvcenter
If the commands fail stating that the apk is not found try option one if you havent done it. If the commands fail stating that an app is already installed try checking the tv if the input switcher works or the "LiveTV" app is installed. If not then your SOL (from what I know).
2. Removing preloaded applications
Now that we have a working custom launcher, the next step is to remove the preloaded applications on the tv. On my tv the following applications were preloaded and can be removed with:
# Netflix
$ adb shell pm uninstall --user 0 com.netflix.ninja
# Prime Video (Amazon)
$ adb shell pm uninstall --user 0 com.amazon.amazonvideo.livingroom
# Tubitv
$ adb shell pm uninstall --user 0 com.tubitv
# VIX (Univision)
$ adb shell pm uninstall --user 0 com.univision.prendetv
# Youtube
$ adb shell pm uninstall --user 0 com.google.android.youtube.tv
# LiveTV X (anoki ai tv bullshit or something)
$ adb shell pm uninstall --user 0 com.cltv.cltv
If you have other apps you can just replace the command above with the package name of the app you want to remove. If using flauncher you can view the package name by long pressing over the app icon.
If you still want youtube I recommend SmartTube as an alternative.
3. Removing everything google
The main google apps on my tv that I dont want are the google play store, google play services, gboard (google keyboard), and the google app.
If you are to disable gboard (google keyboard) you MUST install a different keyboard first and enable it. I recommend LeanKeyboard.
You can disable these applications with the following
# Google Play Store
$ adb shell pm disable-user --user 0 com.google.android.play
# Google Play Services
$ adb shell pm disable-user --user 0 com.google.android.gms
# Google App
$ adb shell pm disable-user --user 0 com.google.android.katniss
# Gboard
$ adb shell pm disable-user --user 0 com.google.android.inputmethod.latin
Horray! You may now notice that you can no longer install applications from your google tv. The solution is installing an f-droid client and alternative play store client. I recommend Droid-ify and Auora Store respectively. Droid-ify will allow you to install apps from F-droid which is a free and open souce (FOSS) repository of android apps. Auora Store will allow you to install applications from the google play store without having to log in. These apps are not really made for Goolge TV and this suck navigating with a remote, so I recommend connecting a mouse or using the android tv bluetooth remote app on your phone.
4. Fixing issues on reboot
Finally you may notice that your google may reset some changes every time your tv reboots. On my tv google will re-enable google play services (GMS) and the google app. My tv will also disable the "LiveTV" app that allows me to switch inputs. Below is the script I use everytime I fully restart my tv. You dont have to run this if the tv goes to sleep, and you should modify this script to reflect your situation.
#!/bin/sh
# script to run everytime tv is restarted
# unfucks the tv and does good things
# > connect to tv
# if you are using debugging over a usb cable this is not needed. I connect adb
# over tcp so I need to specify where adb needs to connect. If you are also
# using tcp make sure to change the ip to the ip of your tv.
adb connect 10.254.0.182
# > fuck google (tv enables them on boot)
adb shell pm disable --user 0 com.google.android.gms
adb shell pm disable --user 0 com.google.android.katniss
adb shell am force-stop com.google.android.gms
adb shell am force-stop com.google.android.katniss
# > fix livetv (gets borked on boot, allows changing of inputs)
# this app gets into a weird state on reboot so it needs to be uninstalled
# so that it can be reinstalled/enabled. Make sure to add -k to keep user
# settings and data when uninstalling.
adb shell pm uninstall -k --user 0 com.mediatek.wwtv.tvcenter
adb shell pm install-existing --user 0 com.mediatek.wwtv.tvcenter
Were Done!
Unless I missed anything you should now have a fully debloated, more functional, less ad ridden Google TV. Horray! If you ever run into any issues I always recommend checking out the XDA Fourms or searching your problem in a search engine. I hope this worked out for you and you now have a tv that is truly yours.
Now if you excuse me I am going to go play some beatmania on my debloated Google TV. :)
Comments
No commentsNew comment: