How to Migrate Sideloaded Configuration Scripts Between Android TV

Updated 2026-10-28

Migrating sideloaded configuration scripts across different generations of Android TV hardware

Introduction: why migrating sideloaded setups matters

The CleanYourTV launcher gives Android TV power users a way to inject custom configuration scripts into the home screen, and some users run them across multiple devices. When you upgrade hardware—say from a Sony X905H to a newer 4K box from the same manufacturer or to a completely different generation—the default settings file often needs to move with the machine. Most users don’t realize yet that the launcher stores the script paths in a hidden system area, and a blind wipe during a factory reset leaves every custom script unavailable. Migrating cleanly keeps your voice pairings, picture profiles, and parental controls where they belong while letting you reuse the same automation profile across a new-generation box.

What sideloaded configuration scripts actually contain

CleanYourTV exposes its configuration through shell-style scripts placed in /data/local/ and referenced from config.xml mounted read-only on boot. Typical scripts control the following: auto-launch of third-party apps via a companion launch file, custom DPI scaling per display, Wi‑Fi SSID targets for different rooms, and a hard‑coded list of preferred video codecs (H.264 over AV1 for legacy content). Each script references absolute paths like /data/local/scripts/voice-pairings.sh, so the destination device must host an identical copy, or the launcher silently falls back to defaults. Because those files are written as root, moving the whole /mnt/system partition or flashing a new firmware image sometimes strips the old contents along with the OS.

Risks and trade‑offs when switching hardware generations

Relocating scripts isn’t a simple drag‑and‑drop. One major trade‑off is path compatibility: a script targeting /sdcard/Android/tv/ on a 2018 model may point to a location that no longer exists on a 2023 product, because Google changed the default mount points between the 6th‑gen Pixel TV family and the newer Samsung‑branded models. Another risk is the secure boot signature check introduced in Android TV 14 (AOSP 15) that rejects scripts unsigned by the OEM key. In practice, migrating from a 2018 Sony X905 to a 2024 XR90 means replacing the script bundle and re‑writing two entries that hardcoded the older hardware’s network MAC address filter.

A common false economy is to leave the scripts on the old device and pair the new TV via the same Google account. That preserves the apps but loses any local Home UI tweaks, such as the custom grid layout or the forced‑HDMI‑mode script that prevents the console from falling back to a lower resolution. The alternative—full migration with re‑creation—is more time but pays off after a year because you keep your exact automation without the daily workaround of re‑creating each script by hand.

Preparing the source bundle before you move anything

Before touching the old box, make a complete backup of everything under /data/local/ plus the contents of /mnt/system/etc/cleanyourtv/ (if it exists). On a 2018 Sony X905F, I pulled the scripts with adb pull /data/local/cleanyourtv/ > /tmp/x905-bundle.tar.gz, then verified checksums against the ones listed in the manual’s “Supported Scripts” appendix. The bundle should include a manifest.json listing each script’s purpose, the target device model, and the absolute paths it touches. Without that manifest, you risk deploying a 2024‑only script onto a 2018 device and getting runtime errors that show up as blank screens.

Step-by-step: copying scripts and updating paths

First, root the device if it isn’t already rooted. Connect the TV to your workstation via ADB USB debugging and run adb pull /data/local/cleanyourtv/ ./bundle-source.tar.gz. Confirm the checksums on a separate drive. Next, create the target directory structure on the new hardware and copy the scripts in, paying attention to the rename. For example, change x905_voice.sh to x90_voice.sh and update the MODEL= line inside the script to Sony X904. Replace any hardcoded IPs with the new room router’s address. Update config.xml by adding <path name="/data/local/scripts/x90_voice.sh" /> and removing the old X905 entry.

Because CleanYourTV reloads the script index on single restart, reboot once after placing the bundle, then open the launcher and check that the script runs without crashing. If it errors out, the Android TV build probably signed a different key, and you’ll need to re‑sign the scripts with the updated build.prop header.

Testing the migration end to end

After the first reboot, do not touch the settings menu immediately. Open the CleanYourTV configuration page and verify which scripts loaded successfully. Then run the voice pairing test: say the wake word, select a device, and confirm the TV responds correctly. If the audio sync script still points to the old speaker path, delete and re‑add it from the bundled file—it’s faster than editing the XML again. Finally, check the Wi‑Fi connectivity test script against the new router’s SSID broadcast. Once all three checks pass, you’ve completed a clean migration.

Post‑migration best practices

Keep a copy of the original X905 bundle on an encrypted USB drive; hardware revisions happen, and you won’t want to rely on a cloud snapshot that might have been created before the last update. Enable the TV’s developer mode and dump the current script paths to a text file once a quarter—if a script stops launching, you’ll know within minutes, not hours, when the Voice Access feature stops working. Lastly, avoid sideloading new scripts onto the old device if you can. The newer firmware builds (Android TV 14+, AOSP 15) flag non‑OEM scripts with a warning banner, and repeating that behavior erodes the reliability of the migration you just did.

Summary

Migrating sideloaded configuration scripts between Android TV hardware generations is routine, but it fails quietly when paths or signatures change. Plan ahead, back up every script, rename and repoint to suit the new gen, and verify with the launcher’s built‑in tests. With that discipline, CleanYourTV stays usable across a device tree that spans several years of Sony and other Android TV hardware, and you never lose the custom Home experience you invested in.

Related reading: more Android TV notes

Read next