summaryrefslogtreecommitdiff
path: root/src/assets/blog/2025-03-11.md
blob: 1591698a4ac6525bdbc46cf5c2575dfca684b250 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
---
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.

![Google TV](public/blog/googletv.jpg)

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:

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 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](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 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](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 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.

![Google TV running Flauncher User Interface](public/blog/flauncher.jpg)

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](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 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. It looks like this...

![New Input Switcher Menu](public/blog/tvinput.png)

If your TV has the file on it but the app is not installed to your android
user you can try doing the following...

```bash
adb shell pm install-existing --user 0 com.mediatek.wwtv.tvcenter
adb shell pm enable --user 0 com.mediatek.wwtv.tvcenter
```

If that doesnt work try looking at the path `/system_ext/priv-app/LiveTV` as
that is where I found the apk. I also have a mirror for it [here](/public/blog/LiveTV.apk).

#### 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:
```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
# 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](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 recommend [LeanKeyboard](https://github.com/yuliskov/LeanKeyboard).

You can disable these applications with the following
```bash
# 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](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. 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.
```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.

![Debloated Google TV playing PS3 game](public/blog/beatmania.jpg)

Now if you excuse me I am going to go play some beatmania on my debloated
Google TV. :)