• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[Guide] [Magisk] Disable Dynamic refresh rate for Poco X3 NFC

Search This thread

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
A lot of people have complained about stuttering in between App switching and gaming. This guide helps you disable Dynamic refresh rate through MagiskHide Prop Config, which is easier than setting it manually and safer to disable if it doesn't work.

Disclaimer: Disabling Dfps (Dynamic refresh rate) will degrade battery life with prolonged use. According to my personal testing, battery life (SOT) decreased by 10-18% on average. Only use for short periods of time.

Requirements:
- Unlocked and rooted with Magisk v21.0.
- busybox-ndk.
- MagiskHide Prop Config installed (used often to pass safetynet CTS but can be used to set custom Props).

Instructions:
1- Run SU in your terminal of choosing.
2- Run props.
3- choose option 5 "Add/edit custom props".
4- choose n "New custom prop".
5- type in:
Code:
 ro.vendor.dfps.enable
6- Default value should be true, type in false to disable.
7- choose 2 "post-fs-data".
8- choose n, don't reboot yet.
9- choose n again to set another prop.
10- type in:
Code:
 ro.vendor.smart_dfps.enable
11- Default value should be true, type in false to disable.
12- choose 2 "post-fs-data".
13- Reboot.

Only tested on stock MIUI. Try at your own risk!
 
Last edited:

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
Doesn't this mess with L1 ? Damn , I need to back up my persist img
NOPE. It doesn't mess with L1 certification or any for that matter. This is a systemless "vendor" modification not "persist", and as such very easily uninstallable. See attached screenshots.
Also the payoff/difference is huge if you're a power user. Try consistent 120Hz vs. stuttering 120Hz (sometimes drops to 30Hz) and you will notice immediately.
 

Attachments

  • Screenshot_2020-10-20-08-55-41-071_com.termux.jpg
    Screenshot_2020-10-20-08-55-41-071_com.termux.jpg
    239.3 KB · Views: 2,217
  • Screenshot_2020-10-20-08-56-32-970_com.androidfung.drminfo.jpg
    Screenshot_2020-10-20-08-56-32-970_com.androidfung.drminfo.jpg
    252.7 KB · Views: 2,192

Joakin2k

Senior Member
Jul 5, 2016
246
71
Culiacán
NOPE. It doesn't mess with L1 certification or any for that matter. This is a systemless "vendor" modification not "persist", and as such very easily uninstallable. See attached screenshots.
Also the payoff/difference is huge if you're a power user. Try consistent 120Hz vs. stuttering 120Hz (sometimes drops to 30Hz) and you will notice immediately.

Excellent explanation ! , I don't care for battery (if is not something out of control) I charge my phone always twice a day, I read that even Xiaomi EU and MIUI MIX has this issue ...
Going back to stock or EU for performance, aosp based are very green in performance...

Any Rom recommendation ?
 

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
Any Rom recommendation ?
I've tried all the custom ROMs available for our device and recommend stock for now. Since all of them are based on stock kernel anyway, they're all MIUI ROMs in my opinion, but you can't blame devs for choosing to patch Stock MIUI when we don't even have Device sources released. TWRP for the same reason, Dynamic partitions are scary. :eek:

Is there a way to set the refresh rate to 90hz and disable the dynamic refresh rate after that?
As far as i know, refresh rate is handeled by an Activity:
Code:
com.xiaomi.misettings/.display.RefreshRate.RefreshRateActivity
which handels Dfps. In turn Dfps handels the frequencies in between 30Hz-120Hz depending on the process(Activity) on the forground.
I can't use my pc for a week atleast (broken from tinkering too much) to find a workaround, but good news! Theoretically, this guide should also work in custom roms with 90Hz option in settings app. Try it on a custom ROM and share your experience with us. [at your own risk ofc]
 

Joakin2k

Senior Member
Jul 5, 2016
246
71
Culiacán
I'm having problems hiding magisk manager(no magisk hide), I already turn off dynamic hz thx to you , changed device fingerprint for pixel 4(want certification)... But when I want to hide magidk manager (a Bank app can see it -already marked in hide-) it says some error , I don't know if it's the Miui security app , this never happened on AOSP, I'm on stock poco X3 , root + props hide config + vanced ... Any tip ?
 

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
Will this still work if i set the display to 60hz?
Yes. Setting 60Hz in the Settings app will set it to a constant 60Hz, conversely setting it to 120Hz will set it to a constant 120Hz as well.

I'm having problems hiding magisk manager(no magisk hide), I already turn off dynamic hz thx to you , changed device fingerprint for pixel 4(want certification)... But when I want to hide magidk manager (a Bank app can see it -already marked in hide-) it says some error , I don't know if it's the Miui security app , this never happened on AOSP, I'm on stock poco X3 , root + props hide config + vanced ... Any tip ?
This is a fairly famous problem with Magisk Manger hiding and SELinux enforcing, but easily solvable. Do the following:
1- Go to Play store and turnoff Play Protect scanning (interferes with magisk manager repackiging itself aka Hiding).
2- Force stop Manager.
3- Open Manager again and choose another name and apply.
4- Profit.
If this still doesn't work, try this:
5- Go back to step 2 and then open terminal.
6- Type SU.
7- then set SELinux to permissive by inputting:
Code:
setenforce 0
8- continue with step 3
9- then set SELinux back to enforcing by inputting in terminal:
Code:
setenforce 1
10- Done ;)
 
Last edited:

Joakin2k

Senior Member
Jul 5, 2016
246
71
Culiacán
Man... Worked Flawlessly... Never had that issue on AOSP roms.
Thanks ! no need to turn on/off selinux enforcement.

But , really, thanks for your attention and detail , I'm impressed Sr
 

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
To make things easier and more risk free, i have attached a config file to automate this process. New steps are even easier! Do the following:
1- Install the aforementioned modules.
2- unzip the attached .zip file to the root of internal storage.
3- Reboot.
New settings should've been applied successfully after reboot and the config file will delete itself.
 

Attachments

  • propsconf_conf.zip
    681 bytes · Views: 296

Skeuomorphic

Senior Member
May 6, 2015
113
23
Xiaomi Mi A1
Xiaomi Redmi Note 7
To make things easier and more risk free, i have attached a config file to automate this process. New steps are even easier! Do the following:
1- Install the aforementioned modules.
2- unzip the attached .zip file to the root of internal storage.
3- Reboot.
New settings should've been applied successfully after reboot and the config file will delete itself.

Does this mean that the manual method enables back the dynamic refresh rate after every reboot? Which this conf will solve by placing the conf file at the root of internal storage before rebooting the phone?
 

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
Does this mean that the manual method enables back the dynamic refresh rate after every reboot? Which this conf will solve by placing the conf file at the root of internal storage before rebooting the phone?
The Manual method as well as this method both persist through reboots. Only difference is the complexity of the initial setup, but that's it.
 

CaPicote

Senior Member
Jan 10, 2019
107
43
Doesn't seem to work there, checked with the power monitor, and it still switch between 120/90/60/30/1 fps depending on the app/menu I'm in
 

Slim K

Senior Member
May 16, 2015
180
2
112
HTC One (M8)
Sony Xperia Z5
Doesn't seem to work there, checked with the power monitor, and it still switch between 120/90/60/30/1 fps depending on the app/menu I'm in
Can you provide me the following?:
1- MIUI vers. (i.e 12.0.3.0 QJGEUXM)
2- Go to terminal a run su and then:
Code:
getprop ro.vendor.smart_dfps.enable
-Output should be false, if it's true, then you didn't set it right.

I think a lot of people mix up framerate and refresh rate. Just an FYI, the thing that should be of interest is the refresh mode in power monitor. Check these screenshots, the circled value should stay at 120Hz consistently. Another screenshot I provided below without this mod shows 60Hz encircled when device not touched(which we don't want). The value on the right side of it (also in screenshots) is the framerate provided from the app (process) and indicates the actual frames displayed on the screen, if the screen isn't changing or moving, then there is nothing to display 120 frames about and will drop to 1 fps, which is completely normal.
 

Attachments

  • IMG_20201025_223157.jpg
    IMG_20201025_223157.jpg
    157.9 KB · Views: 712
  • IMG_20201025_222941.jpg
    IMG_20201025_222941.jpg
    164.2 KB · Views: 720
  • IMG_20201025_230819.jpg
    IMG_20201025_230819.jpg
    198.3 KB · Views: 708
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    A lot of people have complained about stuttering in between App switching and gaming. This guide helps you disable Dynamic refresh rate through MagiskHide Prop Config, which is easier than setting it manually and safer to disable if it doesn't work.

    Disclaimer: Disabling Dfps (Dynamic refresh rate) will degrade battery life with prolonged use. According to my personal testing, battery life (SOT) decreased by 10-18% on average. Only use for short periods of time.

    Requirements:
    - Unlocked and rooted with Magisk v21.0.
    - busybox-ndk.
    - MagiskHide Prop Config installed (used often to pass safetynet CTS but can be used to set custom Props).

    Instructions:
    1- Run SU in your terminal of choosing.
    2- Run props.
    3- choose option 5 "Add/edit custom props".
    4- choose n "New custom prop".
    5- type in:
    Code:
     ro.vendor.dfps.enable
    6- Default value should be true, type in false to disable.
    7- choose 2 "post-fs-data".
    8- choose n, don't reboot yet.
    9- choose n again to set another prop.
    10- type in:
    Code:
     ro.vendor.smart_dfps.enable
    11- Default value should be true, type in false to disable.
    12- choose 2 "post-fs-data".
    13- Reboot.

    Only tested on stock MIUI. Try at your own risk!
    2
    dont know if this is possible but do make a standalone magisk module for this, without props and everything else. just a single module that disables dynamic refresh rate.
    I wanted to show everyone who is interested how to change this behavior under the hood. That is the main reason why I made a guide and not a mod (since everyone was using props module to pass safetynet anyway). However I made this attached module just for you. Do note that I have not tested it since I use a custom ROM at the moment, but it does what's in the guide without props config and should work flawlessly.
    1
    Hey. Thanks for the information. I'd like to try this out but I have two questions: 1 - Is it safe to flash magisk? Some guy from another thread said magisk corrupted his ramdisk and /sdcard when flashing. 2 - Where do I get power monitor to check the refresh rate? Thanks.
    To answer you questions:
    1- The guy in that thread has made the obvious mistake of flashing stock related files through twrp (a very baaad idea), since all current custom recoveries have limited access to system-vendor-product partition (read only). If he had read more carefully, his device wouldn't have been hard bricked. Besides, if you only want Root (Magisk), you don't even need a custom recovery, just an unlocked Bootloader, your current boot.img and a pc with some flashing knowledge.
    2- You can find it under Monitoring in Settings/Additional settings/Developer options/Power monitor. If you can't find the option there, then you probably debloated MIUI, in that case restore the app Power Checker with the package name:
    Code:
    com.xiaomi.powerchecker
    If you need further assistance, hit me up and I will help.
    1
    recent drops to 90hz. is that normal for recent to drop?
    Yes. In trying to make an "all day battery" phone, Poco has decided to cap recents to 90hz. So many cut corners. Anyways, Clearing storage of battery management app should fix that problem. I don't remember the name of the system app exactly, but it has a green battery icon :ROFLMAO:
    i only have youtube vanced
    If you installed vanced in non root mode, you can still install normal youtube from playstore alongside it. You don't have to do it tho.
    1
    Yes. In trying to make an "all day battery" phone, Poco has decided to cap recents to 90hz. So many cut corners. Anyways, Clearing storage of battery management app should fix that problem. I don't remember the name of the system app exactly, but it has a green battery icon :ROFLMAO:

    If you installed vanced in non root mode, you can still install normal youtube from playstore alongside it. You don't have to do it tho.

    recent drop is fixed by clearing data of battery and performance system app.

    tested official youtube. its not dropping hz. its constant 120hz