Reconfiguring Android TV's Default Launch Sequence After a Custom UI
Updated 2026-11-03
Why the launch sequence breaks after a custom UI install
Most people treat Android TV like a set-top box that boots straight to the home screen. In reality, the launcher process runs twice: once for the system surface and once for the custom overlay that ships with a new UI package. When you flash a custom launcher via sideloading or via a manufacturer’s OTA, the system often forgets to reattach the default activity chain, leaving the first second of boot as an empty black screen or a frozen “Loading” spinner.
The root cause is simple: the native HomeSettings service loses its registered intent filter once the custom package takes over MainActivity. The result is a regression in perceived latency, broken voice search, and the dreaded “Where did my app go?” moment. This guide walks through the exact steps to reattach the default launch sequence without bricking the device’s input path.
Uninstalling and clearing the previous launcher package
Before you attach anything, remove the custom package completely. Open Settings > Apps > All apps, locate the launcher you installed (for example, Flaunt or Apex Launcher), and tap Uninstall. If the package is still listed in the package store because it came from a side-loaded .zip, use the ADB shell to delete it:
adb shell pm uninstall -f com.example.flauti
Do not skip the reboot. Android requires the old shared library cache to clear before the next launch sequence can register cleanly. After a restart, verify the old package is gone with:
adb shell pm list packages | grep -i flauti
If you see the name, re-uninstall. You do not want two launchers competing for the same intent filter.
Rebuilding the default activity chain
Once the custom launcher is removed, Android TV restarts the main surface with the stock com.google.android.runtime based home service. To restore it, edit the /system/etc/init/hw/recore.xml (or the vendor equivalent) and ensure it contains the correct <service> entries for com.google.android.rui and com.google.android.launcher.com.google.rui.
For most users, the simpler route is to push a minimal launch_settings.xml into the /vendor/framework/lib directory:
<service android:name="com.google.android.rui" android:label="@android:string/home_screen" android:exported="true"/>
Reboot. The home screen will pop up in the default layout, voice search will respond, and the quick-login tiles will reappear. If you use a third-party voice assistant (e.g., Google Assistant skills loaded after the home screen), make sure their intent-filter blocks target the default com.google.android.launcher.intent.category.LAUNCHER action again.
Keeping quick access and voice search alive
The biggest risk during reconfiguration is losing the “quick access” grid and the voice search bar. Both depend on the system’s LaunchManager having a valid reference to com.google.android.rui. After you restore the activity chain, run this one-line check to confirm the intent is firing:
dumpsys activity launcher -k | grep -i com.google.android.rui
If the log shows Process "com.google.android.rui" has stopped, the launcher’s binary didn’t register. Re-install the stock RUI APK from a trusted source (Samsung’s firmware image or Google’s official APK) and re-run the launch chain. You can also pin your custom launcher back into place by editing /system/etc/init/recore.xml to include the custom activity, but only if you keep the android:baseActivity attribute pointing to the stock UI. Leaving it pointing to a custom launcher’s PID will break the system-wide search index.
How to flash the custom launcher correctly next time
If you plan to reinstall a different custom launcher later, follow this three-step sequence to avoid a stale launch sequence:
- Reset the home service. Before flashing, boot into recovery and run
reset-configor clear cache partitions. - Flash the new package. Use
adb install --stage-installand then reboot immediately—don’t keep the device in a hybrid state while the new package is mounting. - Re-register the default intent. Edit
recore.xmlor the custom launcher’sres/xml/launch_patterns.xmlto declarecom.google.android.launcher.com.google.ruias the fallback. Boot, then checkadb shell dumpsys launch
This order guarantees that the default home surface resumes in its original form, and the custom launcher only takes over when you explicitly start it from the quick-access grid.
Verifying the final launch sequence
After the full reconfiguration, the goal is a predictable boot: home screen → recommended apps grid → voice search bar. Test it on a cold boot (full power cycle from shutdown). Confirm the following:
- The RUI home screen appears within 1.5 seconds of power-on.
- The microphone button triggers voice search without lag.
- No flickering between your custom theme and the stock layout.
If any of these fail, the culprit is usually a missing android:exported flag or an incorrect <activity> android:label. The stock Android TV launcher bundles the correct flags in a known XML block; your custom package almost never does.
Final notes on maintenance and safety
Android TV’s launcher path is a common point of failure, and not just for enthusiasts who flash UIs. Every update from the Play Store or a Samsung Firmware Update (SFU) package can overwrite recore.xml, which explains why a launcher that worked yesterday suddenly behaves strangely. Keep a copy of the original recore.xml (from a stock firmware build) handy, and always rebuild before any major customization.
Resetting the launcher settings via Settings > Home > Home screen options > Reset is safe and does not remove your installed apps, but it does wipe your custom themes. For a permanent solution that preserves both convenience and customization, the XML-based approach above remains the most reliable method.
Related reading: more Android TV notes
Read next
Integrating Chromecast on Android TV Without a Separate Launcher
Learn to route Cast screen share directly through Android TV using the built-in Chromecast UI—no extra launcher needed.
Android TV Launcher Benchmark: Speed and Stability Tests
Compare the new CleanYourTV launcher against stock Android TV on Nvidia Shield and LG TV—real-world speed and stability results for your home screen.