For Google TV and Android TV

A TV home screen without the ads and trackers.

shangOS shows your apps and nothing else: no promoted rows, no sign-in, no tracking. It is free, open source and reversible, and you set it up from your computer in about five minutes.

  • Android 12 or newer
  • About 2.4 MB
  • MIT licence
  • Fully reversible
The shangOS Home page on a TV: a large greeting with the weather, an Up Next row, a weather card, and a row of app tiles for Jellyfin, Proton VPN, Stremio, VLC, Settings and Pluto TV.
Home with the Daybreak wallpaper, from a release build.
Why it exists

A home screen that just shows your apps

The first thing you see every day should not be an advert or a data collector. Everything here is reachable with the d-pad and OK: no phone, account or keyboard.

No ads, no promoted rows

Home shows your own apps and what you were in the middle of watching. Nothing on it is sponsored or sold.

Nothing leaves your TV

No accounts, analytics or crash reports. Weather and poster pictures can use the internet, both only if you allow them, and the Offline build removes even that permission.

Light on cheap sticks

Built and tested on a stick with 1.4 GB of RAM. It picks a performance level for your TV, shows why, and lets you change it.

Yours to arrange

Choose the order of your apps and which widgets show: Up Next, Now Playing, Control, Inputs and Weather. Hide what you never use.

A calm look

Eight wallpapers, a clock-over-wallpaper screen saver, and your own photo. Tiles take their colour from each app’s own icon.

Easy to undo

Home goes back to your TV’s launcher before shangOS is removed. The wizard remembers what it changed so it can reverse it.

One line

Install it from your computer

Run this in a terminal on a computer on the same Wi-Fi as the TV. A guided wizard finds the TV, shows every command before it runs, and installs the signed release.

macOS

Terminal
$ curl -fsSL https://shangos.madusha.dev/setup.sh | bash

Linux

Terminal
$ curl -fsSL https://shangos.madusha.dev/setup.sh | bash

Windows

PowerShell
PS> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; iex ((New-Object Net.WebClient).DownloadString('https://shangos.madusha.dev/setup.ps1'))

First time? The setup page shows how to turn on debugging on the TV. You can read the script before running it.

Optional

Block ads and trackers in your other apps too

shangOS itself shows no ads, but your other apps still can. One setting makes the whole TV refuse known ad and tracker domains.

It uses Android’s built-in Private DNS, set to AdGuard DNS or to a server of your own. It is off unless you ask for it, and one command turns it off again.

Be aware: the DNS provider you pick sees the names your TV looks up. Some apps may show fewer ads, load differently, or refuse to start. Apps that use their own DNS skip the filter. The details and the limits.

macOS

Terminal: turn it on
$ curl -fsSL https://shangos.madusha.dev/setup.sh | bash -s -- --dns adguard
Terminal: turn it off again
$ curl -fsSL https://shangos.madusha.dev/setup.sh | bash -s -- --dns off

Linux

Terminal: turn it on
$ curl -fsSL https://shangos.madusha.dev/setup.sh | bash -s -- --dns adguard
Terminal: turn it off again
$ curl -fsSL https://shangos.madusha.dev/setup.sh | bash -s -- --dns off

Windows

PowerShell: turn it on
PS> & ([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://shangos.madusha.dev/setup.ps1'))) -Dns adguard
PowerShell: turn it off again
PS> & ([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://shangos.madusha.dev/setup.ps1'))) -Dns off
Wallpapers

Eight looks, plus your own

Pick one in Settings with a live preview. Daybreak follows the time of day. Milky Way and Calm Sea are photographs from Poly Haven (CC0); the other six were generated for this project.

  • The Daybreak wallpaper: a full-screen backdrop for the Home page
    Daybreakfollows the sun
  • The Aurora wallpaper: a full-screen backdrop for the Home page
    Auroradrawn in code
  • The Ember wallpaper: a full-screen backdrop for the Home page
    Emberdrawn in code
  • The Tide wallpaper: a full-screen backdrop for the Home page
    Tidedrawn in code
  • The Orchid wallpaper: a full-screen backdrop for the Home page
    Orchiddrawn in code
  • The Glacier wallpaper: a full-screen backdrop for the Home page
    Glacierfor bright rooms
  • The Milky Way wallpaper: a full-screen backdrop for the Home page
    Milky Wayphoto, CC0
  • The Calm Sea wallpaper: a full-screen backdrop for the Home page
    Calm Seaphoto, CC0
Privacy

Small list of what leaves the TV

There are two things, both under your control. Everything else stays on the device.

Read the privacy page

Can reach the internet

  • Weather, only if you switch it on: a coarse location of the city you chose (about 1 km) goes to Open-Meteo.
  • Poster pictures for Up Next: fetched from the address the streaming app publishes, on Wi-Fi or Ethernet by default.

Never

  • Accounts, identifiers, analytics, crash reports or advertising.
  • Backups to the cloud. Uninstalling removes every stored byte.
  • Network access at all, in the Offline build.
Measured

How light is it?

After ten trips back to Home, shangOS 0.2.2 held 57.6 MB and Luma TV 2.4 held 103 MB (44% less). Start-up time was about the same.

Lower is better in every row
MeasureLuma TV 2.4shangOS 0.2.2 (auto)
Memory in use, idle on Home70.8 MB46.6 MB
Memory after 10 trips back to Home103.0 MB57.6 MB
Time to first frame after a restart (median of 8)458 ms477 ms
Trip back to Home143 ms136 ms
Processor use while idle on Home9.6 % of one core4.4 % of one core
Janky frames while moving around7.0 %3.7 %

Measured 2026-10-30 on one TV: onn. Full HD Streaming Device, Android 14 (API 34), armeabi-v7a (1.4 GB RAM, 1280x720 at 213 dpi). The current release is 0.6.1; shangOS 0.2.2 was measured, so newer versions have not been measured yet. One TV on one day is a guide, not a promise; differences under about 10% are noise. Memory is Android’s own figure (PSS), in MB of 1,024 kB. The method is written down, the raw numbers are in bench.json, and tools/bench.sh measures your own TV.

Download

Prefer to do it by hand?

Every release has two APKs (Standard and Offline) and a SHA256SUMS file. The setup page lists the few adb commands and how to check the signature.

Verify
# check the download, then the signer
$ sha256sum -c SHA256SUMS --ignore-missing
$ apksigner verify --print-certs shangos-*-release.apk

The certificate fingerprint must match the release notes and the TV’s own Settings, Privacy, This build screen.

Questions

Good to know first

Why do I need a computer?

Android TV and Google TV have no setting for choosing a different home app, so it is set once with adb, Android’s standard developer tool, over your home network. The setup wizard does it for you and takes about five minutes.

Is it safe?

You can check each part yourself. The source is public. Each release is signed, ships with a SHA256SUMS file, and the setup wizard checks it before installing. The app has no accounts and no analytics, and the Offline build does not even ask Android for network access. Read the privacy page for exactly what is sent, and when.

Does it block ads in other apps?

shangOS itself shows none, but it does not change other apps. If you want that, the setup wizard can switch on an optional ad and tracker filter for the whole TV (Android’s Private DNS). It is off by default, it can be undone with one command, and it has limits: read them first.

Will it work on my TV?

It needs an Android TV or Google TV on Android 12 or newer, and the wizard checks that for you. It was built and measured on one small stick (an onn. Full HD Streaming Device) and has not been tested on every brand, so please tell me what you find. Not for phones, tablets or Fire TV.

What does it change on my TV?

It installs one app and makes it the home screen. The TV’s own home and setup apps stay switched on, so the TV always has a home to start with; if the TV keeps opening its own home, open shangOS from the app row. Nothing else is touched: no root, no firmware. Full list.

How do I go back?

Run the wizard again and choose Remove shangOS. It gives Home back to your TV’s launcher first, then removes the app. Manual steps are on the setup page.

How do updates work?

shangOS does not check for or download updates itself. Run the wizard again, or install the new APK over the old one with adb install -r. Releases are signed with the same key, so your order, name and wallpaper stay.

Does it work on a phone or tablet?

No. It is built for the remote and a TV screen, and needs Android 12 or newer on an Android TV or Google TV device.

Who makes it?

It is a hobby project, maintained in spare time and published under the MIT licence. It began as a fork of Luma TV (see credits). Bugs and ideas go on GitHub.