[MOD] [GUIDE] [ROOT] Enable HI-RES (24bits and over 48kHz sampling) on Xiaomi Redmi Note 9's family

Search This thread


New member
Oct 14, 2021
Hi. A very interesting theme with sound enhancements. How can I download your mod for Magisk module.


Senior Member
Jun 3, 2014

Can we increase the sound quality from these settings in the developer options? What should the settings be here?


Oct 30, 2019
Does it work on Redmi 9T (a.k.a Redmi Note 9 4G in china)
It has an Hi-Res Audio Certification and can support playback for upto 24-bit/192KHz.
Anyways, I will just try it.


Senior Member
Jan 31, 2017
Hi @_xenoxis_ thanks for your interest in my SystemRW / SuperRW project ;)
I'm happy that it was useful for you to create this amazing audio mod! (y) I will try your mod when I have more time. Working on next version of my MakeRW script right now ;)
Enjoy your full 32-bit HD audio quality!


Apr 21, 2021
View attachment 5469097

Can we increase the sound quality from these settings in the developer options? What should the settings be here?
Hello, unfortunately, i was never able those settings are only for Bluetooth settings and they will be reset if your Bluetooth device doesn't support parameters you have set, so on my opinion those settings are useless.

Does it work on Redmi 9T (a.k.a Redmi Note 9 4G in china)
It has an Hi-Res Audio Certification and can support playback for upto 24-bit/192KHz.
Anyways, I will just try it.
Hello, you can try to use my mod but remember it was made specially for the Redmi Note 9 Pro. I could work on others Redmi devices but I don't guarantee. Please make a save of your audio settings before any modifications !

Hi @_xenoxis_ thanks for your interest in my SystemRW / SuperRW project ;)
I'm happy that it was useful for you to create this amazing audio mod! (y) I will try your mod when I have more time. Working on next version of my MakeRW script right now ;)
Enjoy your full 32-bit HD audio quality!
Hello, thanks you ! Yeah give it a try and tell me what you think !

Guys, i will abandon this version of the mod because I think it will be better if I can make a global mod for any devices in a magisk module.
I will be far safer than the current version.
I'll take you informed when something new will be there.

Thanks you everyone for the support !


New member
Jul 19, 2021
1) Hey, audio from games are like 4 times slower, so this is smth we have to accept when using 192kHz enforced?

2) Have you got any mod that sets 192 or bring option for 192 in windows ? with Realtek update from manufacter site, they locked 16/44.1 or 48 in windows mixer...
But with WASAPI supports playback upto 24/192kHz (with old driver 32bit/48kHz)
Last edited:


New member
Feb 28, 2022
good job. i set my redmi note 9 pro to 24/44.1 to avoid the distortion in src. thank lot.

24/192 is good, but it would not be the best setting. based on the design, most dac chip would get better quality in 44.1/48 than hight sample rate

if you set 48000|96000|192000, android would set the highest sample rate.
therefore if you want good sound, sample rate setting should be according to your audio resource.
the dirtortion would be the lowest.

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Hello, I'm going to present to you a method to enable hi-res on the DAC of the Xiaomi Redmi Note 9' family.
    The procedure will allow to you to use the full potential of the WCD9385 DAC present (at least) in the Snapdragon 720G.
    Indeed, this chip can go up to 32 bits @ 192Khz for PCM stream and can decode natively DSD. Moreover, this chip have a THD+N (Total Harmonics Distortion + Noise) at a level of -108dB, but all audio tests of Xiaomi's phones mesures a THD+N about ~ -96dB, which is the noise floor of 16bits, logic cause by default, this chip is configured to only output in 16 bits mode.

    I have setup, tested and experimenting myself on my own phone (Redmi Note 9 Pro - Global Version - MIUI QJZMIXM) this method.

    Due to some ROM similarity with other smartphone models in Xiaomi, it will probably works with other smartphones than the Note 9's family, but i will probably need some adjustments if your phone use a different DAC or scheme of audio configuration files.

    Before anything :
    I'm not responsible of any damage, malfunction or brick that you can do by applying the method. In general, if you don't know what are you doing, just don't do it !

    Pre-requests :
    1) Install ADB, Fastboot and Google ADB Drivers (if you are on Windows)
    2) You need to unlock bootloader with Mi-Flash-Unlock (THIS WILL WIPE ALL YOUR PERSONAL DATA, MAKE A SAVE BEFORE STARTING ANYTHING !)
    3) Install TWRP for Redmi Xiaomi Note 9
    4) You need to root your smartphone with Magisk and install the boot image in fastboot mode that it will give to you.
    5) Install ABD_ROOT and ENABLE_ENG Magisk's modules (it will give you the possibility to get root access in ADB) and turn them on for the next device reboot in Magisk App
    6) Install MakeSysRW in TWRP (without it we can't remount /vendor partition in Read-Write, and can't touch system's files)
    7) Strongly recommanded but not necessary : install Sample Rate Checker from Google Play (with this tool, you can check if the DAC has correctly been set in "HI-RES" mode)

    Get your phone tuned for Hi-RES :

    1) One all of those pre-requests are effectives, you need to get a terminal with adb working (smartphone connected to your PC and debug mode activated) and type :
    adb shell mount -o remount,rw /vendor
    If you get no errors, you just mounted the partition /vendor on your phone in Read-Write mode, this will allow you to get to the next step, otherwise, i strongly recommand to you to check if you have correctly done all the pre-requests i have described.

    2) The next step will save the current audio configuration of your phone (in case you want to return to it for some reasons), still in a terminal window, type :
    adb pull /vendor/etc/audio/audio_policy_configuration.xml ./saved_audio_policy_configuration.xml
    adb pull /vendor/etc/audio_io_policy.conf ./saved_audio_io_policy.conf

    This will download from your smartphone to your computer the current audio configuration files and save them under "saved_audio_policy_configuration.xml" and "saved_audio_io_policy.conf" in your current directory.

    3) Now we will upload configurations files that i've tuned myself, in first case for my personal use.
    What changes I've made from the OEM configuration ?
    PRIMARY_OUTPUT was in 16 bits @ 48kHz => changed to 24bits @ 192 Khz
    RAW_OUTPUT was in 16 bits @ 48 Khz => changed to 24 bits @ 192 Khz
    DEEP_BUFFER was in 24bits @ 48 Khz => changed to 24bits @ 192 Khz
    Wired Headset, Wired Headphones and Line comes from 16 bits @ 48 Khz, have all been tuned to 24 bits @ 192 Khz

    Moreover, i have not touched the integrated speakers because they will not profit to go into 24 bits mode or with an higher sampling rate, and you will get more energy saving by let them as they currently are.

    If you check the configuration, you will see at points that I tuned this : samplingRates="48000, 96000,192000"

    EDIT 22-04-2021 - Few hours after the first release :
    I have done this to let Android choose by it's own the sampling rate, because i have seen some sort of clipping on LINE output with OGG (vorbis) files (I assume it will be the same with destructive formats, such as MP3, but it's at least with OGG files) at max volume with very loud musics, i thinks if you set strict resampling at 96 or 192Khz, due to fast algorithms in Android Audio, it will generate some sort of distortion and, if your music is loud enough (and you are at the max volume), it will go over 0dB and clip. So I've maintained sampling rate at 48Khz, and it seems to be well, but if you have some clipping, please tell me in your reply, i will investigate further.

    The clipping was effectively done by a resampling mismatches with two configurations files :
    • audio_policy_configuration.xml (the one that I modified originally)
    • audio_io_policy.conf

      Sampling rates mismatches in audio_io_policy.conf because I left them to the OEM configuration, now it's fixed.​

    You can get my configuration file in the files attached to this post, unzip the files in the current directory where ADB running, then send them to your device :
    adb push ./audio_policy_configuration.xml /vendor/etc/audio/audio_policy_configuration.xml
    adb push ./audio_io_policy.conf /vendor/etc/audio_io_policy.conf

    This command will overwrite your current configuration files, once again, please be sure to have saved OEM configuration file on your PC !

    4) Reboot your phone, and enjoy ! Now you can check with Sample Rate Checker the configuration, you will see something like this (it can be slithly different depending on what is plugged to your phone when you're start the app, in my case i have plugged my phone to an amplifier, so LINE_ANALOG has appears):


    As you can see, AudioManager is in 192Khz mode, BUILTIN_EARPIECE correspond to the front top speaker usesed for private communications, and BUILTINT_SPEAKER is the bottom speaker, both of them have remain untouched.
    The most interesting is LINE_ANALOG, corresponding to the phone plugged to a LINE output (a high impedance receiver, such as an amplifier), you can see the different Sample Rates supported, up to 192Khz, and Encodings is ENCODING_PCM_FLOAT corresponding to 24 bits (you can compare it with BUILTIN_EARPIECE and BUILTIN_SPEAKER that they are in 16bits mode).

    EDIT : i can't attach the file to my post, anyway i sent it to mediafire and there is the download link
    Download the Audio Configuration files tuned for HI-RES

    If you have any comments, any remarks or want help, do not hesitate to ask.
    Update 08/07/2021 :

    Hello guys, i have made a magisk module with this mod, it's currently on submission stage and it will be, normally, fully available in the magisk module repository (the "market").

    With this magisk module, the mod will be systemless and will no require tricks to hard-modifying files on the device !

    I'll keep you informed about this !
    22/04/2021 - Few hours after the first post :
    I have discovered that the mysterious clipping isn't present when i plug/unplug the phone for few seconds, before appearing.
    After some research, try and retries, I've found the problem : the file audio_io_policy.conf
    In this file is listed all outputs present in the audio_policy_configuration.xml, but i found that all outputs have a fixed 48 kHz sample rate, which don't match with the concatenated ones in the tuned file.
    Concretely, internally the sample rates don't matches, and streams (over)sampled above 48 KHz are some sort of clipped.
    So I have concatenated samples also in audio_io_policy.conf, and now it works well with all types of musics.

    The first post will be edited with modifications that you need to do with the file audio_io_policy.conf
    "hifi_playback" is just an unused output which isn't routed to anything, so don't mind about it.

    About your sampling rate change to 384kHz, this will not gonna set it to 384Khz cause you don't change the file "audio_io_policy.conf" where is the i/o configuration (currently, your configuration can cause some volume saturation as it done the first time I tried my mod on my device).
    You need to set 384KHz as well in this file.

    Moreover, is it useless to set the USB output over to 192Khz, I don't know a device in USB which can handle 384KHz audio on a USB connection.
    I'm making a USB Sample Rate Changer script like bluetooth LDAC and usb-samplerate-unlocker (up to 386kHz and even 768kHz). If you like, see my github USB Sample Rate Changer and usb-samplerate-unlocker.