How to Sideload Custom DVR Plugins on Android TV
Updated 2026-10-31
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:
- The exact plugin APK or side-load package (often named something like
dvr-plugin-v2.apk) - ADB installed on your PC and a connected Android TV device recognized on the command line (
adb devices) - A USB OTG cable if the device requires a removable media insertion during install
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:
- Connect the Chromecast-enabled TV via Ethernet or Wi-Fi and verify the connection with
adb devices. - Copy the plugin APK to the TV:
adb push /path/to/plugin.apk /sdcard/DVRPlugin/ - 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 usepm installor a launch helper script supplied by the upload. - After installation, confirm the entry point:
dvr-plugin-v2 --helpfrom 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
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.