Transform any ad-bloated Android TV or Google TV into a lightning-fast, tvOS-inspired, fail-safe experience — without root, without bootloop risks, and without losing access to stock features.
[ STOCK GOOGLE TV ] [ NLRC TV VIBEHACK ]
┌──────────────────────────────────────┐ ┌──────────────────────────────────────┐
│ Sponsored Ad Banner (70% Screen) │ │ NLRC Home · Ambient Clock & Date │
│ [Trending Shows] [Paid Promotions] │ │ │
│ 50+ Bloatware OTT Apps │ ➔ │ │
│ Remote Buttons Lock You In Paywalls │ │ Dock: [HDMI 2 (Cable)] [Media Vault]│
└──────────────────────────────────────┘ └──────────────────────────────────────┘
• 2.5 GB RAM used • 120 MB RAM used
• Heavy telemetry & tracking • 0 Ads · 0 Telemetry · 100% Fail-Safe
Modern Smart TVs ship with:
- Sponsored ads covering 70% of the screen.
- Sluggish bloatware and 50+ pre-installed background apps consuming memory and tracking habits.
- Unremappable sponsored remote buttons (Netflix, Prime Video) that elderly family members hit by mistake, throwing them into subscription walls.
- Overly complicated navigation that makes switching to Cable/HDMI or playing personal home videos a headache.
tv-vibehack solves this permanently. Originally built to give aging parents a distraction-free, one-touch TV experience, it provides a universal blueprint for taking back control of any Android TV without root.
On Android 14 Google TV, disabling the stock launcher (com.google.android.apps.tv.launcherx) breaks Direct Boot, tripping Android's RescueParty service and bricking the TV into a black-screen recovery state.
tv-vibehack never disables launcherx. Instead:
- The custom launcher is
directBootAware="true". - A lightweight native Accessibility Service (
HomeKeyService) intercepts Home key events and window transitions in under 10ms. - If the custom launcher is ever uninstalled or crashes, Google TV seamlessly takes over. Zero chance of bricking your TV.
No more opening 4 nested TV menus just to watch cable. Through reverse-engineered Realtek RTD TvContract passthrough URIs, the launcher switches directly to HDMI inputs programmatically:
Uri uri = TvContract.buildChannelUriForPassthroughInput(
"com.realtek.tv.passthrough/.hdmiinput.HDMITvInputService/HW151519744" // HDMI 2
);
context.startActivity(new Intent(Intent.ACTION_VIEW, uri));HomeKeyService intercepts hardcoded hardware remote buttons (KEYCODE_BUTTON_3 for Netflix, KEYCODE_BUTTON_4 for Prime Video, KEYCODE_PROG_RED/GREEN) and redirects them straight to HDMI 2 / Set-Top Box in <150ms without root.
Many families have legacy home videos or recordings stored on USB drives encoded in older formats (e.g., DVD MPEG-2) that native modern Smart TV chipsets cannot decode inside standard MP4 containers.
- Transcode to Hardware-Accelerated H.264:
ffmpeg -i "MyVideo_Part_1.mp4" -c:v libx264 -preset faster -crf 23 -c:a aac -b:a 192k "Part_1.mp4"
- Push Directly into TV Internal Storage:
adb shell mkdir -p /sdcard/Movies/NLRC adb push Part_1.mp4 /sdcard/Movies/NLRC/Part_1.mp4 adb push Part_2.mp4 /sdcard/Movies/NLRC/Part_2.mp4 adb push Part_3.mp4 /sdcard/Movies/NLRC/Part_3.mp4
- Instant D-pad Remote Navigation:
Launch PenDrive / Media Viewer directly from the dock. No USB stick needs to remain plugged in; videos play natively at 60fps with intuitive remote controls:
- ◄ / ►: Seek -10s / +10s with real-time HUD.
- ▲ / ▼ or CH+ / CH-: Switch to Next / Previous part.
- OK: Play / Pause toggle.
- On the TV: Settings → System → About → Click Build 7 times to enable Developer Options.
- Go to Settings → System → Developer Options → Turn on USB Debugging (and Network Debugging if available).
- Connect your computer to the same Wi-Fi network as the TV.
adb connect <TV_IP_ADDRESS>:5555Accept the "Always allow from this computer" dialog on your TV.
Safely disable ad-trackers and bloatware using model-specific profiles:
# Example for Acer / Realtek QLED Android 14 TVs
adb shell pm disable-user --user 0 com.google.android.tvrecommendations(See examples/ for model-specific profiles).
cd launcher
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apkadb shell settings put secure enabled_accessibility_services com.gathin.tvhome/.HomeKeyService
adb shell settings put secure accessibility_enabled 1| Path | Description |
|---|---|
launcher/ |
Native Android TV launcher with Apple tvOS aesthetics, D-pad navigation, ambient glow, and Direct Boot awareness. |
launcher/.../HomeKeyService.java |
Fail-safe Accessibility Service intercepting Home button and sponsored hotkeys. |
launcher/.../HdmiHelper.java |
Direct Realtek / Android TV hardware passthrough input launcher. |
launcher/.../PenDriveActivity.java |
Media viewer card UI for offline TV storage / USB playback. |
launcher/.../VideoPlayerActivity.java |
Hardware-accelerated full-screen player with remote seek HUD and episode switching. |
examples/acer-v-pro-32-qled/ |
Comprehensive teardown and architecture notes for Acer / MOKA Realtek RTD QLED TVs. |
tools/ |
Helper scripts: safe_switch.bat / safe_switch.sh for one-click toggle between stock and custom launcher. |
Contributions are warmly welcomed! If you've reverse-engineered input IDs or debloat profiles for your specific TV brand (TCL, Sony Bravia, Hisense, OnePlus, Nvidia Shield), please submit a pull request under examples/.
See CONTRIBUTING.md for details.
This project is licensed under the MIT License. Outfit typeface licensed under SIL Open Font License.