free-my-tv README

The project's README from github.com/simbasjungles/free-my-tv. As one markdown file: README.md.

Free My TV

A fast, ad-free home screen for Google TV, LG and Samsung TVs.

Trending picks from your own apps, the weather at a glance, and a look that follows the sunset.
Open source. Built with Claude Code. One button to undo.

freemytv.io · Install · LG TVs · Samsung TVs · Any TV · Make it yours

The Free My TV home screen: a glass shelf of apps, trending picks, and a drawer with the weather and crypto prices

What you get

Install

About ten minutes. You need a Google TV or Android TV (Android 9 or newer) and a computer on the same Wi-Fi.

The easy way: Claude Code

  1. On the TV, turn on developer mode: Settings → System → About → press Android TV OS build 7 times. Then Settings → System → Developer options → turn on USB debugging. Write down the TV's IP address (Settings → Network & Internet).

  2. On your computer, get the code:

    git clone https://github.com/simbasjungles/free-my-tv && cd free-my-tv
    
  3. Open Claude Code in that folder and say:

    Install Free My TV on my TV at 192.168.1.50. I live in Lisbon.

    It installs the tools it needs, builds the app and puts it on your TV. Swap in your TV's IP and your city.

  4. On the TV, open Free My TV → Home Screen → Free My TV, and accept the debugging prompt (tick Always allow).

The manual way

  1. On the TV, do step 1 above.
  2. Tools: a JDK (17+), the Android SDK command-line tools (build-tools 34, platform android-34) and adb. On a Mac:
    brew install --cask temurin android-commandlinetools android-platform-tools
    sdkmanager "build-tools;34.0.0" "platforms;android-34"
    
    On Linux, get OpenJDK 17, Android's command-line tools and adb from your package manager, then run the same sdkmanager line. On Windows, use WSL.
  3. Build:
    ./build.sh
    
    The first run creates config.properties. Set your city and your TMDB key there, then run it again.
  4. Install:
    adb connect 192.168.1.50:5555
    adb install -r FreeMyTV.apk
    
    On TCL TVs, also let it run in the background (TCL blocks it by default, and the switch never starts):
    adb shell "appops set io.freemytv AUTO_START allow || appops set io.freemytv APP_AUTO_START allow"
    
  5. On the TV, open Free My TV → Home Screen → Free My TV.

LG TVs (webOS)

The same home screen as an LG app: the picks, the glass shelf with your apps, the drawer with inputs, weather and prices, day and night, Home Settings and the shelf editor. It installs through LG's own Developer Mode, with nothing rooted or changed on the TV. LG's home screen stays where it is, and Free My TV is one press of a number key away.

You need an LG TV (webOS 3 or newer) and a computer on the same Wi-Fi, with Python 3.

  1. On the TV, open the LG Content Store and install Developer Mode. Sign in with a free LG developer account, turn on Dev Mode Status (the TV restarts), then turn on Key Server. Write down the IP address and the passphrase it shows.
  2. On your computer, get the code and build. config.properties works as for Google TV (your city, your TMDB key):
    git clone https://github.com/simbasjungles/free-my-tv && cd free-my-tv
    python3 webos/build.py
    
  3. Install. The first time, it asks for the TV's passphrase; updates don't:
    python3 webos/install.py 192.168.1.50
    
  4. On the TV, while Free My TV is open, hold a number key on the remote. From then on, that key opens it from anywhere.

With Claude Code, say "Install Free My TV on my LG TV at 192.168.1.50. I live in Lisbon." It builds the app and hands you the install command, so you type the passphrase yourself.

Developer Mode lasts about 40 days: open the Developer Mode app now and then and press EXTEND. To remove Free My TV, run python3 webos/install.py 192.168.1.50 --uninstall.

Samsung TVs (Tizen)

The same home screen as a Samsung app, with everything the LG one has: the picks, the shelf, the drawer with the inputs, the weather and the prices, day and night, and its own settings. It installs through Samsung's own Developer Mode, with nothing rooted or changed on the TV, and Samsung's home screen stays where it is.

You need a Samsung TV from 2017 or newer (Tizen 3+) and a computer on the same Wi-Fi.

  1. On the TV, open Apps and type 1 2 3 4 5 on the remote. Turn Developer mode on, type your computer's IP address in Host PC IP, and restart the TV.
  2. On your computer, download TizenBrew Installer, the community's installer for Samsung TVs, open it and connect to your TV.
  3. Install from GitHub: type simbasjungles/free-my-tv. On 2023 and newer TVs it asks you to sign in to your Samsung account once, to sign the app for your TV.
  4. Straight to it: in the TV's settings, under Start Screen Options, turn on Autorun Last App: the TV turns on into Free My TV.

This build takes your city from the TV's time zone. For your exact city and the trending picks, build it with your own config.properties and TMDB key: open the folder in Claude Code and say "Install Free My TV on my Samsung TV at 192.168.1.50. I live in Lisbon." It sets up Samsung's tools, and on 2023 and newer TVs you sign in to your Samsung account in the browser to make the certificate.

Settings

The first values come from config.properties, created by the first build (Google TV, LG and Samsung use the same file). Most of them can also be changed on the TV, in Free My TV → Home Settings, and the TV's choice wins:

Key What it does Default
tmdb_key Your free TMDB key, for the picks empty
tmdb_region Your country (two letters): which titles are on which app US
latitude, longitude Your city, for the weather and the sunset New York
city The name on the weather card Weather
language auto (follows the TV), en, es, pt, ru or de auto
show_crypto Show Binance crypto prices on home and screensaver true
currency Crypto prices in USD, EUR, BRL… USD
temperature C, F or auto auto
disable_assistant Also turn off Google Assistant false

Changed something? Run ./build.sh and install again. Keep freemytv.keystore: updates are signed with it.

The TMDB key

Free, and it takes two minutes: create an account at themoviedb.org, then open Settings → API and request a developer key. Paste the API Read Access Token (or the API Key) after tmdb_key=. It's your key: config.properties stays out of git.

Going back

On the TV: Free My TV → Home Screen → Original. The factory home screen, screensaver and every app come back exactly as they were. If the new home screen ever crashes three times in five minutes, it switches back by itself.

To remove it for good, switch to Original first, then uninstall Free My TV (Settings → Apps).

What it changes

Any TV

Free My TV runs on Google TV and Android TV: TCL, Sony, Hisense, Philips, Xiaomi, Vestel-made TVs (F&U) and more, plus streamers like Chromecast with Google TV, the Google TV Streamer, onn 4K and NVIDIA Shield. And on LG and Samsung TVs, as an app.

Any other TV: plug a Google TV streamer into HDMI and free that one. Same steps, same home screen.

A different brand or model: ask Claude. Free My TV is made to be adapted by AI. Open the folder in Claude Code and say "set it up for my Sony": it reads your TV, finds its home screen and its promo apps, updates the lists below and walks you through a test. CLAUDE.md tells it how.

What Where
Apps to turn off DEBLOAT in HomeMode.java
Apps never to touch PROTECTED in the same file
Apps on the shelf SHELF in HomeApps.java
Your brand's live TV app LIVE_TV_APPS in the same file

Make it yours

It's your code, and Claude Code finds its way around it. Try:

How it works

File What it is
HomeView.java The home screen
HomeMode.java Switching between Free My TV and Original
Adb.java The TV's own ADB, from inside the TV
Recs.java The picks (TMDB)
HomeData.java Weather and prices
HomeApps.java The shelf, inputs and All Apps
DreamView.java The screensaver
SettingsActivity.java The settings screen (the app's icon)
Prefs.java Settings changed on the TV
RemoteKeys.java The TCL remote's app buttons
Watchdog.java The safety net
web/home.js The home screen on LG TVs
web/tv.js The TV's apps and inputs, on LG and Samsung
webos/build.py, webos/install.py The LG app package and its install
tizen/build.py The Samsung app package

The website (freemytv.io) is in docs/: plain HTML, CSS and JS on GitHub Pages.

Privacy

No accounts, no analytics, no tracking. The app talks to TMDB, Open-Meteo (with the coordinates you set, or your time zone's main city), and Binance only when show_crypto=true. Your settings stay on your computer and your TV.

Credits

License

MIT. Fork it, change it, ship it.

free-my-tv (simbasjungles/free-my-tv)

no-root
Searching Database…

What is this?Free My TV is a free, ad-free replacement home screen for Google TV, Android TV, LG webOS and Samsung Tizen TVs. It shows trending picks pulled from the streaming apps you already have, weather and crypto prices, with no sponsored content, and one button restores the original factory home screen.
Is this a mobile app or something that runs on the TV itself?It is not a phone app — it installs directly onto the TV as a native Android app (or as an LG/Samsung app on those platforms) and replaces the system home screen and screensaver.
How do I install it on my TV?Turn on Developer Mode on the TV, put the TV and your computer on the same Wi-Fi, then either open the cloned repo in Claude Code and tell it your TV's IP, or build it manually with a JDK and Android SDK tools and push it over adb (LG and Samsung instead use their own developer-mode installers).
What do I need before I start?A Google TV/Android TV (Android 9 or newer), an LG TV (webOS 3+), or a Samsung TV (Tizen 3+, 2017 or newer), a computer on the same network, and ideally a free TMDB API key so the trending picks actually load.
What happens if something breaks, or I want to go back?A single button on the TV switches back to the factory home screen, screensaver and every stock app exactly as they were, and if the new home screen crashes three times in five minutes it reverts automatically on its own.
Does it work on any smart TV, or only specific models?It runs on Google TV and Android TV devices from brands like TCL, Sony, Hisense, Philips and Xiaomi and streamers like Chromecast and NVIDIA Shield, plus has dedicated apps for LG webOS and Samsung Tizen TVs; other Android TV boxes follow the same install steps.
Does it track or collect any of my data?No — there are no accounts, analytics or tracking; it only talks to TMDB for picks, Open-Meteo for weather, and optionally Binance for crypto prices if that card is enabled.
Does it slow down my TV?No — it's designed to hit 60fps on the TV's own chip and uses about 96MB of memory versus the stock home screen's 242MB, a 60% cut, measured on a 98-inch Google TV.
Can I customize the apps shown or add features myself?Yes, you just ask Claude Code things like 'Add Crunchyroll to the shelf' or 'Show prices in euros,' and it edits the plain Java/HTML source directly, since the project is built to be adapted this way.
Does it require rooting my TV?No — it installs through the TV's own Developer Mode via ADB, nothing is rooted or uninstalled, and it can be reversed with one button at any time.
Why is it built with no Gradle or libraries?It's a plain Android app assembled by a shell script (aapt2 to javac to d8 to zipalign to apksigner) that outputs a 2MB APK, keeping it dependency-free and fast on TV hardware.
Size
12.2 MB
Stars
4.6K
Age
6d
Commits · 90 Days