googletv blog post and remove meta
312
src/assets/blog/2025-03-11.md
Normal file
|
@ -0,0 +1,312 @@
|
|||
---
|
||||
name: How to unenshittificate your Google TV
|
||||
date: 25-03-11T19:00:00-05:00
|
||||
desc: Google sucks. I have a google tv. I dont want google on my tv. Go away.
|
||||
---
|
||||
|
||||
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 tvs.
|
||||
|
||||
### 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 tvs would solve my problem, but the problem is that you
|
||||
cannot but dumb tvs, or at least in retail. Back in the early 2000s all tvs were
|
||||
dumb, I have a tv that is 720p with massive bezels that just shows content from
|
||||
my console and computers but its 720p. I want a tv that is at least 1440p and
|
||||
50in. I commenly have people over where I live and its a nice-to-have. The problem
|
||||
is that dumb tvs that fit this criteria are not sold to consumers any more. It
|
||||
is more profitable for OEMs to slap smart software on to their devices to get
|
||||
monetary kickbacks from either Google, Roku, or Amazon. There are still dumb tvs
|
||||
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 tvs 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 then normal. 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:
|
||||
|
||||
1. Replace the default launcher with [flauncher](https://github.com/CocoCR300/flauncher)
|
||||
|
||||
Flauncher is a launcher (default user interface) for Google TVs. It is simple
|
||||
and just shows the instaleld 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](https://gitlab.com/flauncher/flauncher).
|
||||
|
||||
2. Removing all preinstalled applications
|
||||
|
||||
No more Netflix or Amazon Prime Video if you dont use them!
|
||||
|
||||
3. 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 is is possible. I will also note that many google tvs can
|
||||
still be 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 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.
|
||||
Also be warned that you trust the software and developer of the launcher you
|
||||
are installing, as running untrusted code can result in malware.
|
||||
|
||||
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 tvs
|
||||
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](https://developer.android.com/tools/releases/platform-tools)
|
||||
onto. Run...
|
||||
```bash
|
||||
$ 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>
|
||||
```
|
||||
... 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
|
||||
remove, 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](https://play.google.com/store/apps/details?id=flar2.homebutton&hl=en_US)
|
||||
which is avaliable in the play/[auora](https://auroraoss.com/) 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.
|
||||
```bash
|
||||
# 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 (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 which I think alot of them
|
||||
are. 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 custom 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
|
||||
```bash
|
||||
adb shell find / -name "Livetv.apk"
|
||||
```
|
||||
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
|
||||
```bash
|
||||
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](/public/blog/Livetv.apk).
|
||||
|
||||
##### Option 2: Install from package manager
|
||||
|
||||
Run the following commands
|
||||
```bash
|
||||
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 we need to remove the preloaded
|
||||
applications on the tv. On my tv the following applications were preloaded and
|
||||
can be removed with:
|
||||
```bash
|
||||
# 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
|
||||
```
|
||||
|
||||
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](https://github.com/yuliskov/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 recomment [LeanKeyboard](https://github.com/yuliskov/LeanKeyboard).
|
||||
|
||||
You can disable these applications with the following
|
||||
```bash
|
||||
# Google Play Store
|
||||
adb shell pm disable --user 0 com.google.android.play
|
||||
# Google Play Services
|
||||
adb shell pm disable --user 0 com.google.android.gms
|
||||
# Google App
|
||||
adb shell pm disable --user 0 com.google.android.katniss
|
||||
# Gboard
|
||||
adb shell pm disable --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](https://github.com/Droid-ify/client)
|
||||
and [Auora Store](https://auroraoss.com/) 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.
|
||||
|
||||
#### 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.
|
||||
```bash
|
||||
#!/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](https://xdaforums.com/) 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. :)
|
BIN
src/public/blog/beatmania.jpg
Normal file
After ![]() (image error) Size: 137 KiB |
BIN
src/public/blog/flauncher.jpg
Normal file
After ![]() (image error) Size: 227 KiB |
BIN
src/public/blog/googletv.jpg
Normal file
After ![]() (image error) Size: 257 KiB |
Before ![]() (image error) Size: 110 KiB After ![]() (image error) Size: 109 KiB ![]() ![]() |
Before ![]() (image error) Size: 287 KiB After ![]() (image error) Size: 286 KiB ![]() ![]() |
Before ![]() (image error) Size: 197 KiB After ![]() (image error) Size: 196 KiB ![]() ![]() |
Before ![]() (image error) Size: 403 KiB After ![]() (image error) Size: 402 KiB ![]() ![]() |
Before ![]() (image error) Size: 417 KiB After ![]() (image error) Size: 416 KiB ![]() ![]() |
Before ![]() (image error) Size: 21 KiB After ![]() (image error) Size: 1.1 KiB ![]() ![]() |
Before ![]() (image error) Size: 22 KiB After ![]() (image error) Size: 2.7 KiB ![]() ![]() |
Before ![]() (image error) Size: 191 KiB After ![]() (image error) Size: 171 KiB ![]() ![]() |
Before ![]() (image error) Size: 421 KiB After ![]() (image error) Size: 401 KiB ![]() ![]() |
Before ![]() (image error) Size: 29 KiB After ![]() (image error) Size: 9.1 KiB ![]() ![]() |
Before ![]() (image error) Size: 616 KiB After ![]() (image error) Size: 596 KiB ![]() ![]() |
Before ![]() (image error) Size: 4.1 KiB After ![]() (image error) Size: 3.4 KiB ![]() ![]() |
Before ![]() (image error) Size: 12 KiB After ![]() (image error) Size: 11 KiB ![]() ![]() |
Before ![]() (image error) Size: 63 KiB After ![]() (image error) Size: 62 KiB ![]() ![]() |
Before ![]() (image error) Size: 14 KiB After ![]() (image error) Size: 14 KiB ![]() ![]() |
Before ![]() (image error) Size: 680 KiB After ![]() (image error) Size: 656 KiB ![]() ![]() |
Before ![]() (image error) Size: 81 KiB After ![]() (image error) Size: 60 KiB ![]() ![]() |