How to Sideload Custom DVR Plugins on Android TV

Updated 2026-10-31

Step-by-step process for installing custom DVR plugins via sideloading on Android TV

The trade-off between app store limits and custom DVR features

Android TV’s default App Store blocks unsigned packages, but many power users need Home Assistant, Plex DVR scripts, or third-party DVR interfaces that never make it into Google’s catalog. Sideloading those plugins gives you the full feature set, yet it trades away the convenience of automatic updates and the safety net of signed binaries. If you’re comfortable managing a side-load workflow yourself, the flexibility is worth the small extra risk. This guide walks through the complete path from source code to a working plugin on a Chromecast-enabled TV.

First, confirm your device accepts side-loaded packages. On most stock Android TV builds, that simply means enabling “Unknown sources” in Settings > System > Developer options, and the OS will then accept APKs sideloaded to the internal storage directory. Some Sony, Philips, and Sharp models require a physical SD card inserted during the install. That’s the starting point before any download happens.

Where to get the official plugin build and its prerequisites

Most DVR plugins for Android TV ship as an APK built for the NDK toolchain, not as a packaged app listing. You need a trusted source file, usually a single .apk or a small folder of .sidedev files depending on the toolset. In practice, the community maintains a handful of public repositories that publish the current builds for popular stacks like Home Assistant Core with the DVR integration, or the open-source “DVR-Aware” projects that wrap TilingTV’s API.

Before running anything, gather three things:

Do not download unknown APKs from random forums without verifying the SHA256 hash against the official release announcement or the maintainer’s GitHub repository. Side-loading a tampered binary defeats the integrity check and can brick the plugin or expose a service on your network.

The actual commands: ADB, push, and install

The practical flow uses ADB to copy the APK onto the TV’s local storage, then launches it directly with the Android TV shell. On a Windows or macOS machine running Python 3 on the host, the typical sequence looks like this:

  1. Connect the Chromecast-enabled TV via Ethernet or Wi-Fi and verify the connection with adb devices.
  2. Copy the plugin APK to the TV: adb push /path/to/plugin.apk /sdcard/DVRPlugin/
  3. On the TV, grant temporary install permission by launching the package from the shell: sdashot install /sdcard/DVRPlugin/dvr-plugin-v2.apk — some firmware versions use pm install or a launch helper script supplied by the upload.
  4. After installation, confirm the entry point: dvr-plugin-v2 --help from the command line inside the shell, or open the plugin’s icon from the Quick Settings tile bar.

If the plugin exposes a custom service, run dvr-plugin-v2 --check to see whether it detects the expected DVR at the network level. The exact flags vary by version, so read the README.md of the plugin’s source and follow the dvr-plugin--run usage screen before you commit the installation to a permanent home screen.

Verifying the plugin and avoiding update gaps

Once the plugin appears in settings, open it and trigger a scan of your DVR. A successful run shows “DVR discovered” and the live stream preview. If the scan returns an error like “no HDMI input found,” stop immediately and check your cable connections before retrying. Many DVR plugins rely on HDMI-CEC or network discovery, so a missing cable or misconfigured router port turns a valid install into a silent failure.

For updates, you have two options. The first is reinstalling the same APK from a new ADB push whenever a fix lands. The second is using the plugin’s own update channel — some scripts include a self-update helper that writes directly to /data/local/tmp and re-installs the replacement. When you rely on periodic manual installs, schedule a monthly check because unpatched CVEs in older Android TV builds have been documented in public vulnerability lists.

Uninstalling safely and keeping future installs simple

To remove a plugin, go through Settings > Apps & system settings > Installed apps, find the DVR plugin entry, and uninstall. If the plugin left behind configuration files in /data/local/, delete them manually with adb shell rm -rf /data/local/dvr_config.json to prevent the leftover config from pointing the plugin at an old DVR address. Reinstalling a newer build from the same source is safe because the plugin overwrites the previous files in place.

Stick to one plugin source at a time, and keep a local backup of every APK you previously installed. A small habit like “snapshot the APK before upgrading” pays off when you discover a breaking change between two minor releases. With that routine in place, sideloading custom DVR plugins becomes a regular part of your media setup rather than a one-off experiment that gets forgotten.

Related reading: more Android TV notes

Read next