Customizing Status Bar Icons for Battery Level with Xposed Launcher
Updated 2026-11-05
Why customize the status bar on Android TV?
Most Android TV devices ship with a stock launcher that shows battery percentage in a simple line icon. That design is fine for phones, but the small, high-contrast display on a living-room TV makes a generic battery glyph hard to read at a glance. Adding our own battery icon—styled with a crisp vector SVG and optionally tinted to match the accent color of a room—turns the status bar into a genuine room ambience tool. The most practical way to do this on Android TV without waiting for a vendor firmware update is with the Xposed Foundation framework and its Module Manager app, which injects custom system elements into the launcher shell.
Xposed lets us swap the battery indicator module at runtime, so the new icon appears immediately and survives reboots. The trick is that TV screens use larger pixel densities and a different DPI than phones, so the SVG needs to be drawn at an appropriate scale. This article covers the exact steps and warns about two common pitfalls: HDR output rendering and module crashes.
Setting up Xposed on Android TV
Before we can change anything, Xposed itself has to run. Android TV devices that lack a built-in Xposed port must use a third-party port such as LSP (LSPX) or the community-maintained “Xposed TV” builds. On most official smart TVs that run a stock ROM, the process begins by flashing an Xposed recovery image via fastboot. Confirm the device is recognized in fastboot (adb reboot bootloader) and that xtosed -m reports a running recovery before proceeding.
Once Xposed is live, install Module Manager from the Play Store (if it’s available) or sideloading the APK from a trusted mirror. Grant it root-level permissions through the usual adapter prompt; Xposed requires it to write to /system/etc/xposed/ and load modules. After the first boot, verify the Xposed service is running: open settings → System → Advanced → Xposed (or a dedicated Xposed menu).
Installing and configuring the battery module
With Xposed active, install the battery-module APK that supports SVG overrides. The popular fork “BatterySVG” is a single-module package that replaces the stock battery draw with a call to a custom drawable resource. During installation, choose the TV resolution preset (usually 3840×2160 for UHD sets); the SVG will be rendered at the screen’s native DPI, so supplying a 512×512 SVG ensures crispness without blurriness in either 1080p or 4K output.
The configuration screen asks for the icon path and color tint. Point it at the included default SVG under /data/local/tmp/battery_svg/ (the package ships pre-generated SVGs for common levels), and select a tint value. For a warm living room, pick a soft amber that blends with the lamp light; for blue, use the default white. Save the change and reboot once—the module hooks into the status bar’s IconService at first boot. After reboot, the custom battery icon should appear alongside the clock and other widgets, rendered in clean vector form at the correct size.
If the device is HDR, the SVG has to be compatible with Dolby Vision. The BatterySVG package includes both an SDR and a D3Lit version of the icon set. On a TV that supports HDR10+ or Dolby Vision, choose the HDR variant in the module settings; on non-HDR or older HDMI sources, stick to the SDR variant. Using the wrong color space produces a washed-out icon or, in rare cases, triggers a shutdown of the Xposed service itself.
Testing and troubleshooting
After the reboot, open the status bar from any screen and confirm the battery icon is visible and legible. Tap the icon—it should expand into a small widget showing the percentage numerically, exactly like the stock version but now with our chosen tint. To confirm the HDR variant works, switch your HDMI source to a 4K HDR test pattern via the source menu, then re-check the icon’s luminance. A correctly rendered HDR icon stays bright without clipping highlights, while an incorrect one looks gray.
Two problems come up often. First, if the icon is pixelated, regenerate the SVG at a higher resolution (1024×1024) and redownload the module; the injector defaults to a scaled-down asset that isn’t sharp on a 4K panel. Second, if the launcher stutters when the icon redraws, disable the “Animate status bar widgets” option in Xposed’s Module Manager and try again. That animation, while tempting for a phone, adds measurable frame delay on the slower TV GPU. Disabling it keeps the battery display responsive even when the module updates.
Why the trade-offs are worth it
The core benefit is that Android TV’s stock UI offers almost no personalization, yet Xposed delivers a truly native-feeling experience with custom iconography that matches the rest of the room’s lighting. You keep all vendor features—voice search, cast targets, Google Assistant on screen—and just layer in your own visual style. The cost is modest: a little time setting up the SVG, a small risk of Xposed crashes, and the need to remember which module version you installed. Most users find that the one-time effort pays off every time they walk past the couch and see “warm amber battery” instead of a generic gray bar.
For anyone who wants a cleaner, more personal TV interface without waiting for a manufacturer to ship a custom launcher, Xposed plus the BatterySVG module is the fastest, most reliable path on Android TV. The HDR-safe SVGs demonstrate that the approach really works on a 4K set, making it a practical option for home-media setups that treat the TV as part of the room’s décor rather than just a background screen.
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.
Optimizing Battery Life with Low-Wake Android TV Launchers
Learn which Android TV launchers preserve battery best and step-by-step settings to cut wake locks and extend screen time on your set-top box.