You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: HiLight's settings doesn't respect the Privileged access method #1372
changed the title [-][Bug]: HiLight settings doesn't respect the Privileged access method[/-][+][Bug]: HiLight's settings doesn't respect the Privileged access method[/+]on Oct 13, 2026
Thanks for the report. This is currently expected behaviour rather than a regression, but it's a fair gap.
Hilight drives the LEDs through the system lights service (ILightsManager), which needs CONTROL_DEVICE_LIGHTS. That permission is signature|privileged, so it can't be granted to the app with pm grant. Shizuku and Porter work because they hand Essentials a binder running as the shell user, which already holds it. Root mode in Essentials only runs su -c shell commands, so there's no binder to call the lights service through. That's why HilightLights.isModeSupported() only accepts Shizuku and Porter, and why "Try it" does nothing in Root mode.
Workaround for now: if you start Shizuku (it can run as root), set Privileged access to Shizuku or Auto and Hilight will work.
Possible fixes:
In Root mode, fall back to Shizuku's binder when Shizuku is running, and make the status text clearer when it isn't.
Proper root support via libsu's RootService: a small service running as uid 0 that makes the ILightsManager calls (getLights, openSession, setLightStates, closeSession) over a tiny AIDL interface, with HilightLights picking the Shizuku or root path.
@sameerasw would you be open to option 2? It adds the libsu dependency, so I wanted to check before opening a PR. Happy to do option 1 on its own if you'd rather not.
Thanks for the report. This is currently expected behaviour rather than a regression, but it's a fair gap.
Hilight drives the LEDs through the system lights service (ILightsManager), which needs CONTROL_DEVICE_LIGHTS. That permission is signature|privileged, so it can't be granted to the app with pm grant. Shizuku and Porter work because they hand Essentials a binder running as the shell user, which already holds it. Root mode in Essentials only runs su -c shell commands, so there's no binder to call the lights service through. That's why HilightLights.isModeSupported() only accepts Shizuku and Porter, and why "Try it" does nothing in Root mode.
Workaround for now: if you start Shizuku (it can run as root), set Privileged access to Shizuku or Auto and Hilight will work.
Possible fixes:
In Root mode, fall back to Shizuku's binder when Shizuku is running, and make the status text clearer when it isn't.
Proper root support via libsu's RootService: a small service running as uid 0 that makes the ILightsManager calls (getLights, openSession, setLightStates, closeSession) over a tiny AIDL interface, with HilightLights picking the Shizuku or root path.
@sameerasw would you be open to option 2? It adds the libsu dependency, so I wanted to check before opening a PR. Happy to do option 1 on its own if you'd rather not.
I am fine but we do need some external proper testing with this as we don't got rooted devices to test.
Activity
[-][Bug]: HiLight settings doesn't respect the Privileged access method[/-][+][Bug]: HiLight's settings doesn't respect the Privileged access method[/+]jawzf commentedon Oct 14, 2026
Thanks for the report. This is currently expected behaviour rather than a regression, but it's a fair gap.
Hilight drives the LEDs through the system
lightsservice (ILightsManager), which needsCONTROL_DEVICE_LIGHTS. That permission is signature|privileged, so it can't be granted to the app withpm grant. Shizuku and Porter work because they hand Essentials a binder running as the shell user, which already holds it. Root mode in Essentials only runssu -cshell commands, so there's no binder to call the lights service through. That's whyHilightLights.isModeSupported()only accepts Shizuku and Porter, and why "Try it" does nothing in Root mode.Workaround for now: if you start Shizuku (it can run as root), set Privileged access to Shizuku or Auto and Hilight will work.
Possible fixes:
RootService: a small service running as uid 0 that makes theILightsManagercalls (getLights, openSession, setLightStates, closeSession) over a tiny AIDL interface, withHilightLightspicking the Shizuku or root path.@sameerasw would you be open to option 2? It adds the libsu dependency, so I wanted to check before opening a PR. Happy to do option 1 on its own if you'd rather not.
sameerasw commentedon Oct 14, 2026
I am fine but we do need some external proper testing with this as we don't got rooted devices to test.
jawzf commentedon Oct 14, 2026
I totally agree. We especially need rooted Pixel 11 devices. Unless @Celestial04 you are willing to help me with the testing?