Skip to content

Repository files navigation

Overscan

A web browser you can sideload onto a Samsung TV — the one the TV should have shipped with.

Overscan is the picture area a TV pushes past the visible edge, which is roughly what this does to the web on a television.

The built-in Samsung browser tells websites it's a TV, so sites hand it a stripped down "smart TV" page instead of the real one. Overscan wraps the TV's own web engine in an app that behaves like a desktop browser:

  • Sites load their normal desktop version, because the browser identifies itself as desktop Chrome.
  • JavaScript stays on, so pages aren't broken or half-rendered.
  • The remote works like a mouse — the D-pad moves a pointer, OK clicks.
  • Favourites and history, on a start screen built for a TV.
  • You can type with an on-screen keyboard driven by the D-pad, into the address bar and into search boxes on the page. QWERTY, AZERTY, QWERTZ or alphabetical, whichever you're quickest on, with capitals and a full symbol page — an e-mail address and a password both fit.
  • It can open on the page you want, instead of its own start screen.

Requested in tizen-community-packages#24.

Will it work on my TV?

Your TV Download Notes
2018 (Tizen 4.0) Overscan-tizen4.tpk The oldest TVs that can run this. Chromium 56, so expect real limits. Untested.
2019–2020 (Tizen 5.0–5.5) Overscan-tizen5.tpk Needs a partner certificate to sign — see below. Old engine, so expect some sites to misbehave.
2021–2023 (Tizen 6.0–7.0) Overscan-tizen6.tpk Not yet tested on hardware.
2024 (Tizen 8.0) Overscan-tizen8.tpk Not yet tested on hardware.
2025+ (Tizen 9.0–10.0) Overscan-nui.tpk Tested on the Tizen 10 emulator. Modern engine — sites generally just work.

2017 and older sets (Tizen 3.0, 2.x) cannot run Overscan. Samsung only added .NET to TVs with the 2018 range, so there is no runtime for the app to start in — this is a platform limit, not something a build can work around.

Pick the package for your platform, not a newer one: a TV refuses to install a package whose api-version is above its own platform version (you get [118, -4]). Older packages do install on newer sets, but you lose whatever that generation added.

Grab the packages from the latest release. Not sure which platform your set is? sdb capability prints platform_version.

Installing

Sideloading a TV app means signing the package with your own certificate and pushing it over the network. If you've done this before, nothing here is unusual; if you haven't, Apps2Samsung does the signing and installing for you.

  1. Put the TV in Developer Mode and note its IP address.
  2. Sign the .tpk with your certificate. The packages in releases are default-signed, which no TV accepts.
  3. Install it, and launch Overscan from the TV's Apps list.

On a 2019/2020 set the package must be signed with a partner-level certificate. That isn't a preference — the TV's web engine is bolted to its DRM stack, and without a partner certificate the app is not allowed to load it, so the browser simply won't start. Newer sets don't have this restriction.

Using the remote

Key What it does
D-pad Move the pointer (speeds up while held)
OK Click. On a text box, opens the keyboard for it
hold OK Open the menu — everything below, in a list you can walk
Back Close overlay → back a page → exit
CH ▲ / ▼ Page up / page down
0 Address bar
1 Switch how the browser identifies itself, and reload
2 Pointer style
3 Diagnostics (what the page thinks it's talking to)
4 Give the keys to the page, for its own navigation
5 Type into the text box you last clicked
6 Page-fit correction (for stretched rendering)
7 Show/hide the key hints
8 Keep this page in favourites (press again to remove)
9 Back to the start screen
Info Images on/off — the biggest speed-up on an old set

No number keys on your remote?

The slim remote that ships with recent sets — The Frame's among them — has no numpad at all, so none of the rows above are reachable on it. Hold OK for a second and the same list appears on screen; the D-pad moves through it and OK picks. A menu, tools or play/pause button opens it in one press if your remote has one.

If a button of yours does nothing, press it once and look at the bottom of the remote card in the corner: it prints the name the TV gave that button. Send us that name and we'll wire it up.

The on-screen keyboard

The bottom row is where everything that isn't a letter lives:

Key What it does
@ Always one press away — you need it for every sign-in
shift Capitals. Releases itself after one letter, like a phone
sym A whole page of punctuation — brackets, quotes, maths, currency — press it again (it now reads abc) to go back
start Makes what you typed the page Overscan opens on. Press it with nothing typed to go back to the start screen
layout QWERTY (the default), then AZERTY, QWERTZ and the alphabetical grid. It shows the layout you're on, and the choice is remembered

Does it load pages faster?

No — and on a slow TV it can be slower. Overscan uses the TV's own web engine, so the rendering speed is exactly the same; what changes is which version of a site you get, and the desktop version is usually the heaviest one. If YouTube takes two minutes in the built-in browser, the desktop YouTube will not be quicker.

What does help on an older set:

  • Press Info to turn images off. The engine can't be made faster, but it can be given far less to do, and this is the biggest single win.
  • Press 1 to pick the mobile version of a site. Mobile pages are much lighter than desktop ones and often render better on an old engine.
  • Use a site's TV interface where one existsyoutube.com/tv is built for exactly this hardware and is dramatically faster than the desktop site.

Known limits

  • The engine is the TV's, not ours. An app can't ship its own Chromium, so on a 2019 set you're browsing with a 2017 engine (Chromium 63) no matter what. Overscan fixes how the TV identifies itself; it can't make an old engine understand a modern site. On a 2025 set the engine is Chromium 130 and this caveat mostly disappears.
  • Rendering is stretched on Tizen 5.0 — the engine lays pages out at one size and paints them at another. Key 6 toggles a correction; this is an open bug.
  • No downloads or file uploads yet.
  • Captchas and other embedded frames are clicked through a different path than the rest of the page — a real mouse event fed to the TV's canvas, because nothing an app injects into a page can reach inside a frame served from another site. On the 9.0+ build there is no canvas to feed, so those frames stay unclickable there.
  • The TV's own on-screen keyboard can still flash up briefly on sites that focus their search box as soon as they load.

Building it yourself

./build.sh          # all packages -> dist/
./build.sh tizen5   # just the 2019/2020 one

You'll need the .NET 6 SDK with the tizen workload, plus the .NET Core 3.1 SDK for the older packages. CI builds all of them on every push — see .github/workflows/build.yml.

How it works, briefly

Overscan is a .NET app that hosts the TV's own web engine and adds the things a TV browser needs: a pointer driven from the remote, an on-screen keyboard, and a user-agent override. The pointer and typing are implemented as JavaScript injected into each page, because the TV's engine gives an app no way to synthesise mouse input — except through EFL's own canvas, which is how clicks reach inside an embedded frame.

Because the web-view API changed twice across TV generations, there are three builds from one shared source tree rather than one universal package.

The full story — API archaeology, the DRM permission wall, the diagnostics built for TVs that can't be logged, emulator setup — is in docs/INTERNALS.md.

Licence

MIT — see LICENSE.

About

Sideloadable web browser for Samsung Tizen TVs: desktop user agent, JavaScript on, D-pad cursor

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages