Every app has its own notification sound again

On Xiaomi, Redmi and POCO phones with HyperOS, apps like banks and shops ship their own notification sounds, but the phone plays the same global tone for all of them. NativeTones finds those sounds inside each app and puts them back.

Download NativeTones 0.1.0 (APK) Get Shizuku

53 KB · Android 8+ · no internet permission
APK SHA-256: a62d5681d2d69b348243ab05d0ed01c9c45367032a044da68eec0e3e58e83852
Signing certificate SHA-256: 9f74f5ff348111c46501e03d3108ad01b6ad165ef6974db6458bc542f51e12d5

What it fixes

An app creates notification categories ("Transactions", "Top-ups", "Messages") and attaches its own sound to them. On HyperOS those categories end up with the global notification sound, so a card payment, a parcel and a chat message all sound the same.

Example from a POCO F8 Ultra:

AppCategorySound inside the app
monobankTransactions, Top-ups, Cashback and 8 morecharge_off, refill, cashback…
Privat24Visa, Mastercard, Envelopevisa_sound, mastercard_sound, envelope_recharge_sound
SlackHuddle inviteshuddle_invite_notification

Apps that never had their own sound on Android (Telegram, WhatsApp and most others) keep the global tone. There is nothing to restore for them.

Why it needs Shizuku

Android does not let a normal app change another app's notification sound. The system allows it for ADB, the developer connection. Shizuku is a free, open-source app that gives NativeTones that same ADB access right on the phone, without a computer and without root.

No root, no unlocked bootloader. Banking apps keep working. Your warranty is not affected.

Setup (about 5 minutes, once)

  1. Turn on developer options. Settings → About phone → tap OS version 7 times.
  2. Turn on "USB debugging (Security settings)". Settings → Additional settings → Developer options. This is a separate switch from plain "USB debugging", and Xiaomi may ask you to sign in to your Xiaomi account. Without it Shizuku says "the permission of adb is limited" and can't give NativeTones access. After a system update, check that it's still on.
  3. Install Shizuku from Google Play or its website.
  4. Start Shizuku with wireless debugging. Connect to any Wi-Fi, open Shizuku and follow Start via Wireless debugging. You pair it once with a code from Settings → Additional settings → Developer options → Wireless debugging. Shizuku's official guide shows every screen.
  5. Install NativeTones from the button above. Android asks you to allow installs from your browser. That's normal for apps outside the store.
  6. Open NativeTones → Allow access when Shizuku asks.
  7. Scan apps, listen to the sounds with ▶, keep the ones you want and tap Apply selected sounds.

Questions

Do I need to keep Shizuku running?

No. The sounds are saved by the system and survive reboots. Shizuku is only needed when you apply sounds, or when you want new apps fixed automatically. After a reboot Shizuku stops; start it again whenever you install new apps.

Shizuku says "the permission of adb is limited"

Turn on USB debugging (Security settings) in Developer options (step 2), then stop and start Shizuku again.

Can I undo it?

Yes. NativeTones remembers each category's previous sound. Undo all changes puts them all back.

Does it change anything else?

Only the sound of the listed notification categories. Importance, vibration, lock screen and every other setting stay as they were. NativeTones has no internet permission and sends nothing anywhere.

An app I use isn't in the list

It either has no notification sound of its own on Android, or its sound files have scrambled names that can't be matched safely. You can still pick a sound by hand in Settings → Notifications → App notifications → the app → a category → Sound.

Which phones does it work on?

Tested on POCO F8 Ultra with HyperOS 3 (Android 16). It should work on any HyperOS phone with Android 11 or newer, since Shizuku's wireless start needs Android 11.