Using shangOS
Everything is reachable with the d-pad and OK. This is a tour of what is where.
The Home page
Home opens with a greeting (set your name in Settings), the date, and your wallpaper. The row of app tiles sits below. The focused tile glows, the wallpaper tilts slightly as you move, and pressing OK opens the app out of its tile. The light behind the row takes the colour of the focused app (Settings, Room lighting turns it off).
The line under each app’s name says when you last opened it. With Continue watching allowed in Privacy, it can say what you were in the middle of instead (“Continue: … · 18 min left”), with the programme’s artwork faded in behind the greeting. When you open an app and come back, focus is on that app’s tile again.
The page switcher at the top moves between Home, Apps and Settings. The clock can be hidden. A small lock appears beside it while a VPN is on, and an amber crossed Wi-Fi when the TV is offline.
Bars, cards and menus are frosted glass: they show a blurred copy of your wallpaper behind them (Settings, Frosted glass). After 20 quiet seconds the tab bar and clock fade back so the wallpaper has the room, and any key brings them back (Settings, Calm mode).
The Apps page
Every installed app, including the ones the TV hides from its own list. The order is shared with the Home row. Hold OK on a tile to open its menu:
- Open and Move to first position.
- Hide from Home keeps the app in Apps and takes it off the Home row.
- App info opens Android’s page for the app.
- Uninstall asks Android to remove an app you installed; Android asks you to confirm. It is not offered for the TV’s own apps.
Grab to move. Hold OK on a tile and it lifts. Move it with the d-pad and press OK to put it down; Back puts it down where it is. Put down without moving it, and the menu opens. Before 0.4.5 the menu has Move left and Move right instead.
Widgets
Widgets sit below the app row on Home. Press up and down to cycle them. Settings, Home widgets opens an editor where you can reorder and switch them off, with a live preview.
| Widget | Shows | Needs |
|---|---|---|
| Up Next | Items from your streaming apps’ Continue watching rows, and recently used apps. OK jumps into the programme. | Optional: permission to read TV listings, and usage access for recent apps. |
| Now Playing | What is playing in Spotify, YouTube Music, Plex and similar apps: cover, progress and remote keys. | Optional: notification access. Android needs it to see media sessions; no notification is read. |
| Control | Tiles for Wi-Fi, picture mode, sound and Bluetooth remotes. Each opens the matching system screen. | Nothing. |
| Inputs | Your HDMI inputs and tuner, with the names your connected devices report. | Nothing. |
| Weather | Hourly and seven-day forecast for your chosen city, or the main city of your TV’s time zone. Cached on the TV. | Off until you turn it on. Uses the internet; see Privacy. |
Settings
Settings opens over a soft scrim so you see wallpaper changes as you make them. The first page lists five entries: Appearance, Motion and sound, Home, Privacy and System. Each group is a page of its own, and Back returns to the first page.{nx_060}
| Section | What it does |
|---|---|
| Appearance: Wallpaper | A gallery of all eight looks, with a full-screen preview, and your own photo once you add one (from 0.4.5). |
| Appearance: Your name | The greeting on Home. Stored only on the TV. |
| Home: City | Where the weather and the sunrise are for. Choose your city from a list built into the app (also in the first-run setup), or keep Automatic, the main city of your TV’s time zone. Nothing is looked up and nothing leaves the TV (from 0.4.6). |
| Home: Temperature | Automatic follows the country of the city, or choose Celsius or Fahrenheit. |
| Appearance: Clock | Show or hide the clock. |
| Motion and sound: Performance | Auto, Light, Balanced or Quality. See below. |
| Home: Home widgets | The live widget editor. |
| Home: Apps order | How the Apps tab is ordered: your own order, A to Z, or recently used (from 0.6.0). |
| Home: Hidden apps | The apps hidden from Home; choose one to show it again (from 0.6.0). |
| Motion and sound: Room lighting | The coloured light behind the app row (from 0.4.3). |
| Appearance: Frosted glass | Bars, cards and menus show a blurred copy of the wallpaper behind them. Off with the Light performance level (from 0.5.0). |
| Motion and sound: Calm mode | The tab bar and clock fade back after 20 quiet seconds (from 0.5.0). |
| Privacy | Switches for weather and posters, a runtime Offline mode, and the signing fingerprint of this build. |
| System: Setup guide | Shows the first-run walkthrough again, with a QR code for the setup page. |
| System: About | Version, credits and licences. |
Wallpapers and your own photo
Eight looks are included. Aurora, Ember, Tide, Orchid, Glacier (clear for bright rooms) and Daybreak (changes through the day) were generated in code for this project. Milky Way and Calm Sea are CC0 photographs from Poly Haven.
Your own photo (from 0.4.5): from a computer on the same network, with a copy of the repository, run ./shangos.sh wallpaper ~/photo.jpg. The picture goes straight into shangOS’s private storage over adb: no media permission, no Photos or cloud account, no network. It appears in Settings, Wallpaper as “Your photo”, and the screen saver shows it dimmed. ./shangos.sh wallpaper --remove deletes it.
The screen saver (optional, in the setup wizard) shows a clock over your wallpaper after your TV’s own screen-saver delay.
Performance levels
On first run shangOS looks at the TV’s memory, processor and core count, and picks a level. Settings shows why, and you can change it.
| Level | What it means |
|---|---|
| Auto | The level shangOS picked for this TV. The default. |
| Light | Static wallpapers and no background drawing. For sticks with about 1 to 1.5 GB of RAM. |
| Balanced | Gentle wallpaper motion and parallax. |
| Quality | All lighting and motion effects, for TVs with plenty of headroom. |
Privacy controls
One Settings screen shows the live state of everything that can touch the network.
- Weather is off until you turn it on, and tells you what it will send before the first request.
- Remote posters: Off, Wi-Fi and Ethernet only, or Always.
- Offline mode stops the app’s own network use at once, without reinstalling.
- This build shows the SHA-256 fingerprint of the installed APK to compare with the release notes.
For the full list see Privacy.
Updates and removal
shangOS does not update itself. New releases are signed with the same key, so you install them over the old one (run the setup wizard again, or adb install -r) and keep your order, name and wallpaper. To go back to your TV’s launcher, see Undo.
Measure your own TV
The numbers on the home page come from one TV. To measure yours, install shangOS (and, if you like, Luma TV) on it and run the benchmark from a copy of the repository. It runs each launcher in turn, with the same steps and the same wallpaper, and gives the TV’s original Home back at the end.
$ tools/bench.sh -s 192.168.1.50:5555
# writes docs/data/bench.json: which TV, which versions, when, and every numberThe file is checked by python3 tools/bench-json.py --check docs/data/bench.json, and the release build publishes it next to the APKs. The method and what each number means are in MEASURING.md.
For developers
shangOS is plain Java with no third-party libraries, one process and one activity. The architecture notes, the release process and the build and test scripts are in the repository.