What the dashboard changes on the TV¶
Nothing on the read-only root filesystem is written. Everything below other than the server's own files happens only when the owner switches it on, and the riskier controls ask for confirmation in the dashboard first.
Files and startup¶
| Change | Where | Undone by |
|---|---|---|
| The server, its config and state | /var/lib/tvweb |
Uninstalling |
| Boot hook that starts the server | /var/lib/webosbrew/init.d/50-tvweb, a link into the app when installed from the Homebrew Channel |
Uninstalling |
| Boot log | /var/lib/webosbrew/tvweb-boot.log, kept under 32 KB |
Uninstalling |
| Boot hook that holds switched-off services down | /var/lib/webosbrew/init.d/20-tvweb-services, only once a service is switched off |
Switching the services back on, or uninstalling |
| Home-screen tile | The Homebrew Channel app, or with deploy.sh a developer app |
Removing the app |
| Packages being installed | /media/developer/temp/glasshouse-install, deleted when the install ends or at the next start |
Itself |
| Install job and services run as root | install-job.json and elevated.json in /var/lib/tvweb |
Uninstalling |
Installed from the Homebrew Channel, uninstalling the app stops the server
starting at boot straight away, and within a few minutes the server removes the
rest, including its Home Assistant entities. Installed with deploy.sh, see
Uninstalling.
Features that change how the TV runs¶
These last until a reboot and are put back by the boot hook, so they end with the first reboot after uninstalling.
| Feature | What it does | Undone by |
|---|---|---|
| Ad blocker | Bind-mounts a replacement /etc/hosts |
Switching it off |
| Hidden home-screen tiles | Bind-mounts edited appinfo.json files, then restarts the app manager so the home screen rereads them. Experimental: turned on under Server → Experimental features. Not offered when installed from the Homebrew Channel, since the restart happens during boot |
Switching tile hiding off |
| Switched-off background services | Stops them and masks their systemd units under /run, then stops any found running again every five minutes |
Switching them back on |
| Replacement screen saver | Bind-mounts over the built-in screen saver app. Experimental on webOS 10 and later, where the built-in one is a Flutter app: turned on under Server → Experimental features | Choosing the stock screen saver |
Changes that stay¶
These go through LG's own services and persist like any change made in the TV's menus. Uninstalling the dashboard leaves them as they are.
| Change | Note |
|---|---|
| Uninstalling an app | Permanent; reinstall it from the LG Content Store |
| Installing an app | Installed as a developer app; remove it from the Apps tab or the Homebrew Channel. Its services stay elevated to root if that was chosen |
| Picture mode, energy saving, sound output, Quick Start+, sleep timer | Ordinary TV settings |
| Screen Shift, Logo Luminance Adjustment | OLED panel settings in the TV's own menus |
| Global Stress Reduction and Temporal Peak Control | OLED burn-in protections. Switching one off asks for confirmation, and neither is exposed to Home Assistant. Not switched back on by uninstalling |
| Service menu lock | Unlocking asks for confirmation. Not locked again by uninstalling |
| Privacy consents, advertising ID reset, advertising cookies | The same agreements as in the TV's settings |
Network¶
The dashboard listens on port 8080, on the whole network unless it is limited
to the TV itself in config.json or from Settings on the TV. Installed from the
Homebrew Channel it starts limited to the TV, until the owner opens it during
setup. While a phone is being used to enter Home Assistant details,
port 8081 answers a one-time code for up to ten minutes. The server connects out
only to the configured MQTT broker and, when update checks are switched on, to
GitHub's releases API. Update checks are off by default.