All posts

    Essay

    Debloating an XGIMI Vibe One projector, and why I tested with the real remote

    How I made an ad-filled XGIMI Vibe One a clean, reversible build on top of CleanYourTV, and why simulated key presses passed tests the real remote failed.

    2 min read
    My XGIMI Vibe One projector came with a store demo app, two factory menus, a bug-report uploader and a home screen full of ads. I turned it into a clean build on top of CleanYourTV, an open-source project that debloats Android TVs over Wi-Fi. It needs no root and no cable, and every change can be undone. I worked through it in Antigravity. Sixteen apps are disabled rather than uninstalled, which is what keeps every change reversible. XGIMI's firmware kept undoing my work, twice. The first time it was the remote. The YouTube, Netflix and Prime buttons go through XGIMI's own key service, and that service switched the stock home screen back on with every press. Disabling the home screen meant nothing if one button could bring it back, so I caught those presses one layer earlier, before the vendor service saw them. The next morning Google's launcher was back anyway, without a single key press. It's a system app, and something re-enables it at boot. So I stopped trying to kill it. My launcher now notices when Google's home screen opens and sends you straight back, an idea I borrowed from an open pull request on the original repo. After a power-on you see Google's launcher for about a second, then mine. That one-second flash is the price of not fighting the firmware on every boot. The part I'd carry into any project is about testing. Simulated key presses skip the layer I was fixing, so they pass tests the real remote fails. A test that can't reach the layer you changed only tells you the rest of the system still works. I tested every remap by pressing the actual buttons. I also added a sleep timer and a few remote shortcuts to the launcher, and I plan to send those back to the original project. The Vibe One build is on GitHub: https://github.com/dhruvpuri/cleanyourtv/tree/vibe-one/xgimi-vibe-one
    Android TVOpen sourceTestingSide projects