Skip to content

Releases: damienmiheev/rusttv

RustTV 0.3.2

Choose a tag to compare

@github-actions github-actions released this 02 Nov 18:40
Immutable release. Only release title and notes can be modified.
53c878b

Fixes the armeabi-v7a launcher, which crashed at startup on Android 11 and
12. If your TV runs 0.3.1's armeabi-v7a APK, update to this one. The
arm64-v8a and x86_64 APKs and the CLI behave as in 0.3.1.

Launcher

  • The armeabi-v7a APK installed and the launcher then died at startup on an
    Android 11 TV: dlopen failed: cannot locate symbol "_ZNSt6__ndk113__hash_memoryEPKvj". The armv7 Skia is built by
    skia-armv7.yml with NDK 30, whose libc++ holds that function, but
    android/build.sh took an inherited ANDROID_NDK_HOME ahead of its own pin
    and GitHub's ubuntu runners export one for their older preinstalled NDK, so
    the launcher was linked against a libc++ without the symbol. A shared
    library may keep an undefined symbol, so the link, the build and
    pm install all passed, and the reference fell to the platform's libc++:
    Android 14 exports it, Android 11 does not. build.sh now refuses any NDK but
    the pinned one, Android APK points ANDROID_NDK_HOME at it, and
    android/check-so.sh fails the build when an APK leaves a C++ runtime symbol
    undefined. The arm64-v8a and x86_64 APKs of 0.3.1 are unaffected. Found
    and fixed by @Capka3i (#30).

Dependencies

  • pulldown-cmark 0.13.6 (through Slint), for RUSTSEC-2026-0433.

Install

The full guide, including building from source: GETTING_STARTED.md.

  1. Download the CLI archive for your computer, rusttv-0.3.2-<target>.tar.gz, and unpack it. On macOS the binaries are not notarized: run xattr -d com.apple.quarantine rusttv rusttv-mcp once.
  2. On the TV, turn on network or wireless debugging, then rusttv device connect <tv-ip>.
  3. Download the APK for the TV's ABI (rusttv device inspect shows it) and rusttv launcher install --apk rusttv-launcher-0.3.2-<abi>.apk. Optional: rusttv launcher takeover makes RustTV the Home screen; rusttv launcher restore undoes it.

Supported devices are the ones with a profile in compat/devices/. On other TVs RustTV refuses changes their profile doesn't record as tested unless you pass --allow-untested.

Check the files

  • SHA256SUMS covers every file and is signed with the update signing key: minisign -Vm SHA256SUMS -P RWSw/ASX3IHbwWo2E165vf8VLUVfDBY0Ptf2flvZ8Jna7dWbfYMmFMRX. rusttv update checks this itself.
  • Each file has a GitHub build provenance attestation: gh attestation verify <file> --repo damienmiheev/rusttv shows the workflow run and commit that built it.
  • *.cdx.json are CycloneDX SBOMs (every crate in the binary); each CLI archive has its own two.
  • APKs are signed with RustTV's release key. Certificate SHA-256: ec16f7040c826d218cfd147c1fa49c4b376253c7b89b3d5e97ac707c8fd54473 (apksigner verify --print-certs).

Safety

RustTV never roots, flashes or uninstalls system apps, and runs no free-form shell commands. Every change is planned, shown as a dry run, approved by a person, recorded and checked, and most can be undone with one command. See SECURITY.md.

RustTV is an independent project, not affiliated with or endorsed by the Rust Foundation, the Rust Project or Google.

RustTV 0.3.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 13:27
Immutable release. Only release title and notes can be modified.
48bd43d

The 0.3.0 release was published without its files, and its tag can't take
another release, so this is 0.3.0 again under a new version. No code changes
since 0.3.0; what's new is in the 0.3.0 section of
CHANGELOG.md.

Install

The full guide, including building from source: GETTING_STARTED.md.

  1. Download the CLI archive for your computer, rusttv-0.3.1-<target>.tar.gz, and unpack it. On macOS the binaries are not notarized: run xattr -d com.apple.quarantine rusttv rusttv-mcp once.
  2. On the TV, turn on network or wireless debugging, then rusttv device connect <tv-ip>.
  3. Download the APK for the TV's ABI (rusttv device inspect shows it) and rusttv launcher install --apk rusttv-launcher-0.3.1-<abi>.apk. Optional: rusttv launcher takeover makes RustTV the Home screen; rusttv launcher restore undoes it.

Supported devices are the ones with a profile in compat/devices/. On other TVs RustTV refuses changes their profile doesn't record as tested unless you pass --allow-untested.

Check the files

  • SHA256SUMS covers every file and is signed with the update signing key: minisign -Vm SHA256SUMS -P RWSw/ASX3IHbwWo2E165vf8VLUVfDBY0Ptf2flvZ8Jna7dWbfYMmFMRX. rusttv update checks this itself.
  • Each file has a GitHub build provenance attestation: gh attestation verify <file> --repo damienmiheev/rusttv shows the workflow run and commit that built it.
  • *.cdx.json are CycloneDX SBOMs (every crate in the binary); each CLI archive has its own two.
  • APKs are signed with RustTV's release key. Certificate SHA-256: ec16f7040c826d218cfd147c1fa49c4b376253c7b89b3d5e97ac707c8fd54473 (apksigner verify --print-certs).

Safety

RustTV never roots, flashes or uninstalls system apps, and runs no free-form shell commands. Every change is planned, shown as a dry run, approved by a person, recorded and checked, and most can be undone with one command. See SECURITY.md.

RustTV is an independent project, not affiliated with or endorsed by the Rust Foundation, the Rust Project or Google.

Skia 0.153.3 for armv7 Android (build input)

Choose a tag to compare

@damienmiheev damienmiheev released this 23 Oct 13:02

Build input, not a RustTV release.

Skia (skia-bindings 0.153.3) compiled for armv7-linux-androideabi, because rust-skia publishes no armv7 Android prebuilt. Built by the Skia armv7 workflow: https://github.com/damienmiheev/rusttv/actions/runs/39956273511

android/build.sh downloads this archive and checks it against the pinned SHA-256:
4a83dbd6b479c561fd358b59810b33598255e70010f731aa284306f33de5d136

Skia is BSD-3-Clause (LICENSE_SKIA inside the archive).