Search This thread


Senior Member
Apr 23, 2012
Having an issue on my Note20 Ultra 5G. I did the ABD thing forever ago and everything worked beautifully until Android 12 and OneUI4.0 but after the update I get weird resolution issues. I run using the CQHD+ resolution and 120Hz High (not Adaptive) refresh rates and a couple things are happening out of wack.

1) my AOD shifts to the left side of the screen almost always. The fingerprint sensor indicator stays in the correct place 100% of the time but the AOD shifts over and gets smaller, like the resolution dipped down.

2) when I restart my phone, the screen appears to shift back to FHD+ but is kind of moved to the top left portion of my display while the button interactions work in their natural areas. So if I want to hit enter my pin to unlock my phone after a restart, I have to guess where I'm hitting because the 5 button is in the center but the display shows it's moved up and to the left.

3) some videos will load without color and will be copied multiple times to fit the display, kind of like a colorless kaleidoscope.

An issue I've been having for a while that's been intermittent is sometimes my display will just shift back to adaptive (didn't restart or let my phone die and power back on) and my display will run at 120Hz for about 2-3 seconds after input but then throttles to 60Hz. This was the initial reason I installed and paid for premium because I game on here a ton, eg. Pokémon GO, and hate when the frequency shifts down.

Please, any and all help is greatly appreciated. I love this app and would like to get it functioning right again.

EDIT: in the screenshot for the app and it's settings, these are the only settings changed. If they aren't shown, they're default. I have CQHD+ and FHD+ in my quick settings, as well as 60Hz and 120Hz to allow quick fixes when the app gets funky.
If I understood your concern, you can try this in the meantime to make things the way they were while using the app even if the icons appear small/dislocated:
Go to font size and bump it to Max, and then bump up the display zoom to Max as well. Once the settings are saved, bring them back to the what they were and it should solve that for you (for icons as well as AOD). Hope this works and helps. Let us know!


New member
Feb 20, 2021
Power saving mode 96hz, edge browser will only maintain 48hz, but power saving mode 120hz, edge will 48-120hz ok
Please fix this problem


Senior Member
Oct 8, 2009
Having some issues when Bixby routine changes my resolution, my phone drops to standard refresh rate (60hz) from adaptive 120hz. I only have the routine set to change resolution. It seems to happen 50% of the time for me.

Also, sometimes the refresh rate monitor appears after turning the screen off and then back on. I have it disabled in settings.

Thank you for all of the hard work and continued support.

I'm using the s21 ultra.
Last edited:


Senior Member
Mar 28, 2014
Since the latest update a short while ago, the refresh rate stays on screen/notifications after locking the phone whether or not the setting is enabled.
Also, sometimes the refresh rate monitor appears after turning the screen off and then back on. I have it disabled in settings.
I uploaded a new build with this bug fixed. Please check latest in-app update.

Having some issues when Bixby routine changes my resolution, my phone drops to standard refresh rate (60hz) from adaptive 120hz. I only have the routine set to change resolution. It seems to happen 50% of the time for me.

I'm using the s21 ultra.
Is this happening while on power saving mode only?
  • Like
Reactions: linklooklisten

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    S20 Ultra. I don’t think it will be necessary anymore as I seem to have rectified the issue by clearing caches and what not.

    Thanks for bringing this feature to our devices.
    What happens if my phone gets stolen? do i have to buy a license again? What if i uninstall the app?
    If you uninstall the app the key will activate it self automatically, If you factory reset you will need to activate with the same key again.
    If you phone gets stolen I think that this is the last thing you should be worried about
    New and simpler trick to make Adaptive Mode work on Note 20 Ultra with OneUi4.* while on power saving mode.
    Select Adaptive in GMH while on power saving. Make a very quick video call to "1" or any number (using stock video call, not google duo).
    Can anyone confirm whether or not 120Hz on PSM works on Galaxy Note S20 Ultra 5G - T-Mobile. The video calling they use is Google Duo. There isn't a native video calling app or feature. It's integrated into Duo.
    If the auto sync is off while screen is off, it means that the syncs will sync when the phone is charging or the phone is being used (Screen it on) so it will drain battery in use but save battery idle?
    It will turn it back ON on screen ON only if it was previously turned ON in the phone settings.
  • 104

    About this app:
    • Refresh Rate Control: Easily control the max refresh rate (Hz) of android devices with multiple refresh rates (e.g. note20 ultra, s20/S20+/S20Ultra, z fold 2, s21/s21+/s21Ultra, tab S7/S7+, z fold 3, z flip 3). This app can limit max refresh rate to 96hz (or any available refresh rate) on supported smartphones - you can save power with negligible difference on smoothness. Use either the in-app toggle or quick settings tile - ADB setup or Root NOT needed.

    • Force High: Option to use High(Fixed) motion smoothness mode on Samsung devices with native Adaptive motion smoothness***. Current Samsung smartphones that natively support adaptive refresh rates include Galaxy Note20 Ultra.

    • Refresh Rate Monitor: Show real-time screen refresh rate as statusbar icon and/or as overlay. Overlay size and location is adjustable. Use either the in-app toggle or quick settings tile

    • Quick Resolution Switcher: Easily switch to any supported resolutions using the included quick setting tile***

    • Quick High/Adaptive on Power Saving Mode: Easily switch to high or adaptive motion smoothness mode (from Standard) even on power saving mode on supported Samsung smartphones.***
      Note: Stopped working out-of-the-box on Note 20 Ultra updated to OneUI4.*.
      Extra steps to bypass restriction on OneUI4.*. After selecting Adaptive or High in GMH while on power saving mode, do either:
      - Do a quick video call to "1" or any number using the stock video call (not google duo)
      - Connect and disconnect to a wifi display or miracast receiver (e.g. smart tv, chromecast, windows laptops) using the Smart View function (Credits to @albiGib and @rblckmnjr84 for sharing the discovery)

    • Force to Lowest Hz: Force lowest refresh rate on screen-off/AOD. This overrides Samsung's strange stock behavior which sets the refresh rate to the highest on screen off (update: it is now at 60hz since oneui3.0) - to improve standby power consumption a bit - ADB setup or Root NOT needed.

    • Auto apply power saving mode during screen-off (after ~ 10 secs)***

    • Tasker plugin support: Automate GMH settings with Tasker app. Supported actions/variables: max refresh rate, min refresh rate, keep smooth motion on PSM, motion smoothness mode, quick-doze mod, change dispaly resolution, auto sensors off. More info in FAQs below

      Premium Features:

    • Keep High/Adaptive motion smoothness when power saving mode is enabled whether manually or by the system/adaptive power saving***
      Note: Stopped working out-of-the-box on Note 20 Ultra updated to OneUI4.*.
      Extra steps to bypass restriction on OneUI4.*. After selecting Adaptive or High in GMH while on power saving mode, do either:
      - Do a quick video call to "1" or any number using the stock video call (not google duo)
      - Connect and disconnect to a wifi display or miracast receiver (e.g. smart tv, chromecast, windows laptops) using the Smart View function (Credits to @albiGib and @rblckmnjr84 for sharing the discovery)

    • Adaptive refresh rate mod for devices supporting multiple refresh rates but do not have the stock Adaptive motion smoothness (e.g. S20 series, S20FE, TabS7/S7+) with the ability to set the brightness threshold for its activation***

    • Quick-doze mod: Quickly enter doze mode during screen-off that can not be interrupted by motion ***

    • Set minimum refresh rate for adaptive mode to 60hz or lower (if supported)***

    • Resolution switcher filter: Filter what screen resolutions to include for the resolution switcher QS tile.

    • Auto turn off Autosync: Turn off autosync settings while the screen is off.

    • Auto SENSORS OFF (experimental non-root workaround):
      Device sensors will automatically turn off while screen is off until the device is unlocked. This helps minimize battery-draining motion-triggered wakelocks while device is not being used.

    • Statusbar net speed indicator

    • 7-day Premium Trial is available. Just click "Activate Premium|Trial" button and activate free trial when prompted.

      Note: The premium license is on a per device basis. It will retain after re-install or device reset

    Galaxy Max Hz background service is highly optimized. Background battery consumption of this app is very negligible .

    ***these marked features require a one-time ADB setup (this is not root)

    Info: This app targets older android sdk in order to control refresh rates without ADB setup or root. Just tap OK the dialog that says "This app was built for an older version of Android...." when opened for the first time. If OK button is not visible, just tap the blank space on the lowest portion of the dialog.


    Please read FAQs, changelogs and more information in the next post (specially before asking questions or reporting bugs).👇

    Demo video of v5.4. More features have been added in the later versions


    Italian: @Orlaf
    German:devj3ns, drbeat
    Russian: @a43
    Turkish: osmanakar312
    Greek: Nick
    Spanish: @Sebastiansm
    Czech: Chrono Leggionaire
    If you want to contribute on translations, please send me a message.


    • Why is it that we can't download this app in play store and how do we know it's safe?

      This app targets older android sdk in order to set refresh rates without root requirement. Unfortunately, play store doesn't anymore allow us to publish app targeting such older sdk. If you doubt if it's safe, you can scan it with any virus scanner like virustotal, metadefender, with Samsung's built-in threat scanner powered by McAfee or Google Play Protect scanner.

    • How to activate premium free trial?

      Click the 'Activate Premium | Trial' button and it will prompt automatically to activate trial if still available on your device. Just click ok.

    • Why does this app require Accessibility Service permission?

      The accessibility service is automatically enabled once WRITE_SECURE_SETTINGS is granted to the app. The general reason is for better stability of features which are requiring background service. Accessibility service is specially needed for Adaptive Mod on non-adaptive device and for overriding the default minimum hz for adaptive to lower one(s) (see How the Adaptive refresh rate mod works? section below).

      You can turn off the accessibility service when not using those features. You will be notified what those features are when turning off the accessibility service.

    • I am on adaptive or high refresh rate mode, but why my refresh rate stays at 60hz on some apps like google maps, waze, camera and some other apps and games even if I set a higher max refresh rate?

      Some apps are either (1) blacklisted by the android system to not use the high refresh rates due to compatibility reasons, (2) sets its own preferred refresh rate or (2) controlled by Samsung's game optimizing service (game launcher). GMH app can't force these apps to use higher refresh rates.
      However, there are some of these apps that are only affected on ADAPTIVE mode only but not on HIGH mode.

    • How does Quick-Doze Mod work?

      If enabled, the device will quickly enter into doze mode (except when charging) while screen is OFF. This will make a better standby power consumption. Motion detection will not interrupt this doze mod. While in doze, the device periodically enters a maintenance window (MW), during which apps can complete pending work (syncs, jobs, etc.). The device will continue this cycle, doubling the length MW interval each time. The longer the MW interval, the better the battery saving.

      Doze mode may cause notification delays on some apps. It will not affect SMS, High Priority FCM and apps which battery optimizations are disabled.

      Doze mode will deactivate once the device is unlocked.

      Caution: Ensure to disable Doze Mods from other apps (if you have it) when enabling this feature in GMH to avoid conflict or clash .

    • Why certain refresh rate(s) are missing on my device?

      Availability of certain refresh rates is dependent on hardware support and must also be enabled by the manufacturer in the system. The refresh rates show in the Resolutions and Refresh Rate Profiles section of the app are the ones that are enabled.

      In rare circumstances (usually on newly released devices), these values may not be properly read from the device. If you are very certain that it's missing one or more refresh rates, please report it to us so we can override it by using the values from our backend.

    • How does the Adaptive refresh rate mod work?
      Why does my screen flickers when switching refresh rate in low brightness? What's the workaround?

      For those devices that do NOT have the Samsung's stock Adaptive refresh rate mode, GMH's own Adaptive Mod is applied.

      For those devices which support Samsung's stock adaptive refresh rate, the stock adaptive refresh rate is applied 'AS IS' even when the max/peak refresh rate is changed. GMH Adaptive Mod is only applied when overriding the default minimum refresh for adaptive for a lower value.

      GMH Adaptive mod aims to replicate the stock adaptive mode behavior. It does not only detect touches but also the changes on the contents being displayed on screen similar to Samsung's stock adaptive implementation.

      On low brightness conditions, some users may notice some slight flickers on the display when the refresh rate switches. This is a display calibration issue - dependent on how the manufacturer has finely tuned the gamma curves across the different refresh rates. Our eyes are more sensitive to it on darker environment. The level of brightness varies on how finely the manufacturer has calibrated the display.

      This is an issue that GMH can't solve directly. However, you can use GMH brightness threshold for adaptive mod as a workaround which will automatically pause the Adaptive mod when screen brightness falls below the set threshold.

    • In Adaptive refresh rate mod, I set minimum refresh rate to 48Hz but while watching videos, refresh rate only goes down to 60Hz

      On video apps like youtube, the stock default minimum refresh rate is used (usually 60Hz) but it will automatically go down to 48Hz when playing compatible videos (i.e 24fps or 48fps videos) or when available to 24Hz when playing 24fps video.

    • Adaptive mod does not go down on GAMES.

      On games (declared in manifest as CATEGORY_GAME ), the adaptive mod will pause and refresh rate will be fixed to the max refresh rate that you set in the app. This is to preserve input responsiveness and smoothness while playing. If the game is not compatible to the max Hz that you set, it will use the next lower compatible refresh rate. Note: There are few games that do not have the abovementioned manifest declaration. They need to be manually added to the games whitelist - if you found one, please inform us.

      Important Note:
      • When you are using "Priority Mode" in Game Launcher, you should add GMH to the excluded list in order to keep it's background service from being killed when opening a game. Not adding GMH to this list can cause refresh rates to drop to minimum hz and behave abnormally while gaming.

    • Refresh rate monitor in statusbar is split second delayed than the overlay. Is this normal?

      It's due to the limitation by the android system on the frequency of updating the notification content(~2x per second).

    • Can I add the CQHD+(custom QHD) resolution that supports 96hz/120hz for Note20 Ultra or S20 series device?

      Yes, this option is added for free as requested by some users. If it's not shown in the app, just click the "Reload Profile" in the 3-dot menu while connected to the internet to load profiles from my backend containing such resolution. The backend copies of the resolution and refresh profiles have the following additional resolution:
      • Note 20 Ultra: 3087x1439 @ 48/60/96/120 hz
      • S20/S20+/S20Ultra: 3180x1431 @ 60/96/120 hz

        Note: The CQHD+ resolution (as well as the system pre-defined resolutions) is applied by using the hidden android IWindowManager api (equivalent to "adb shell wm size .." command in adb). How the system or applications handle custom resolutions varies and not guaranteed and beyond control of GMH. Apps that strictly observed pre-defined system resolutions (i.e. using display modes) will not benefit on this.

        Caution!! It's highly discourage to use this tweak on OneUI4.*. CQHD causes display to shrink after reboot or long sleep that causes difficulty on entering the lockscreen.

    • I enabled Power Saving Mode on Screen-off and the Always on Display (AOD) stopped working?

      Disable "Turn-off Always on Display" option in your device's Power Saving Mode settings.
      Note: You can use this setting to confirm that PSM on Screen Off is working. AOD turn off after 6-10 seconds.

    • Refresh Rate is stuck after a long idle while using Adaptive Mod

      In rare cases, GMH background process is being destroyed by the system. To avoid this, grant allow background activities or ignore battery optimization to GMH. If you are using Priority Mode in Game Launcher, adding GMH to the excluded list is required.

      If the issue still persists, GMH might be crashing on your device. If this is the case, please provide us the crashlog (refer to Questions and Bug Reports section below on how).

    • How to check if power saving mode and auto disable sync working on screen off?

      You can execute the following command in adb after ~10 secs. of turning off the screen.
      adb shell dumpsys content
      This will return a lengthy output, just scroll back to the first few lines.
      You can see like this:
      Data connected: true
      Battery saver: true
      Background network restriction: disabled
      Auto sync: u0=false

      Alternatively, you can confirm power saving using any of the following:
      • Set AOD to show always, and enable turn-off AOD on power saving settings. AOD should be gone after ~10secs. of turning off the screen.
      • Code:
        adb shell settings global get low_power
        The output should be "1".

    • How to setup GMH with Tasker?
      Can I assign different refresh rate or refresh rate mode on per-app basis?

      1. Creating the Tasks (the actions to perform) - Tap the (+) button inside Tasker's TASKS tab and give it a name. Inside the Task Edit window, add GMH Action by clicking (+) button > Plugin > Galaxy Max Hz.

        Inside Action Edit window, expand the configuration section to see the tasker settings/variables used by GMH. Take note of them.

        Go back to Task Edit window and set a value to each of the variable that you want to use by clicking (+) button > Variables >Variable Set > enter the variable name and a corresponding valid value.

        After adding all the variable set actions you need, move the GMH action to the last row (i.e. after all the variable set actions). Tip: Tap, hold and drag to re-order.

        Test the task you created by clicking the ▶️ button at the bottom.

        Repeat above to create additional GMH tasks for different set of configurations/variables.

      2. Create a Profile (what triggers the task) - Tap the (+) button found inside Tasker's PROFILES tab to create a profile. You can select different types of profile including application-opened triggers and event triggers.
        This will not be explained in details here - just explore it.

        Once you created a profile, it will prompt you to link it to the task that you created in step 1.

      3. How to assign different refresh rate or refresh rate mode to different apps.
        If you want to override the default behavior for certain apps, just create an Application-Activity Profile(Trigger) for each of the apps that you want in Tasker's Profile tab

        Following step 1 above, create one or more tasks for each set of GMH configurations that you want to apply including a task for your default set of GMH configuration.

        After creating the needed tasks, go to the PROFILES tab > Tap the (+) button > Application > Select the application(s) that you want to trigger the task (GMH configurations) that you created*** > Select Activity button at the bottom > Hit the back button.

        It will then prompt you to link a task - select the task that you want to apply for the selected application(s). After that, long-pressed the linked task > select Add Exit Task > select the task for your default GMH configuration.

        That's it. Repeat the same procedures for a different app or set of apps that you want to apply different GMH configurations.

        ***You can select multiple apps at the same time if you want to apply the same GMH configuration to all of them


    • If I uninstall the app, will it restore the phone to its stock settings.

      Yes, just set the max hz and min hz back to the default values and disable all screen off mods before uninstalling.

    • I have a rooted device and modified the device model number, will it work?

      It can affect premium features on the device and can cause issue as refresh rate profiles are loaded based on the device model number.

    • Appear on top notification for GMH can not be disabled on OneUI4.*

      I think this a bug on OneUI4.0. Also occurs to other apps. Workaround is to disable appear on top notification for ALL apps (i.e. long-click on the notification and switch off "All Notifications" instead of the app")

    • Why is it that when I enable Auto SENSORS OFF, the notification panels gets expanded very quickly every time I unlock the device ? Can you make Auto SENSORS OFF deactivate when the screen turns on instead of device unlock?

      Since the api behind android's SENSORS OFF feature is highly restricted and inaccessible by 3rd party on stock roms, GMH's Auto SENSORS OFF option is implemented using touch simulations on the Sensors Off tile which require the notification panel to be expanded when switching this tile on and off. Thus, requiring to put the SENSORS OFF tile within the first 4 positions.

      Unfortunately, it is not possible to disable SENSORS OFF while device is locked. This android feature is restricted not to be turned-off with locked screen.
      public void setIsEnabled(boolean isEnabled) {
        // Don't allow sensors to be reenabled from the lock screen.    if (mIsEnabled && mKeyguardManager.isKeyguardLocked()) {
      mMetricsFeatureProvider.action(getApplicationContext(), SettingsEnums.QS_SENSOR_PRIVACY, isEnabled);
      mIsEnabled = isEnabled;

    Questions and Bug Reports:

    Feel free to ask questions relevant to this app here but ensure to read the FAQs first before doing so.
    For suspected bugs, you can post it here (or send me a direct message). Ensure to check if the latest version is installed in your device. Include details like stock device model number, android version, stock or custom rom and the issue/bug you are reporting and the steps/scenarios how to reproduce it. Support maybe limited on non-stock roms.

    If possible please include a screen recording* showing the bug/issue or how to reproduce the bug. You can use this screen recording app capable of recording at high refresh rates.

    If GMH crashes on your device, please include the crashlog of your device. Just execute the following adb command When doing this, device must not be rebooted yet after the crash:
    adb logcat -b crash > crashlog.txt
    Ctrl+C after 15seconds.
    Then locate crashlog.txt file in your adb installation folder then send it to me. In most cases the culprit can be identified and addressed using this file. Otherwise, I may send a you specially build apk to get the full stacktrace.

    Note: Please post on the dedicated xda forum thread for your device/model. If no such dedicated thread, please send me a direct message instead.


    The app is provided AS IS with no express warranty. Due to the nature of this app = its usage of hidden, non-sdk and non-public apis to execute most of its features, it is not guaranteed that all of its features are going to work in the future android iterations, should the new or updated iterations block/disable them. Attempts for workaround will still be exerted but will not always be successful.

    Sharing Outside XDA:

    Feel free to share this app anywhere as long as proper credits and reference to this thread are provided. Do not create any alternative download link. This is to ensure that users get the untampered installation file, latest information and latest updates of this app.


    Try to clear data of this app if you encounter issues after update. Please report any bug that persist. Thank you.

    Please check here for the latest changelogs

    Previous changelogs (old app)

    - Fixed landscape orientation layout bug and other layout improvements
    - Added support for Note 20 Ultra Non-5G models (all features)

    - Fixed disabled "High/Fixed Motion Smoothness Mode" switcher on Galaxy Z Fold 2. You should be able to use this function now in Z Fold 2.
    - Fixed force close bug on Galaxy Z Fold 2
    -Fixed missing resolution label for Galaxy S20 series
    - Other code clean up

    - Qs tiles for refresh rate control and resolution switcher now have dynamic icons. Better visibility for partially expanded notification panel.
    - Added high/fixed refresh rate mode/option for Galaxy Note20 Ultra and Z Fold2. If enabled, the device will be set to 'High Motion Smoothness' mode and refresh rates will behave like the Galaxy S20 series.

    - Added support for Galaxy S20, S20+, S20 Ultra and S20FE. Resolution switcher is not applicable to S20 FE.
    - Renamed app to Galaxy Max Hz

    -Added 'Resolution - Motion Smoothness Mode' switcher (button and qs tile). Switch resolution and motion smoothness mode anytime even on medium power saving mode. This specific function requires ADB.

    - Changed overlay display FPS to screen refresh rate (Hz)
    - Refresh rate monitor now switches color to red if 60hz or below and to green if above 60hz
    - Added toggle switch for refresh rate monitor on app's home screen

    - The 3-way toggle button and quick settings (qs) tile are now aware if the current Motion Smoothness mode is set to Adaptive or not. If not, they will show 'Standard' and will open the display settings when clicked
    - The switch for the FPS monitor overlay is moved to a new qs tile. You can now turn the FPS monitor ON/OFF anywhere without opening the app.
    - Changed text color of fps monitor from red to green. Green color has the longest lifespan in amoled, so lesser chance of amoled burn.

    v1.00 Initial release

    If you want to get GMH Premium features and/or support GMH development but paypal is not available in your place, you can use Google Play Store.
    Just download GMH Donation app from Google Play Store.

    Note: The price might be slightly higher due to the relatively higher tax imposed on play store.
    Apologies for being inactive in the past weeks due to some medical/family reasons.
    I will still be inactive in the next 1 or 2 weeks.
    Thank you for understanding.
    GMH_v7.14.16 in-app update now available:
    -fixed bug: unable to turn off accessibility when no feature requiring such is enabled
    -experimental workaround for enabling Adaptive/High refresh rate on PSM on OneUi4.0
    -other bug fixes
    v7.12.20 in-app update is now available. :)
    - Fixed intermittent bugs:
    - Power saving mode on screen-off: PSM not turning off back on screen on.
    - Turn-off autosync on screen off: autosync not turning on back on screen on