Related
Oneplus 7 Pro
Force 90hz Refresh Rate in almost every App (and Games)
*also uncaps FPS (since Vsync is on by default for Android)
Requirements:
1. A Windows PC (Windows 10 64 Bit is preferred)
2. Oneplus Drivers
3. A USB Type-C Cable
4. Your Oneplus 7 Pro
Steps:
1. Plug in your Oneplus device and select File Transfer mode in your phone's notification selection, then open My Computer and you will see the drive for Oneplus Drivers.
2. Install Oneplus Drivers (you may be prompted to reboot afterwards). You may need to plug and unplug the device to finish driver recognition. Unplug your phone once it is finished.
3. In your phone, go to Settings > About Phone, and tap Build Number multiple times in fast succession until the message "you are now a developer" appears.
4. Go to Settings > System > Developer Options, and turn on USB-debugging.
5. Go to Playstore and download jOnePlus Tools
6. Plug your device in your PC.
7. Anywhere on the empty desktop of your PC, press shift + right click, and select "Open Powershell window here"
8. Wait for Powershell to load
9. Type "adb shell" without the quotes
10. A permission prompt will appear in your Oneplus 7 Pro's screen, allow it.
11. Type "adb shell" once again and press Enter, and you should see your device like this "Oneplus7Pro:/ $"
12. Type or copy-paste the text below without the quotes:
"pm grant net.jroot3d.joneplustools android.permission.WRITE_SECURE_SETTINGS", and press Enter.
13. Once you've entered that, it should repeat what you've typed in the next line.
14. Unplug your device, and open jOnePlus Tools app.
15. Tap Screen Refresh Rate and select Force 90Hz
16. Congratulations, you are done! To confirm, you can go to Settings > Display > Screen Refresh Rate and you should see it as 60Hz from the outside, but when you tap it, you will see that nothing from the 2 choices is selected. It means you are using the 3rd Hidden Setting.
Tip: You may need to reselect Force 90 Hz from the jOnePlus Tools if you have selected 90hz or 60hz from the settings.
Note: This will enable 90hz (and up to 90 fps) for apps and games, unless the app itself has an even stronger FPS-controller then it will tone-down the FPS to the standard set by that game. But for most games without an FPS controller or 30-FPS-locked games without an in-game FPS-controller, it will work 100%.
Credits:
C3C076 (XDA Developer, Dev of GravityBox)
JRoot3D.dev (jOnePlus Tools Developer)
Guide Maker: Ares (Freyelis - XDA Senior Member)
RIP Battery Life?
stanley08 said:
RIP Battery Life?
Click to expand...
Click to collapse
No, try it. The brightness and resolution actually kills more battery than the refresh rate, so set the reso to dynamic, and the brightness to less than 50% always.
Freyelis said:
No, try it. The brightness and resolution actually kills more battery than the refresh rate, so set the reso to dynamic, and the brightness to less than 50% always.
Click to expand...
Click to collapse
Maybe I will
stanley08 said:
Maybe I will
Click to expand...
Click to collapse
Enjoy better gaming man. Try it on Assassin's Creed: Identity too, that game has awesome graphics but was locked at 30 FPS... Not anymore
Freyelis said:
No, try it. The brightness and resolution actually kills more battery than the refresh rate, so set the reso to dynamic, and the brightness to less than 50% always.
Click to expand...
Click to collapse
Anyway to set auto brightness but less than 50% always ??
Or you could simply use Smurf kernel which already has this in the config and stays set through reboots. Or just use the original method from C3C076 which sets it permanently no need for this extra stuff or to have joneplus tools constantly in background for no reason...
9 hrs SOT? @op do you have qhd or fhd?
Stock kernel? Any mods?
if i restart my phone will the settings i made gone?
se7ensde said:
Or you could simply use Smurf kernel which already has this in the config and stays set through reboots. Or just use the original method from C3C076 which sets it permanently no need for this extra stuff or to have joneplus tools constantly in background for no reason...
Click to expand...
Click to collapse
Adb method from C3C076 resets after every reboot, that's why I made this tutorial for those unrooted people who wants to make the setting stick.
bubu23 said:
if i restart my phone will the settings i made gone?
Click to expand...
Click to collapse
No
Xalph92 said:
Anyway to set auto brightness but less than 50% always ??
Click to expand...
Click to collapse
Either set it manually, or use YAAB app as a replacement for auto brightness, which you can set the maximum ang minimum brightness.
virtyx said:
9 hrs SOT? @op do you have qhd or fhd?
Stock kernel? Any mods?
Click to expand...
Click to collapse
Dynamic, stock kernel.
No mods, I just control every background app using built-in background restriction, deepclear, and deep battery optimization.
Just for information, my kernel config has a switch to apply 90Hz, auto or 60 HZ.
Gesendet von meinem xXx_NoLimits_7.1 on GM1913 mit Tapatalk
Freyelis said:
Adb method from C3C076 resets after every reboot, that's why I made this tutorial for those unrooted people who wants to make the setting stick.
Click to expand...
Click to collapse
Did you actually test it? "ADB shell settings global put" command changes user settings that are stored in the filesystem and are thus persisted across reboots until explicitly changed by the user.
Freyelis said:
Dynamic, stock kernel.
No mods, I just control every background app using built-in background restriction, deepclear, and deep battery optimization.
Click to expand...
Click to collapse
Have you restricted system apps too? Did you do this for each app one by one?
Do you have a list of what you've restricted
thanks!
thanks!!!so after doing this im rooted already?because jtools need root right?
Freyelis said:
Adb method from C3C076 resets after every reboot, that's why I made this tutorial for those unrooted people who wants to make the setting stick.
Click to expand...
Click to collapse
Stays through reboots for me... And like I said there are easier simpler and faster ways to achieve this without need of all this extra stuff. Smurf kernel already implemented this in his config so it stays like that too. And C3C076 had made qs tiles for this. I've been using his method for over a week now through several reboots no issues.
C3C076 said:
Did you actually test it? "ADB shell settings global put" command changes user settings that are stored in the filesystem and are thus persisted across reboots until explicitly changed by the user.
Click to expand...
Click to collapse
Sorry, thanks for the clarification sir, great work as always, will revise this one
virtyx said:
Have you restricted system apps too? Did you do this for each app one by one?
Do you have a list of what you've restricted
Click to expand...
Click to collapse
I did not restrict system apps, only the apps that I installed. Apps that I need notifications from such as Telegram, is not included in the restriction. All other apps are, like games, editors, etc..
To save battery, and perhaps have a nice experience could we somehow set screen refresh rate to 90HZ? Does anybody have any info about how to do this..and if it is even possible?
With ADB Fastboot Tool use commands:
adb devices
adb shell
settings put system peak_refresh_rate 90
settings put system min_refresh_rate 90
How can we revert if we don't like?
Simply click at the display settings or also some Adb commands?
Edit: switching in settings to 120 and back to 60 reverts it
Adb shell
settings put system peak_refresh_rate 90
settings put system min_refresh_rate 60
Wouldn't this be better? So some apps only run in 60hz while the others run at 90 instead of 120?
Worked fine
yes it worked. I believe this has to be done every reboot. But let's see if we can get some more juice out of the battery.
qvert said:
Adb shell
settings put system peak_refresh_rate 90
settings put system min_refresh_rate 60
Wouldn't this be better? So some apps only run in 60hz while the others run at 90 instead of 120?
Click to expand...
Click to collapse
Yes this is the right way. For the apps I am not sure but I am sure that lot of them are not yet optimize for more than 60Hz. Like watching YT is still 60Hz , lot of games don't pass 60Hz and I can imagine all the smaller companies apps ...
But with the settings I made I don't need to go below 120Hz. Mine is locked at 120Hz with this commands. And my battery life is more than good. I cannot drain it in one day with heavy usage.
superior888 said:
To save battery, and perhaps have a nice experience could we somehow set screen refresh rate to 90HZ? Does anybody have any info about how to do this..and if it is even possible?
Click to expand...
Click to collapse
Use SetEdit app from PlayStore...
On the 'system table' inside the app, scroll find 'user_refresh_rate' and change the value to 90, and save...
Lock the app on the recent tab, and you good to go... I've tried it... Works flawlessly...
qvert said:
Adb shell
settings put system peak_refresh_rate 90
settings put system min_refresh_rate 60
Wouldn't this be better? So some apps only run in 60hz while the others run at 90 instead of 120?
Click to expand...
Click to collapse
Thx, this works!
qvert said:
Adb shell
settings put system peak_refresh_rate 90
settings put system min_refresh_rate 60
Wouldn't this be better? So some apps only run in 60hz while the others run at 90 instead of 120?
Click to expand...
Click to collapse
This works till I open youtube or GPhone. After it is set to 120 hz again
This works in Normal mode. The moment I change to "battery saver" screen goes back to 60Hz. Any solutions?
ZionMainframe said:
This works in Normal mode. The moment I change to "battery saver" screen goes back to 60Hz. Any solutions?
Click to expand...
Click to collapse
Why put Battery Saver if you don't want save battery ?
Pho3nX said:
Why put Battery Saver if you don't want save battery ?
Click to expand...
Click to collapse
I want to use other features of battery saver (like aggressive killing of background apps) whilst using a 120Hz screen.
ZionMainframe said:
I want to use other features of battery saver (like aggressive killing of background apps) whilst using a 120Hz screen.
Click to expand...
Click to collapse
Ok so you can use SmartHertz for choose Refresh Rate by apps, can stay 120 hz even with Battery Saver mode.
SmartHertz - XDA
SmartHertz - Google Play
Pho3nX said:
Ok so you can use SmartHertz for choose Refresh Rate by apps, can stay 120 hz even with Battery Saver mode.
SmartHertz - XDA
SmartHertz - Google Play
Click to expand...
Click to collapse
Tried this App. Didn't work. Same issue. The moment I turn batter saver on, refresh rate goes to 60
Asnamus said:
With ADB Fastboot Tool use commands:
adb devices
adb shell
settings put system peak_refresh_rate 90
settings put system min_refresh_rate 90
Click to expand...
Click to collapse
can this be converted to a build.prop value ?
Seems like the 90hz setting reverts back to 120 once I switch to power saving or 60hz. Anyway to make it permanent?
Tr
ZionMainframe said:
Tried this App. Didn't work. Same issue. The moment I turn batter saver on, refresh rate goes to 60
Click to expand...
Click to collapse
Try galaxy max hertz app
galaxy max hertz app only work Samsung?
kozmikdeli said:
galaxy max hertz app only work Samsung?
Click to expand...
Click to collapse
No, it works on mi 11 series.
I have downloaded an app called touch sampling rate checker and my Moto Edge 20 only shows a rate of 90-117hz regardless of screen refresh rate setting, however when using the same app on my mi11 it shows a constant 250hz and the mi 11 seems smoother in Twitter and Facebook etc am I missing something here?
Touch sampling rate and refresh rate are two different things. If you want a refresh rate checker, you can find it in developer options.
PhotonIce said:
Touch sampling rate and refresh rate are two different things. If you want a refresh rate checker, you can find it in developer options.
Click to expand...
Click to collapse
Yeah I get that but I thought this phone has a 576hz touch sample rate? Unless the app is inaccurate ?
Not sure about the app, maybe try a different one.
nealyblue said:
Yeah I get that but I thought this phone has a 576hz touch sample rate? Unless the app is inaccurate ?
Click to expand...
Click to collapse
You have to enable game mode for individual apps for max touch sampling rate to be enabled.
dannejanne said:
You have to enable game mode for individual apps for max touch sampling rate to be enabled.
Click to expand...
Click to collapse
Unfortunately I already did that and the maximum I see is 250hz. Where have the 576hz they said gone?
fulltronservice said:
Unfortunately I already did that and the maximum I see is 250hz. Where have the 576hz they said gone?
Click to expand...
Click to collapse
Yeah the highest I've seen is 400hz with game mode
nealyblue said:
Yeah the highest I've seen is 400hz with game mode
Click to expand...
Click to collapse
So that means that the value is dynamic up to 576hz. nothing to worry about then
Android apps dont usually report the correct sampling rate. Connect the phone through USB to a PC and run through ADB run the commands: "Adb shell getevent -r -t -l" and then start swiping on the display. It should report the correct sampling rate.
Username: Required said:
Android apps dont usually report the correct sampling rate. Connect the phone through USB to a PC and run through ADB run the commands: "Adb shell getevent -r -t -l" and then start swiping on the display. It should report the correct sampling rate.
Click to expand...
Click to collapse
That ADB thing really helped. Now I can see the real use of touch sensitivity. From the huge list that came out I could see a maximum of 473hz. So the capability that Motorola offers is installed.
Thanks
fulltronservice said:
That ADB thing really helped. Now I can see the real use of touch sensitivity. From the huge list that came out I could see a maximum of 473hz. So the capability that Motorola offers is installed.
Thanks
Click to expand...
Click to collapse
It varies on how fast you can drag your finger across the screen. I'm sure that if you drag it fast enough you'll hit 576Hz.
Username: Required said:
It varies on how fast you can drag your finger across the screen. I'm sure that if you drag it fast enough you'll hit 576Hz.
Click to expand...
Click to collapse
Yes, I was able to notice that. When I made a simple contact, the response barely reached 100hz, but if I made aggressive contacts, the response was quite high.
fulltronservice said:
Unfortunately I already did that and the maximum I see is 250hz. Where have the 576hz they said gone?
Click to expand...
Click to collapse
I just found out by experimenting Game Turbo:
1. Add your Game App/ Touch Tester App to game mode/turbo
2. Enable Auto Rotation mode (Portrait / Landscape mode)
3. Rotate ur Phone to Landscape even if the app doesnt support it
4. Touch the Screen while in Landscape and see the result Increases to Max Touch Rate
Follow what i said. I want to see the result.
Ty
cjlaysico said:
I just found out by experimenting Game Turbo:
1. Add your Game App/ Touch Tester App to game mode/turbo
2. Enable Auto Rotation mode (Portrait / Landscape mode)
3. Rotate ur Phone to Landscape even if the app doesnt support it
4. Touch the Screen while in Landscape and see the result Increases to Max Touch Rate
Follow what i said. I want to see the result.
Ty
Click to expand...
Click to collapse
Thanks for the tip man I was freaking out with my Xiaomi 11T Pro who supposedly have 480hz sampling rate screen and was just getting 250hz tops within checker apps, until I run them through Gaming Mode as you suggested with Pro mode enabled and YES the sampling rate wen above 500hz tops.
So the range is dynamic? Supposedly to save battery I guess?
Regardless thanks!
Tested on OnePlus 7 Pro with Open Beta 1 OOS 12 - GM1911.11.H.20
Force Highest Refresh Rate in Android 12 with commands
First Make sure you select high refresh rate in settings (that is auto mode by OnePlus described as "High")
Then use these commands
Without ROOT
Connect phone to pc with usb debugging enabled
In Command Window type this command:
adb shell settings put system peak_refresh_rate 59.0
adb shell settings put system min_refresh_rate 59.9
=======
With Root
In app (Like Termux), type this command:
settings put system peak_refresh_rate 59.0
settings put system min_refresh_rate 59.9
Or Use SetEdit app from PlayStore and in system table change the value of peak_refresh_rate to 59.0 and min_refresh_rate 59.9
NOTE 1:
min_refresh_rate = 59.9
peak_refresh_rate = 59.0
NOTE 2:
If you have selected 60 (lowest refresh rate) in settings and then apply above commands
Then that will also work but until you device screen gets off. Once screen gets off when you turn it on, it will be back to 60 and not forced to highest.
So make sure set it high first in settings app in OnePlus device.
With Regards
5s without touching the screen and it's back to 60hz. Any solution?
Diatomix98 said:
5s without touching the screen and it's back to 60hz. Any solution?
Click to expand...
Click to collapse
5s?
[Re-posting this here after I confirmed it work with the Pixel 7 as well]
To be clear, this is not the same as the developer option.
Enter the following ADB commands (you can also modify these values using the app SetEdit in the Play Store, no root required):
adb shell settings put system peak_refresh_rate 24.0
adb shell settings put system min_refresh_rate 24.0
The reason this works is because by assigning it a random and unsupported value, we are [kind of] breaking the refresh rate. As a result of which, the OS won’t be able to adjust this rate, and hence stick with the maximum available rate.
You can also enable the "Force Refresh Rate" in Developer Options. I tried it, but don't really care to keep DO enabled. Also you can enable "Show Refresh Rate" in DO. I did that also, and realized that with keeping it at 60(normal), and keeping "Smooth Display" on, the phone kicks it into 90 the moment you touch the screen. So forcing 90 100% of the time is a waste of battery in my opinion. Only when the phone is not touched for three seconds does it drop back to 60. Otherwise any use of the phone it stays at 90 normally.
bobbyphoenix said:
You can also enable the "Force Refresh Rate" in Developer Options. I tried it, but don't really care to keep DO enabled. Also you can enable "Show Refresh Rate" in DO. I did that also, and realized that with keeping it at 60(normal), and keeping "Smooth Display" on, the phone kicks it into 90 the moment you touch the screen. So forcing 90 100% of the time is a waste of battery in my opinion. Only when the phone is not touched for three seconds does it drop back to 60. Otherwise any use of the phone it stays at 90 normally.
Click to expand...
Click to collapse
Started my day today at 100% 7AM and am at 52% 11PM so I am happy. I can't stand Snapchat being 60.
Update on my observation. It may be a placebo effect, but knowing that it changes makes me see a slight stutter. Forcing 90 at all times "seems" much smoother, so I'm leaving it on also. Cheers!
this trick is irrelevant, you can do it in developer tool....
Vio281 said:
this trick is irrelevant, you can do it in developer tool....
Click to expand...
Click to collapse
The developer option does not force in many cases. In Snapchat when you swipe to the left and the camera is still initialized it stays at 60hz. Once the camera is not initialized it goes to 90hz. I believe it is the same in Instagram.
Jonnyswboy said:
The developer option does not force in many cases. In Snapchat when you swipe to the left and the camera is still initialized it stays at 60hz. Once the camera is not initialized it goes to 90hz. I believe it is the same in Instagram.
Click to expand...
Click to collapse
Jonnyswboy said:
The developer option does not force in many cases. In Snapchat when you swipe to the left and the camera is still initialized it stays at 60hz. Once the camera is not initialized it goes to 90hz. I believe it is the same in Instagram.
Click to expand...
Click to collapse
Has a fix been found for this cause I found this doesn't seem to be an issue at all on iPhone but incredibly frustrating on Android especially Snapchat.
lukeah02 said:
Has a fix been found for this cause I found this doesn't seem to be an issue at all on iPhone but incredibly frustrating on Android especially Snapchat.
Click to expand...
Click to collapse
My fix is in the original post. Has been working great for me.
Been using this for a while, but let's saym hypothetically if I wanted to restore it to default settings, which values do I need to put on the adb commands?
If I do those ADB commands and decide I want to not have them anymore, how would I revert?
To get your default values before doing the change, use:
Code:
adb shell settings get system peak_refresh_rate
and
Code:
adb shell settings get system min_refresh_rate
For me on stock firmware unrooted, peak_refresh_rate = null, and min_refresh_rate = 0.
Thanks for your fix! I was wondering why some apps were low hz.
heisenberg17 said:
Been using this for a while, but let's saym hypothetically if I wanted to restore it to default settings, which values do I need to put on the adb commands?
Click to expand...
Click to collapse
Get default values before doing the change:
adb shell settings get system peak_refresh_rate
adb shell settings get system min_refresh_rate
Default values (stock unrooted):
peak_refresh_rate = null
min_refresh_rate = 0
Thanks for your fix! I was wondering why some apps were low hz.
I've just got a Pixel 7 and thought I'd try this.
Observations, stock not rooted etc
Peak refresh rate = 90
min refresh rate = null
Applied the settings in post 1
and both come back as 24 when 'getting' peak/min rates from adb.
However, turning on show refresh rate in developer options show 90 when using the screen, but drops back to 60 if you leave it for a few seconds.
it only stays at 90 if you turn on Force peak refresh rate in Developer options.
This is only so far when messing about on the home screen, not tested in any apps etc, but it looks like these settings can't be fixed by setting a random number as post 1 implies
As a quick follow up, setting both peak and min to 90 does fix them, but seems a bit pointless as you can turn it on/off within developer settings.
This is not a bash at the OP, but maybe recent update have taken this 'feature' out
Does this survive a reboot?
xduox said:
Get default values before doing the change:
adb shell settings get system peak_refresh_rate
adb shell settings get system min_refresh_rate
Default values (stock unrooted):
peak_refresh_rate = null
min_refresh_rate = 0
Thanks for your fix! I was wondering why some apps were low hz.
Click to expand...
Click to collapse
Though the above might be a possible solution, here is the proper way to revert using ADB:
adb shell settings reset system peak_refresh_rate
To dig further into the possible System settings (amazing topic ^^)
adb shell settings list system
MrPeaski said:
seems a bit pointless as you can turn it on/off within developer settings.
This is not a bash at the OP, but maybe recent update have taken this 'feature' out
Click to expand...
Click to collapse
You can't force peak refresh rate in developer settings. It will still drop at times, like in Snapchat when the camera is accessed, on Google Maps, etc. It still automatically drops to 60hz despite the developer option being enabled.
And after updating to the Android 14 beta this workaround does not work anymore, and I am very frustrated that I am unable to truly force 90hz anymore.