# HiLight Studio: an experimental LED controller for the Pixel 11 Pro's HiLight array

> HiLight Studio is a Kotlin Android app that drives the eight-LED HiLight array on the Pixel 11 Pro, Pro XL and Pro Fold under Android 17, using root, Shizuku or ADB as the privileged path. It works, but the renderer has to be restarted after every reboot, and the project ships only experimental prereleases.

**DhananjayBhosale/hilight-studio** — Experimental Pixel 11 HiLight LED controller for Android 17.

- Repository: https://github.com/DhananjayBhosale/hilight-studio
- Website: https://hilightstudio.dhananjaytech.app/
- Stars: 357 · Forks: 24
- Language: Kotlin
- License: MIT
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/dhananjaybhosale-hilight-studio

## What HiLight Studio controls, and on which phones

The Pixel 11 Pro, Pixel 11 Pro XL and Pixel 11 Pro Fold carry an eight-LED HiLight array. HiLight Studio is an app that drives that array: solid colours, animated patterns, per-app rules for foreground use and notifications, per-contact colours, saved presets with import and export, and wallpaper-derived colours. The README states plainly that the project is experimental and supports only those three devices on Android 17 (API 37), and that it is not affiliated with or endorsed by Google. That constraint defines the audience. If you do not own one of those three phones, or if your phone is still on an earlier Android release, there is nothing here to install onto. The app also ships a Quick Settings tile, microphone and camera activity rules, quiet hours and Do Not Disturb controls, and per-app language selection for English and Japanese. The scope is deliberately narrow: one hardware feature on one family of devices.

## How the renderer reaches the lights service

Android does not expose the lights service to ordinary apps, so HiLight Studio needs privileged access. The README describes three paths in order of preference. On a rooted phone the app detects root automatically and uses it instead of the other options. Otherwise it can go through Shizuku, or through an ADB-launched helper process. The renderer is a separate helper that runs in the background and redirects its output to a log. Only one renderer can drive the array at a time, which is why the project talks about ownership rather than simply on and off. The ADB path is the most explicit about this: the Setup tab produces a single combined command that enumerates only the exact HiLight helper and Shizuku process identities, sends cooperative termination, waits up to 6.5 seconds for confirmed exit, and then starts a fresh helper with a per-process instance ID. Starting is skipped if any old renderer survives. That fence exists because two renderers fighting over the same LEDs would produce undefined output. The README also notes that direct AdbHelper launches must pass a valid explicit --instance value, and that you should use the Setup command or the start-helper script so identity and the singleton lock are configured correctly.

## Installing HiLight Studio from the Play closed test or an ADB sideload

There are two distribution channels, and they do not share settings. The Play edition installs separately from the experimental GitHub build and starts with its own configuration. For the Play route, the README says to join the tester Google Group with the Google account used on your supported Pixel, then open the Play testing page, opt in, and install. For manual installation, the README recommends ADB, and warns that Play Protect may block direct installs from a browser or file manager because the app uses notification access for LED alerts. Download the signed APK from the latest GitHub prerelease to your computer, connect a supported Pixel with USB debugging enabled, approve the computer on the phone, and run the install from the folder containing the APK. The filename below is the one the README uses in its example:

```bash
adb install -r HiLight-Studio-v1.0.12-experimental-signed.apk
```

If you previously installed v1.0.3 or an older debug-signed build, uninstall it once first, because the signing certificates differ:

```bash
adb uninstall com.hilight.studio
adb install HiLight-Studio-v1.0.12-experimental-signed.apk
```

After installation, pick an access path. On root, open the app and turn it on; it detects root and asks your root manager for a one-time approval. With Shizuku, install Shizuku v12 or newer, start it using Wireless debugging, then open HiLight Studio, go to Setup, tap Request access, and approve. With ADB, enable Developer options and USB debugging, open the app once so it can create its state files, then use Setup, ADB and copy the combined command for your desktop shell. The helper runs in the background and normally prints nothing, and startup can take roughly 2 to 3 seconds while the renderer completes synchronous black-only cleanup. To confirm the helper came up, check its log:

```bash
adb shell cat /data/local/tmp/hilight.log
```

A successful start reports connected: 8 HiLight LEDs. If that line does not appear after the startup cleanup window, the README says to confirm that you copied the command for the correct desktop shell. Contributors on macOS or Linux can instead run ./scripts/start-helper.sh, which applies the same fence.

## Ownership checks and the reboot tax

The renderer must be restarted after every reboot. That is stated in the README without qualification, and it is the single biggest operational cost of using the app. On the Shizuku path you also have to restart Shizuku after each reboot and then reopen HiLight Studio. When you suspect the array is stuck, the README gives a diagnostic that does not require copying notification content, package names, accounts, device identifiers or logcat: under Setup, Copy LED diagnostics reports session.open. With no call, Gemini or other stock Pixel effect active, you can also count framework sessions directly:

```bash
adb shell dumpsys lights | grep -c "Session token="
```

The README says to expect 0 after HiLight cleanup settles and 1 while HiLight is visibly driving. HiLight should own zero sessions while it is off or dark, and exactly one only while it is visibly driving the LEDs. Version 1.0.9 added a renderer identity check before replaying the visible state; it may send a minimal disabled state to hold output dark while an old daemon is removed and rebound once, and if ownership is still unresolved the app fails closed. Failing closed is the right call here, but it means a stuck ownership state shows up as no light rather than as a wrong colour, which sends you back to the diagnostics command.

## Where HiLight Studio is the wrong tool

The supported device list is the first hard limit. A Pixel 11 Pro, Pro XL or Pro Fold on Android 17 is the entire addressable set; the README gives no indication that other Pixel models or other Android versions are planned, and the app depends on a specific eight-LED array and the framework lights service on API 37. The second limit is privileged access. Without root, Shizuku or ADB, the app cannot drive the LEDs at all, and the ADB path requires a computer and a USB cable each time you want to bring the renderer up after a reboot. The third is release maturity. Every recent release is tagged experimental, and the README itself calls the project experimental. If you need an LED controller that survives a reboot unattended, or that you can install on a fleet of phones without per-device setup, this is not that. The README does not document rollback, so plan for the possibility that you keep the APK around if you want to return to an earlier build.

## How it compares with writing to the lights service yourself

The obvious alternative is not another app; it is a small shell or app of your own that talks to the lights service through the same privileged channel. That approach gives you exactly the patterns you want and nothing else, and it can skip the per-app rule engine, the presets, the wallpaper-derived colours and the notification listener entirely. What it does not give you is the ownership fence. The combined Setup command in HiLight Studio enumerates the exact helper and Shizuku process identities, terminates them cooperatively, waits up to 6.5 seconds for confirmed exit, and starts a fresh helper with a per-process instance ID, skipping startup if any old renderer survives. Reproducing that correctly, plus the black-only cleanup and the fail-closed behaviour on unresolved ownership, is the part of this project that is actually hard. The trade-off is straightforward: a hand-rolled script is smaller and has no UI to learn, but you own every race between two renderers yourself. Contributors who want the fence without the app can run ./scripts/start-helper.sh, which the README says applies the same logic.

## Licence, releases and what maintenance looks like

HiLight Studio is MIT licensed, which permits use, modification and redistribution provided the copyright notice and permission notice are preserved; the repository includes a LICENSE file at the top level. That is permissive enough for most personal and internal use, though anyone redistributing a modified build should read the licence text rather than rely on this summary. On releases, the repository publishes prereleases on a roughly weekly cadence in early September 2026, and the last push to the default branch was on 2026-09-12. The app has a manual update check against the project's GitHub releases, so upgrades are not automatic. The README notes that the published APK is signed with HiLight Studio's permanent release certificate and that v1.0.12 updates any release carrying that same certificate normally, which means the upgrade path is clean from v1.0.12 onward but not from the older debug-signed builds. The repository also carries CHANGELOG.md, CONTRIBUTING.md, SECURITY.md and a CODE_OF_CONDUCT.md, so the project's own documentation is more complete than the README alone suggests.

## Conclusion

Adopt HiLight Studio if you own a Pixel 11 Pro, Pro XL or Pro Fold on Android 17, you are comfortable granting root, Shizuku or ADB access, and you accept restarting the renderer after every reboot. Do not adopt it on any other device, on an older Android version, or if you need a stable, non-experimental release. Before installing, verify three things on your own phone: that the model is one of the three supported devices, that you can obtain privileged access through one of the three documented paths, and that you are willing to install a prerelease APK from the GitHub releases page or opt into the Play closed test. If you cannot confirm all three, the app will not drive the array for you.

## FAQ

### Which phones does HiLight Studio support?

The README states that HiLight Studio supports only the Pixel 11 Pro, Pixel 11 Pro XL and Pixel 11 Pro Fold on Android 17 (API 37). It also states that the project is not affiliated with or endorsed by Google.

### How do I install HiLight Studio?

You can join the tester Google Group and install the Play closed test, or download the signed APK from the latest GitHub prerelease and install it with ADB, for example adb install -r HiLight-Studio-v1.0.12-experimental-signed.apk. The README warns that Play Protect may block direct installs from a browser or file manager.

### Does HiLight Studio need root, Shizuku or ADB?

Yes. The README says HiLight Studio needs privileged access to the Android lights service, and the app supports root, Shizuku v12 or newer, and ADB as the three paths. On a rooted phone the app detects root automatically and uses it instead of the other options.

### Why do the LEDs stop working after I reboot my Pixel?

The README states that the renderer must be restarted after every reboot. On the Shizuku path you also restart Shizuku after each reboot and then reopen HiLight Studio.

## Sources

- [DhananjayBhosale/hilight-studio on GitHub](https://github.com/DhananjayBhosale/hilight-studio)
- [License: MIT](https://github.com/DhananjayBhosale/hilight-studio/blob/main/LICENSE)
- [Project website](https://hilightstudio.dhananjaytech.app/)
- [README](https://github.com/DhananjayBhosale/hilight-studio/blob/main/README.md)
- [Releases](https://github.com/DhananjayBhosale/hilight-studio/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dhananjaybhosale-hilight-studio
