How to Sideload System Media Components on Android TV Using Cast MLT
Updated 2026-10-31
Why the launcher stutter happens and whether Cast MLT helps
Android TV devices that ship with a cleaned-up launcher often strip third-party package sources to a bare minimum. That leaves users who want custom media pipelines—such as Home Assistant Media Bridge, Plex Media Player, or custom RTSP gateways—stuck with whatever Samsung, LG, or Sony-provided package includes. The Cast MLT protocol (Media Transfer Protocol as defined by Apple) has become a practical workaround because it lets lightweight companion apps negotiate media streams without needing the full upstream media stack baked into the firmware. Understanding the launcher’s restriction is the first step toward a reliable sideload.
What Cast MLT is and why it matters for Android TV
MLT stands for Media Load Toolkit, originally built for macOS and now used across embedded platforms including some smart TV OS builds. On Android TV, certain OEMs have implemented a minimal MLT wrapper that lets a small companion app initiate and control playback over networked media sources. When you pair that with a manual sideload of an MLT-capable component package, you can bring custom playback logic into a TV that otherwise hard-codes its media handling. The trick is that the official package store only accepts packages signed by Google Play, so the media payload must be sideloaded with ADB or a trusted packaging flow before the first boot.
Preparing the environment before sideloading
First, confirm that your TV accepts unsigned or ad-hoc packages. On most stock Android TV builds, Developer options > “Apps not verified” enables this; on production firmware it may require a developer key and a recompiled shell. You also need a working ADB session on the same Wi‑Fi network. A quick test: push a dummy APK named test-mlt.apk to /data/local/tmp/ and install it with adb install --install-local-only. If the install succeeds and the app launches, the signing bypass works. Without it, skip to a factory reset and flash a custom ROM image that explicitly whitelists MLT packages; the trade-off is losing all vendor updates.
Step-by-step: installing the Cast MLT media package
- Root the device if it is not already rooted, or work from an unlocked bootloader that allows package installation outside the play store.
- Build or download an MLT-compatible media bridge such as a minimal Plex plugin or a custom RTSP sender that advertises proper MLT capability. Verify the binary contains the
MLTCapabilityflag in its manifest. - Push the package to the TV:
adb push mlt-bridge.apk /data/local/tmp/, thenadb install --install-local-only mlt-bridge.apk. - Launch the bridge from Settings → Apps → MltBridge, and confirm it announces itself over the network using the MLT discovery command.
- Point your home automation hub at the bridge’s MLT stream address. In Home Assistant, use the
mlctvintegration or a custom template to read the stream atrtmp://<tve-port>/live.
If any step fails at the install stage, power down, unplug, and retry in safe mode to rule out a stuck first-boot script.
Keeping things stable and avoiding common mistakes
Sideloading is not without cost. Your TV’s battery life drops noticeably when background processes run, and MLT bridges keep the DMA/CMOS path busy during transcoding. If you see the launcher re-locking your settings after each reboot, it usually means a system property is fighting with the sideloaded package—check getprop for ro.secure or ro.product.first_boot flags that force verification. Another frequent error is the media pipeline dropping frames because the bridge’s MLT buffer size is too small; bump the buffer to 512 MB in the app’s advanced settings, but monitor heat. Finally, do not mix two MLT bridges on the same network segment; they will clash on stream negotiation and the discovery command will return empty results.
Is this worth doing for your TV?
The honest answer is: only if you need MLT-specific features that the stock media stack cannot provide. For basic Plex or Kodi installs, the play store is simpler and receives updates. But if your project depends on the MLT protocol—for example, for direct camera feeds from IoT locks or for custom subtitle rendering—the sideload is the only route that survives a vendor lockout. The trade-off is your support window: future firmware updates may break the sideloaded package, so keep a copy of the original .aapt and the signed binary. If you follow the preparation steps, you can keep that bridge running for months, which is more than enough time for most home-automation projects to mature.
Related reading: more Android TV notes
Read next
How to Use ADB Sideloading to Install Apps on a Fresh Android TV Box
Learn how to sideload APKs on a new Android TV via ADB, including setup, command steps, and common pitfalls for smooth app installs.
How to Sideload Apps on Android TV via ADB
Learn how to use ADB sideloading to install native apps on Android TV, step-by-step, for beginners who want fresh content without Play Store limits.