Motivation and thoughts
After owning the TV for six months, I figured out exactly what I needed from it. Since I use it as a monitor for my PC, I have no need for any "smart" features; I simply require the TV to display an image that looks good to my eye.
However! The TV contains functional hardware, yet its purpose remains unclear. I wanted to transform it into something that actually works for me—beyond just displaying the pretty images and videos I can already access via my PC.
After extensive searching, I found nothing beyond connecting a mini-PC of some sort (which I already have), changing the launcher (already done that too), or simply uninstalling a few apps.
If it doesn't exist, we'll build it ourselves
Preparation
-
Downloading the software.
There aren't many apps involved. The main ones are:- FLauncher
- Shizuku
- Termux
- Termux:x11
- adb (on your PC—you need to actually install it, not just download it!)
Download everything from official sources (usually Git platforms)! Using forks, clones, or alternatives increases the risk.
-
Hardware.
- PC
- TV
- Mouse
- Keyboard
I’ve listed the peripherals separately here because they are specifically needed for the TV.
You simply need to have this hardware on hand.
Here is our first step: reset the TV to factory settings and check its interface and pre-installed apps. You might find you already like it as-is and don't need to go any further!
Once that’s done, we’ve eliminated obstacles like insufficient storage or RAM, as well as software-related bugs and lag, so we can move forward.
Connection Phase
At this stage, we simply establish the initial link between the systems and learn the connection process. We also install the necessary basic applications.
It is important to understand the connection method, the required actions, and the specific steps involved. You may need to connect to the PC via ADB multiple times (sometimes dozens of times), so you need to know exactly how it’s done.
We need to:
Enable USB debugging on the TV.
-
Connect to the TV via ADB.
adb connect <TV_WIRED_IP_ADDRESS>:5555
It is important to note that the TV will likely prompt for permission. You must grant permission and remember to check the "Always allow" box.
-
Install apps from the PC to the TV.
adb install <filename.apk>
Wait for the "Success" message to appear for each file.
-
Launch Shizuku.
adb shell /data/app/~~OUkzf_...many characters...-jv/arm/libshizuku.so
* Get this command from the Shizuku app installed on the TV; there is a specific section there for USB debugging. We expect to see a few lines of output here:
info: starter begin info: killing old process... info: apk path is /data/app/~~OUkzf_...many characters...-jv/==/base.apk info: starting server... info: shizuku_server pid is 17058 info: shizuku_starter exit with 0
Setting up the new system
At this stage, we configure the necessary settings to ensure the system we are using runs stably and launches automatically.
- Install the required packages in Termux
pkg install x11-repo root-repo -ypkg update && pkg upgrade -ypkg termux-x11-nightly openbox micro st fastfetch openssh -y
-
Test launching the system we've set up
termux-x11 :1 &export DISPLAY=:1openbox-session &
I should note here that after entering the 1st and 3rd commands, I pressed Ctrl+C to enter the next command. There are some warnings, but I ignore them.
Open Termux:X11; you will see a black screen. Right-clicking brings up a context menu—this is the Openbox launcher.
-
Once you have the "desktop" up and running, you can tweak the settings a bit. Go back to Termux.
mkdir -p ~/.config/openboxcp /data/data/com.termux/files/usr/etc/xdg/openbox/* ~/.config/openbox/micro ~/.config/openbox/menu.xml
Here is the configuration file; add the following to it:
<item label="Terminal"> <action name="Execute"> <command>st</command> </action> </item>Save with Ctrl+S and exit with Ctrl+Q.
openbox --reconfigure
-
Start the SSH service to allow external access to the machine (for when the TV reboots or is disconnected from the power).
micro ~/.config/openbox/autostart
Leave the beginning as is, and add
sshd &on a new line at the very end.Save with Ctrl+S and exit with Ctrl+Q.
Next, set a password. Any password will do. Important! You will not see any characters while typing the password.
passwd
After setting the password, start the service immediately without waiting for a reboot.
sshd
-
Configure the system to auto-start when the TV is powered on from a cold state (i.e., when unplugged from the mains, rather than just turned off via the remote).
mkdir -p ~/.termux/bootmicro ~/.termux/boot/start-x11.sh
This is currently an empty file; paste the following into it:
#!/data/data/com.termux/files/usr/bin/sh # Allow the device to stay awake, clean up old sessions if any exist, then start a new one. termux-wake-lock rm -f /tmp/.X11-unix/X1 pkill -f termux.x11 termux-x11 :1 & sleep 3 # Start the graphical interface export DISPLAY=:1 openbox-session & sleep 2 # Automatically bring the display to the foreground for immediate use. am start -n com.termux.x11/com.termux.x11.MainActivitySave with Ctrl+S and exit with Ctrl+Q.
chmod +x ~/.termux/boot/start-x11.sh
-
Now, let's add a bit of magic to the system by automatically launching something that isn't supposed to start automatically.
pkg install android-tools -ymicro ~/.config/openbox/autostart
Move down two lines below your last entry and type the following:
adb connect 127.0.0.1:5555 adb -s 127.0.0.1:5555 shell /data/app/~~OUkzf_...lots of characters...-jv/arm/libshizuku.so* Get this command from the Shizuku app installed on the TV; there is a specific section there for USB debugging.
We now have a working system that starts automatically, enables debugging, and allows us to work with Android without the fear of breaking it. We also don't have to worry about losing important apps, since we know exactly which ones they are (the four apps from the first section). It is worth pausing here to note that, at this stage, all the changes we have made are easily reversible. That was the easy part.
Before moving on to the next step, unplug the TV from the power outlet for 5–10 seconds. Then plug it back in and wait. After about a minute, you should see a black screen with a cursor. Right-click to bring up the context menu. Click on "ST" to open the terminal window.
If something isn't working right, go back to the first step of this guide and double-check everything.
Retiring the old system
Now we need to decide what is unnecessary on the TV and what should stay.
The following apps can be removed, but under no circumstances should you delete them:
- FLauncher
- Shizuku
- Termux
- Termux:x11
The easiest way to start is by going to Settings > Apps:
- Select a specific app.
- Tap to open its info.
- Tap "Disable" (if available).
- Then tap "Clear data."
- Disable notifications further down the menu.
Important! Process 4–5 apps at a time, then turn off the TV, unplug it for 5–10 seconds, and turn it back on.
There is a slight risk that the TV won't boot up or will trigger a factory reset.
Once you have disabled the obviously unnecessary system apps, you may still have apps that cannot be disabled or uninstalled but aren't needed, or apps whose purpose is unclear.
This is where the Canta app comes in.
- Open the app.
- Tap the funnel icon in the top right corner.
- Uncheck the box for system apps.
- Go through the list from top to bottom and select the apps that are unnecessary or already disabled.
- Disabled: simply select the item, read what is being disabled, and confirm. Generally, more optimization is good. If you disable something important, just remember its name and go back into the settings to re-enable it.
- Unnecessary: ​​first, read the description and consider if you actually need it. If you are certain you don't, read it again, think it over, and then select it.
- Once you have selected the desired apps, tap the trash can icon in the bottom right corner.
Important! Process the list 2–3 apps at a time; after each batch, turn off the TV, unplug it from the power outlet for 5–10 seconds, and plug it back in.
There is a significant risk that it won't boot up.
Note one important detail:
When removing apps, you will be unplugging the TV to verify system integrity. Watch for the Termux GUI to launch; it should start automatically without your intervention.
Another important point: When you disable the TV's GUI (launcher), the screen may go dark briefly before turning back on. This is normal. You will then see FLauncher instead of the standard launcher.
Enjoy your working Linux environment, then configure everything in Openbox using standard online guides.
The Harsh Reality (or How It Went for Me)
While installing the programs was trouble-free—since it was just a matter of entering commands—I ran into issues with Shizuku because I didn't fully understand how it worked.
I tried to locate its installation path. This took a long time and led absolutely nowhere. However, once I used the command provided within the app itself, everything started working immediately, and I encountered no further problems.
The app recommends the on-device wireless debugging method, but the problem is that my TV lacks this option entirely; it doesn't appear even when connected to Wi-Fi. Another quirk of the TV is that it detects the Wi-Fi signal and even indicates that a connection is in progress, but nothing else happens; ultimately, it simply throws an error stating it cannot find the network.
As soon as you disconnect the wired internet from the TV, it immediately connects to Wi-Fi—provided you’ve already set the password. It’s a quirky piece of hardware.
Regarding the OS, I first tried installing Nix-On-Droid—which seemed logical given that I use NixOS on my main PC—but it turned out to be incompatible with my TV.
Then I tried proot-distro with Alpine, but was greeted with a "terminated with signal 11" error.
I didn't dig any deeper, as I couldn't find a comprehensive list of distributions, and there are few lightweight options suitable for my use case anyway.
So, I decided to use Termux as the system itself.
I didn't run into any issues with the system itself, since it's a "standard" Linux environment.
However, problems arose when choosing software...
I initially chose Alacritty as my terminal emulator, but launching it quickly exhausted the system's memory—filling up everything, including the swap space—and it often failed to start altogether.
So, I opted for the standard version of st instead; the lower the resource consumption, the better.
Someone might argue that I should have chosen a window manager like i3—since it’s more keyboard-friendly and lightweight. I won't dispute that; I’d simply suggest following my path but swapping in i3 instead of Openbox.
Once the system had stabilized—or achieved what passes for stability in this context—the battle for memory began. Every bit counted; the less memory the TV has, the more precious it becomes for our needs.
To solve this, you have to clean up the underlying Android system where Termux is running.
And this is where it gets interesting. There’s a reason I include footnotes in the instructions warning that this process isn't entirely safe. It works based on two interdependent factors: the safety of the action and the number of programs disabled or removed.
The more applications you have already removed, the riskier further removals become.
Success is defined as the point where you are left with only what you truly need.
I didn't need anything specific. I wanted to strip back the Android side as much as possible while retaining the device's basic functionality as a TV.
Despite what I said at the start of the article, I have to admit that—beyond just turning the thing on—it was important for me to be able to do things like switch between HDMI inputs.
Things went wrong within the first 10 minutes: I could see the Android interface and everything seemed to be working, but pressing the "Inputs" button on the remote did nothing. Furthermore, when I opened the settings via the TV interface and selected any input, it displayed an "Unable to open source" error—and Android itself was missing from the list of sources.
This is typical behavior when working almost blindly. I was working that way because, while Canta provides descriptions for many Android components found in smartphones, TV-specific components are barely documented; in my case, the system was composed mostly of unknown components.
Then came four hours of intense deliberation on how to exit the Android interface. Earlier in the guide, I describe how to prepare for such a "surprise" by setting up self-debugging via localhost, but at the time, I didn't have that article or that trick—the trick was actually born out of this very situation.
After finding a way to revert the changes, I discovered that a specific program—bearing the innocuous name "LiveTV"—contained all the hardware-related logic. When I first saw it, my only thought was how to get rid of it; I wondered why I needed this program on Android TV when the TV itself already had a built-in tuner, antenna support, and so on.
I certainly stepped right onto that rake—and proceeded to jump up and down on it.
After a minor rollback and the removal of the obvious apps, the time came for some tough choices. Thanks to the alphabetical order, the option I needed appeared right at the top. I needed to clean out Google services, including those for Android TV.
This is where it really helped that I had thought ahead about a replacement and chosen Flauncher. I couldn't find anything smaller—or rather, more minimalist—for TV.
A key factor here was the near-total absence of settings or customization options. All I needed was a way to launch an app, should I ever actually open the launcher itself.
Why does this matter? After all, it seems like we’re just swapping one thing for another.
Technically, yes, it is a swap; but practically speaking, I’d say we’re simply installing Flauncher as a placeholder. This prevents the system from freaking out and entering an infinite reboot loop because it can't find a launcher.
I considered setting it as the default right away, but I didn't include that step in the instructions; for me, doing so felt like crossing a line into dangerous territory.
With that sense of risk in mind, I reached the end of the list and found that Canta showed 58 components disabled or removed.
A few figures and statistics
- Total RAM available: 1.75 GiB. Free space: 200 MiB before cleaning, 900 MiB after.
- Total Swap available: 500 MiB. Free space: 0 before cleaning, 500 MiB after (yes, fully available).
- Number of packages "installed" on my system at the point of stabilization: 209.
- Research and planning time: ~6 months.
- Time of active work: 18 hours, with breaks.
Conclusion
It was interesting to look at working with an OS from a different perspective—one where you aren't afraid of breaking anything.
It was fascinating to see tools in action that I’d rarely encountered in articles or forums—and had certainly never used myself.
Is there any point to it? For me, it was just for fun.
I don't even know what to use this system for now. It just exists. I built it because I could, not because I needed to.
Questions for the community
- What could this system be used for?
- What other tools exist for tasks like this?
- What would you change in my list of programs, and what would you replace them with?









