This trick unlocks OnePlus 7 Pro 90Hz screen refresh rate for all apps
All 3 phones in the OnePlus 7 series share quite a few common components. While the fundamental hardware, like the SoC, storage, RAM or even the primary camera sensor are identical across the models, the dual-edged 90Hz capable display is reserved for the Pro (and Pro 5G) variants only.
Critics are genuinely overwhelmed with the fluidity and smoothness of the 90Hz display panel. The company shows no shyness while marketing the phone and frequently flaunts the unique characteristics of the display.
The OnePlus 7 Pro features a curved edge-to-edge design and 90Hz Fluid AMOLED display, alongside with incredible clarity thanks to its QHD+ resolution.
OxygenOS in OnePlus 7 Pro gives users an option to toggle between 60Hz and 90Hz refresh rate, as the latter is responsible for slightly higher battery consumption. As a matter of fact, not all apps can exploit the higher refresh rate. We discussed about the alleged whitelist regarding 90 Hz in this article.
In an interesting turn of events, XDA Recognized Contributor C3C076 reverse engineered OxygenOS framework and accidentally discovered another hidden option to set the screen refresh rate. The entries are being internally stored like the following:
.field private static final ONEPLUS_SCREEN_REFRESH_RATE:Ljava/lang/String; = "oneplus_screen_refresh_rate" .field private static final OP_60HZ_MODE_VALUE:I = 0x1 .field private static final OP_90HZ_MODE_VALUE:I = 0x0 .field private static final OP_AUTO_MODE_VALUE:I = 0x2
According to C3C076, the 90Hz mode under Settings is actually set to the auto mode (2), where as the true 90Hz mode should be ‘0’. For some reason, OnePlus decided to remove the GUI option to set the actual 90Hz mode.
90Hz mode as can be seen in the settings is in fact mapped to AUTO_MODE (0x2) which most likely is the reason why we can observer some auto-switching which is based on screen content (e.g. video playing, etc.). Using mode 0 should in theory enable full-time 90Hz without auto-switching.
The situation can now perfectly explain the ‘whitelist’ we observed earlier. On the other hand, end user can now easily set the value of the property via adb and enjoy smooth 90Hz rendering everywhere.
adb shell settings put global oneplus_screen_refresh_rate 0
After setting the value as ‘0’, users should experience the following phenomenon on their phones (none of the existing options is selected):
We have tested the tweak on our unit and can confirm that the new value successfully unlocks 90Hz on previously unsupported apps/browsers.
The description of the option (Screen refresh rate) will be stuck at 60Hz after unlocking the true 90Hz option. Nothing to worry, as it’s a visual glitch.
Also, option summary text in Display settings will show 60Hz which is a bug – simply they did not account for a fact that somebody can change the value to something else from outside.
If you want to revert back to the ‘regular’ 90Hz (which is basically a hybrid of 60 & 90Hz ) refresh rate, simply set it using the GUI option or via adb.
Is the 90Hz (or 120Hz) display one of the main deciding factors while choosing your next phone? Comment below.
PiunikaWeb is a unique initiative that mainly focuses on investigative journalism. This means we do a lot of hard work to come up with news stories that are either ‘exclusive,’ ‘breaking,’ or ‘curated’ in nature. Perhaps that’s the reason our work has been picked by the likes of Forbes, Foxnews, Gizmodo, TechCrunch, Engadget, The Verge, Macrumors, and more. Do take a tour of our website to get a feel of our work. And if you like what we do, stay connected with us on Twitter (@PiunikaWeb) and other social media channels to receive timely updates on stories we publish.