HDHomeRun app for Samsung TVs (sideload)

Downloads & Instructions
Post Reply
geeklain
Posts: 1
Joined: Sun Sep 20, 2026 1:10 pm

Re: HDHomeRun app for Samsung TVs (sideload)

Post by geeklain »

Docker-based sideload method — no Tizen Studio install, no Samsung dev account, works around the cert-expired errors

A lot of the recent posts here are about the shipped .wgt's certificate being expired, or about how painful it is to install the full Tizen Studio SDK (especially on Mac, or if you don't want a Samsung developer account). Here's a much lighter alternative: run the Tizen SDK inside a Docker container, strip the app's original (expired) signature, and re-sign it with the SDK's own built-in developer certificate. Your TV in Developer Mode trusts that just fine — you never need a Samsung account or their certificate chain at all.

Requirements:
  • Docker, installed any way you like — Docker Desktop is the easiest for most people, but Colima, Rancher Desktop, brew install docker + a VM backend, or any other Docker-compatible setup works too (Mac/Windows/Linux all fine — this uses an amd64 image, which runs fine emulated on Apple Silicon)
  • Your Samsung TV in Developer Mode, with your computer's IP allowed to connect (Apps > find any app > press the "123" combo on remote (or on-screen keyboard) to enable Dev Mode > enter your PC's IP under "IP address")
  • The hdhomerun_view_tizen_*.wgt package from earlier in this thread
Preps:

Put these two files in an empty folder:
  • hdhomerun.wgt — the package downloaded from this thread (rename it to exactly this)
  • deploy.sh:

    Code: Select all

    #!/bin/bash
    set -e
    
    if [ -z "$TV_IP" ]; then
      echo "Error: Set TV_IP environment variable (e.g., TV_IP=192.168.1.XX)"
      exit 1
    fi
    
    echo "1. Connecting to TV at $TV_IP..."
    sdb connect "$TV_IP"
    sleep 2
    
    TARGET_NAME=$(sdb devices | grep "$TV_IP" | awk '{print $1}')
    if [ -z "$TARGET_NAME" ]; then
      echo "Error: Failed to connect to TV at $TV_IP."
      sdb devices
      exit 1
    fi
    echo "Connected to target: $TARGET_NAME"
    
    echo "2. Unpacking and stripping old (expired) signatures..."
    rm -rf /tmp/hdhomerun
    mkdir -p /tmp/hdhomerun
    unzip -q /app/hdhomerun.wgt -d /tmp/hdhomerun
    rm -f /tmp/hdhomerun/author-signature.xml /tmp/hdhomerun/signature1.xml /tmp/hdhomerun/signature2.xml
    
    echo "3. Re-signing package with the SDK's built-in 'dev' profile..."
    tizen package -t wgt -s dev -- /tmp/hdhomerun
    
    echo "4. Installing onto TV ($TARGET_NAME)..."
    NEW_WGT=$(ls /tmp/hdhomerun/*.wgt | head -n 1)
    tizen install -n "$NEW_WGT" -s "$TARGET_NAME"
    
    echo "Done! HDHomeRun installed on Samsung TV."

Run it
In the new folder you just created, run this command (replace the IP with your TV's):

Code: Select all

docker run --rm \
  --platform linux/amd64 \
  -e TV_IP=192.168.1.XX \
  -v "$(pwd)/hdhomerun.wgt:/app/hdhomerun.wgt" \
  -v "$(pwd)/deploy.sh:/app/deploy.sh" \
  vitalets/tizen-webos-sdk bash /app/deploy.sh
That's it — no SDK install on your host machine, no Samsung developer account, no certificate expiration issues since it's signed fresh every time you run it. The vitalets/tizen-webos-sdk image (same one people use for sideloading Jellyfin's Tizen app) ships with a working self-signed author certificate already configured, so tizen package -s dev just works out of the box.

Tested and confirmed working on a QN90A (2021) — installs cleanly and launches. If you hit "no target" on the install step, double check Developer Mode is on and your host IP is listed under the TV's connection settings.

Post Reply