ShizuStore

Aura

tgvdufuture

0.5.0 · GitHub

Download APK
Vendor-specific Android 8.0+ 1 week ago MIT
49 ShizuStore
986 GitHub
10 Stars
7 MB Size

More about this app

Custom RGB notification LED app for POCO X8 Pro with per-app, per-contact, and per-group colors and animations

Aura — Custom LED and notification light for POCO X8 Pro (HyperOS)

Build

Aura is an open-source Android app for custom LEDs on the POCO X8 Pro. It drives the RGB LED rings on the back of the phone (Xiaomi / HyperOS 3) and shows a different color and animation per app, per contact and per group — while the screen is off. It replaces HyperOS's default notification light, which is limited to a single global color with no sender distinction.

If you are looking for a custom notification LED, RGB notification ring, back LED effect or a way to customize the rear lights on a POCO X8 Pro, Aura provides per-app and per-sender rules without root. The POCO X8 Pro Max (also known as Redmi Turbo 5 Max) is supported by the same LED hardware and has been confirmed working by users.

En français : Aura permet de personnaliser la LED arrière, la lumière de notification et les anneaux RGB du POCO X8 Pro sous HyperOS, avec une couleur différente pour chaque application, contact ou groupe.

Notification LED · RGB LED · light ring · POCO X8 Pro · Xiaomi · HyperOS · Shizuku · Android · custom notification LED · RGB notification ring — no root required.

  • 100% local: no network permission, no backend, no telemetry.
  • Hardware control via Shizuku (ADB privileges) or, for rooted devices, directly through su.
  • Resolution priority: contact > group > app.

Features

  • Color per app: each enabled app has a default LED color.
  • Live LED preview: tap a color in the picker to preview it on the ring in real time before saving.
  • Color + animation per contact/group: messages (WhatsApp…) and calls can be distinguished by sender (breathing, flashing, rainbow, alert).
  • Lock screen aware: the LED drives when the screen is off or the device is locked; it stays off only while you're actively using the phone.
  • "Last one wins" with smart fallback: a new notification replaces the previous state, and dismissing it falls back to the previous one.
  • Auto-restart on boot: the service and notification listener reconnect automatically after a reboot.
  • Light / dark / auto theme: manual toggle in Settings (follows the system by default).
  • System LED disabled on HyperOS to avoid double lighting (single driver).
  • Configurable light duration (1–30 s, default 10 s).
  • English / French UI: language picker on first launch (choice persisted, switchable from Settings).
  • Works even when notification content is hidden on the lock screen (content recovered via Shizuku — see How it works).

Screenshots

Main screen Settings

Download

Get the latest signed APK from the releases page:

Prerequisites

Hardware / system

  • POCO X8 Pro running HyperOS 3 (Android 16). This is the only device it has been developed and tested on. The POCO X8 Pro Max (a.k.a. Redmi Turbo 5 Max) shares the same RGB ring hardware and HyperOS version, and has been confirmed working by users.
  • Shizuku installed and enabled (see below), unless the device has working root access. Root fallback is experimental.

Build environment

  • JDK 17
  • Android SDK (compileSdk 36, minSdk 26)
  • Gradle 8.13+ (the wrapper is provided, nothing to install)

Build

# Linux / macOS
./gradlew assembleDebug

# Windows
gradlew.bat assembleDebug

The APK is generated at:

app/build/outputs/apk/debug/app-debug.apk

Installing on the device

adb install -r app/build/outputs/apk/debug/app-debug.apk

Getting started

Aura needs a few one-time permissions to take control of the ring. Do these in order.

Enable the notification LED on the phone first: turn on the back light in Settings → Additional settings → Back light effects (French: Paramètres supplémentaires → Effets de lumière arrière). Without it the ring won't light up, even though Aura is running.

1. Install Aura

  1. Download the latest app-release.apk from the releases page.
  2. Open the APK and allow the install when your browser / file manager asks ("Install unknown apps").

2. Set up Shizuku or root

Aura drives the LED through Shizuku or a root shell. Root users do not need Shizuku; Aura detects root automatically and shows it in Settings.

Root support status — not tested: the root fallback (su) is implemented but has not yet been tested on a physically rooted phone. The development phone used for this release has no su, so Shizuku is the only validated privilege path. If you test root, grant Aura permanent access in Magisk/KernelSU/APatch and use Test the LED first.

Root: grant Aura permanent root access in Magisk/KernelSU/APatch, then continue with step 3.

Shizuku:

  1. Install Shizuku from the Play Store or shizuku.rikka.app.
  2. Start it, one of two ways:
    • Wireless (recommended, no PC): enable Developer options (Settings → About phone → tap the HyperOS version 7 times), then turn on Wireless debugging. In Shizuku, tap Start → Wireless debugging and follow the pairing prompts.
    • Via a PC (ADB): connect the phone to a computer that has adb, then run the command Shizuku shows under "Start via computer connection" → "Show command".
  3. Wait until Shizuku shows "Shizuku is running".

3. Grant Aura's permissions

Open Aura, pick your language, then open Settings:

  1. Notification access — in Settings → Robustness, the notification listener row shows its status; tap it to open the system screen and enable Aura.
  2. Privilege access — with Shizuku, tap "Request authorization"; with root, grant Aura access in your root manager. Then tap "Test the LED (red)" to confirm the ring lights up.

4. Let it survive HyperOS (important)

HyperOS aggressively kills background apps, so do both of these in Settings → Robustness:

  1. Tap "Open Autostart settings" and enable Aura in the MIUI autostart manager.
  2. Tap "Exclude from battery optimization" and choose "No restrictions".

Without autostart, HyperOS may block the notification listener after a reboot.

5. Choose your colors

  1. On the main screen, toggle the apps you want and pick a default color (tap a swatch, or the + for a custom color — the ring shows a live preview).
  2. For messages and calls, turn on "Identify sender" and add contact / group rules with their own color and animation.

6. (Optional) Avoid double lighting

HyperOS lights the ring itself too. In Settings, disable "System LED" so only Aura drives the ring.

How it works

  • notification/AuraNotificationListener: detects notifications (NotificationListenerService) and only emits a LED command while the device is not actively used (screen off or locked).
  • engine/RuleEngine: resolves the rule according to the contact → group → app priority.
  • led/ShizukuLEDController: drives the rings via the miui.lights.ILightsManager system service (setCustomLight), using Shizuku when authorized or su on rooted devices. The color is arbitrary (RGB) and the LED turns off automatically after the timeout.
  • notification/FullNotificationReader: when Android hides notification content on the lock screen, the listener only receives a redacted version (empty title/text). Aura then recovers the full content via dumpsys notification --noredact (run through Shizuku or root) so contact/group rules — and their animations — keep working while the screen is off.
  • data/: local persistence of rules and settings with Room.
  • ui/: Jetpack Compose UI.

Frequently asked questions

Can I customize the LEDs on a POCO X8 Pro?

Yes. Aura customizes the back RGB LED rings of the POCO X8 Pro and can assign a color and animation to each app, contact or group notification.

Does Aura need root?

No. The validated setup uses Shizuku with ADB-level privileges. An experimental root fallback is also included.

Does it work on the POCO X8 Pro Max or Redmi Turbo 5 Max?

The POCO X8 Pro Max, also called Redmi Turbo 5 Max, shares the same RGB ring hardware and has been confirmed working by users. Other POCO models are not guaranteed.

Which HyperOS notification light settings should I use?

Enable the phone's back light effects first, then disable HyperOS's System LED in Aura so that only Aura controls the notification ring and double lighting is avoided.

Recherches en français

Les termes LED personnalisée POCO X8 Pro, lumière arrière POCO, anneau LED de notification HyperOS et couleur LED par application POCO décrivent le même usage pris en charge par Aura.

Tech stack

  • Kotlin 2.1, Jetpack Compose (Material 3)
  • Room (local persistence)
  • Kotlin Coroutines / Flow
  • Shizuku (API 13.1.5)

License

MIT — © 2026 Aura Contributors

Close

How Shizuku is used

Can show per-app LED colors and animations via `miui.lights.ILightsManager`, plus system LED control and hidden notification lookup via Shizuku.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Aura uses Shizuku to drive the custom RGB notification LED and to support its per-app rules.

  • Show notification colors: lights the rear LED strip in the color chosen for each app, contact or group using the system lights service through Shizuku.
  • Play LED animations: plays breathing, flashing, rainbow and alternating color effects for notifications, reminders and repeats through the same lights service.
  • Preview and test colors: lights the strip while picking a color, flashes swatches briefly, keeps custom picks lit for confirmation, and turns the light off when dismissed or when notifications are cleared.
  • Silence system LED: turns off the built-in notification light setting with the settings put system notification_light_pulse command through Shizuku so only Aura drives the LED, and can turn it back on.
  • Match contacts when locked: runs dumpsys notification --noredact through Shizuku to recover hidden notification titles and text when the lock screen redacts them, so per-contact and per-group colors still apply.

Android APIs or commands used

  • miui.lights.ILightsManager.setCustomLight
  • settings put system notification_light_pulse
  • dumpsys notification --noredact
Close

Changelog

What's new for version 0.5.0

Close

Permissions

8 permissions requested

  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.POST_NOTIFICATIONS
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.SCHEDULE_EXACT_ALARM
  • com.aura.led.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close