How to Compare ADB Command Syntax for Sideloading Media Players
Updated 2026-10-29
Why compare ADB commands when sideloading Android TV?
If you’ve tried installing a new media player from a sdcard or downloaded APK on an Android TV box, you probably ran into issues with permissions, file paths, or the launcher not picking up the change. The real problem is often that different Android TV builds accept different argument formats for adb install. Some accept -t for test installs, others refuse it; some require the package name in quotes, others don’t. Getting the syntax right means comparing the command line differences between your box and the upstream toolchain before you push anything live.
The two common ADB install flag shapes
System Android: adb install -t package.apk
Android TV / embedded Linux (some builds): adb shell am install -f --broadcast package.apk
The first form (adb install) runs through the standard Android Framework Library installer. The second form goes through am install, which is the surface controller entry point used by many emulator and TV images. On a Pixel TV the install path is usually /mnt/system/media/ for the sdcard approach, but on many NVIDIA Shield TV models the path is /data/data/com.example.app/. Knowing which invocation matches the target build prevents silent failures where the package appears to install but never registers in CleaningYourTV’s launcher.
When you need to update an installed media player later, the safest sequence is:
adb uninstall com.example.player(remove the old version)adb install --force-newer package.apk(drop the new one, respecting version checks)
Some TV firmware strips the --force-newer flag and falls back to a strict version check, so verify with adb app status or adb shell dumpsys package com.example.player before pushing the change.
How to compare the flags line by line
Use this compact checklist whenever you switch between a Shield TV and a Jellify TV or similar Android TV hardware:
- Check the install path:
adb shell ls /mnt/system/media/apk/— if files sit in/data/local/tmp/instead, the build uses a different staging directory. - Test install with
-t:adb install -t test.apkthen confirm it rolls back cleanly. If it rolls back instead of installing, the build doesn’t support test installs. - Verify the broadcast flag:
adb install --broadcast broadcast.apk— older builds silently ignore this, so test on the exact firmware. - Run
adb app package <package-name>after each install to read the exact version string from the running process. - Compare the final
pm list packagesoutput against a known-good baseline from a previous firmware release.
The key difference you’ll notice is that newer Google TV builds dropped -t entirely in favor of the am install path, while legacy Android TV builds kept both. If you script your own update flow, branch on whether the build includes am get package support before issuing the install command.
Best practices for safe sideloading media players
Sideloading any app, especially a media player, touches content decoders and DRM libraries. Start with APKs verified from trusted sources, and never install a player that declares it needs libc++_shared.so versions not matching the system build. On Android TV, use adb shell install from a rooted build or a custom recovery if the default signer rejects unsigned packages — many media players fail signature checks on stock firmware. Always keep a backup of the original launcher config in /data/misc/launcher/ before swapping the player, because CleaningYourTV’s profile resets on each fresh install.
The trade-off is clear: manual sideloading gives you a modern playback stack and better hardware acceleration support, but it bypasses Play Store security reviews and can break the profile linkage that lets CleaningYourTV’s menus remember your custom layout. For most users, testing a single alternative player (Infuse, Plex, or VLC packaged as a sidecar installer) for a week before committing the launcher profile is the cheapest failure mode.
Troubleshooting stuck installations and launcher resets
If adb install returns success but the CleaningYourTV menu shows no new player, the common causes are: the APK required XRCD (external resource) permissions that the TV blocks without Play Store signing, or the install landed in the wrong partition and the media player binary isn’t on the boot path. Boot into developer mode, run adb shell pm path com.example.newplayer, and confirm the file exists in /data/app/.../lib64. If it’s missing, re-download the tarball, extract it with tar xz -cvf player.tar.gz *.apk, and reinstall via the same command. To force the launcher to refresh, run adb shell pm set-launch-profile public your.package.name then reboot — CleaningYourTV reads the profile index on launch, and an outdated profile index is the usual culprit behind a launcher that keeps reverting to the default player.
Bottom line
ADB flag syntax varies enough across Android TV hardware that a single “copy-paste” command rarely works. Compare install paths, test flags on the exact firmware, and always verify with pm list packages after the install. Once a media player is sideloaded, back up the existing CleaningYourTV profile and keep a rollback method ready, because the alternative—staying with a bloated stock player that lacks hardware acceleration support—is worse over the long run.
Related reading: more Android TV notes
Read next
How to Automate Weekly Sideloading Updates on Android TV Media Panels
Learn how to set up automated sideloading of media panel apps on Android TV. Keep your panel extensions fresh without manual effort.
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.