How to swap buttons on Xiaomi Redmi Note 9 Pro: physical and touch

Owners of Xiaomi Redmi Note 9 Pro often face an uncomfortable location of the navigation buttons - especially if you are used to a different scheme (for example, "back" on the right, not on the left). MIUI There are built-in tools for reassigning touch keys, but with physical buttons (on/loud) it's getting more complicated. In this article, we'll look at all the ways you can do it, from standard settings to hidden functions and ADB-team.

Compounding the problem, different versions of MIUI may have different or no button settings, such as the global firmware, where the option to reassign touch keys is available in Settings β†’ Display β†’ Navigation Buttons, and the Chinese version has a different path, and we have taken these nuances into account and developed universal solutions that work on the Redmi Note 9 Pro regardless of the regional firmware.

If you want to not only swap the back and recent buttons, but also completely reconfigure their behavior (for example, turn off vibration or add a gesture for a screenshot), advanced methods using ADB or third-party utilities will come in handy.

⚠️ Important: Reconfiguring physical buttons (on, volume) requires superuser or unlocked bootloader rights. Without this, only touch navigation keys can be reassigned.

1. Standard method: changing touch buttons in MIUI

The easiest method is to use the built-in MIUI settings. It is suitable for reassigning only touch-sensitive navigation buttons (if enabled in your firmware), and you can’t change physical buttons (Power, Volume Up/Down) in this way.

The instructions are relevant for MIUI 12-14 on the Redmi Note 9 Pro (models joyeuse/curtain):

  1. Open the Settings β†’ Display.
  2. Select Navigation buttons (or full-screen gestures if you use gesture control).
  3. Slip on the item Location of buttons.
  4. Choose one of the proposed options: πŸ”„ Standard (Back) β†’ Home. β†’ Recent) πŸ”„ Reverse (Recent) β†’ Home. β†’ Back up) πŸ”„ Only "Home" (with gestures for other activities)

If the Navigation button is not in the Display menu, try an alternative path: Settings β†’ Additional β†’ Special features β†’ System settings β†’ Navigation buttons.

πŸ“Š What navigation buttons do you use?
Standard (Back-Home-Recent)
Reverse (Recent Home Back)
Gesture management
Another.

⚠️ Note: In some regional firmware (e.g., Indian or European), button reassignment may be blocked, in which case resetting to factory settings or switching to a global version will help. MIUI.

2. Reassign physical buttons without root (ADB)

If you need to swap physical buttons (like making Volume Up work like Power, and vice versa), you will need to connect to a PC and ADB command. This method does not require superuser rights, but only works until the device is first rebooted.

What you need:

  • πŸ–₯️ A computer with installed Xiaomi drivers and ADB Tools.
  • πŸ”Œ USB-cable (preferably original).
  • πŸ“± Included debugging by USB on a smartphone (Settings) β†’ The phone. β†’ Version. MIUI β†’ 7 times tap to activate the developer mode, then Settings β†’ Additionally. β†’ For developers β†’ Debugging by USB).

Step-by-step:

  1. Connect the Redmi Note 9 Pro to your PC and confirm the debugging permission on your smartphone screen.
  2. Open the command prompt (Windows) or terminal (macOS/Linux) in the folder with ADB.
  3. Enter the command to check the connection: Adb devices must display the serial number of your device.
  4. Use one of the commands to reassign (examples below).

Examples of commands for the Redmi Note 9 Pro:

  • πŸ”„ Volume Up and Volume Down: Adb shell settings put system volume_key_cursor_control 1 After this command, the volume buttons will work as an up/down arrow.
  • πŸ”„ Disable long-press Power response (to avoid accidentally calling Google Assistant): adb shell settings put global power_button_end_call false

β˜‘οΈ Preparation for ADB-team

Done: 0 / 4

⚠️ Note: Changes made through ADB, They'll reset after the device restarts. The permanent effect will require root or modified firmware.

3. Complete button reassignment with root

If you have a bootloader unlocked and you have Magisk installed (or another root rights manager), you can use apps like Button Mapper or xposed framework to flexibly configure the buttons.

  • πŸ”„ Change Power places and any volume buttons.
  • πŸ”„ Assign double/triple taps (e.g. double tap Volume Down to start the camera).
  • πŸ”„ Turn off vibration when pressed.

Instructions for Button Mapper:

  1. Install the app from Google Play.
  2. Provide root access when requested.
  3. Select a button to reassign (e.g., Volume Up).
  4. Assign a new action (e.g., Power dialog to call the power menu).
  5. Save the settings and restart the device.

For advanced users, the method is available through file editing /system/usr/keylayout/Generic.kl. For example, to swap Volume Up and Volume Down, find the lines:

key 115   VOLUME_DOWN


key 114   VOLUME_UP

and replace them with:

key 115   VOLUME_UP


key 114   VOLUME_DOWN

chmod 644

What happens if you misedit Generic.kl?
If you make a mistake in the syntax of the Generic.kl file, the touch buttons may stop working altogether, in which case only flashing the device or restoring the original file from the backup will help.

4. Alternative methods: gestures and third-party launchers

If reassigning buttons through settings or ADB is not appropriate, consider alternative options:

  • πŸ‘† Gesture management: B MIUI You can completely disable navigation buttons and use swipes (for example, swipe from the bottom up to return to the main screen). β†’ Display. β†’ Full-screen gestures.
  • πŸ“± Third-party launchers: Apps like Nova Launcher or Microsoft Launcher allow you to customize gestures and virtual buttons, replacing standard ones.
  • πŸ”§ Xposed Framework: Xposed Additions gives you more control over buttons, but requires root and Xposed installed.

Example of gesture settings in MIUI:

  1. Go to Settings β†’ Display β†’ Full-screen gestures.
  2. Select the Swipe scheme from both sides (similar to the "Back" and "Recent" buttons).
  3. In the Additional Settings section, turn off the vibration when swiping if it interferes.

⚠️ Note: When using gestures, some applications (such as games) may conflict with system swipes, in which case, temporarily return to the navigation buttons through the notification curtain (notification icon "πŸ“±" β†’ "Buttons").

Frequent problems and their solutions

When reassigning buttons, users of the Redmi Note 9 Pro face typical errors. Let's consider the most common and ways to fix them:

Problem.Reason.Decision
The buttons don't change after ADB-teamLack of rights or the team is incorrectlyCheck the USB connection (adb devices) and repeat the command with the superuser (adb shell su)
Physical buttons do not respond after editing Generic.klError in file syntaxRestore the original file from the backup or reflash the device
No β€œnavigation buttons” in the settingsCustomized firmware installedGo to the official MIUI or use ADB
Gestures are not working smoothly.Conflict with the application shellTurn off gestures for a particular app in its settings

If after reassigning the buttons, the smartphone stopped responding to clicks, try:

  • πŸ”„ Restart the device in Safe Mode (hold on Power) β†’ "Restarting in Safe Mode").
  • πŸ”„ Reset settings through Settings β†’ System system β†’ Resetting settings β†’ Reset all settings (data will not be deleted).
  • πŸ”„ Connect to ADB Replace the standard settings: adb shell settings delete system volume_key_cursor_control

6. Security and cautionary tales

Reassigning buttons is a harmless procedure, but there are risks when using ADB or root.

  • πŸ”’ Data Backup: Before any manipulation of system files (Generic.kl) create a backup through TWRP Mi Cloud.
  • πŸ›‘οΈ Official firmware: Avoid customized builds MIUI from third-party developers – they may contain errors in the configuration of buttons.
  • πŸ”§ Testing commands: Always test ADB-commands on the emulator before use on a real device.

The Redmi Note 9 Pro with MIUI 13+ has a hidden left-handed mode feature that automatically mirrors the location of the touch buttons, activates it via the engineering menu: type ##6484## in the Phone app and select Left Hand Mode.

⚠️ Note: If you are using the Redmi Note 9 Pro NFC (model of joyeuse, some ADB-The teams may not work because of the different kernel configurations, and in this case, try generic utilities like Button Remapper from F-Droid.

πŸ’‘

If after reassigning the buttons, screenshots through Power + Volume Down stopped working, assign a new combination to Settings β†’ Buttons and gestures β†’ Screenshot.

FAQ: Frequent questions

Can I swap the volume and power buttons without root?
No, to reassign physical buttons (Power, Volume) Up/Down) Without root, only temporary use can be made. ADB-The teams that will reset after the reboot need root or customized firmware to have a permanent effect.
Why did the button settings reset after the MIUI update?
MIUI updates often reset user settings, including button configuration. This involves overwriting system files. To avoid a problem, before updating: Backup through ADB: adb backup -f buttons.ab -shared. Use applications like Swift Backup (requires root) to save the configuration.
How to return the standard button location?
To reset button settings on Redmi Note 9 Pro: For Touch buttons: Settings β†’ Display. β†’ Navigation buttons β†’ Reset. ADB-Changes: Execute Adb shell settings delete system volume_key_cursor_control. For root changes: Restore the original Generic.kl file or reset via TWRP.
Does this work on the Redmi Note 9S or Note 9T?
Yes, most of the methods (including ADB and settings MIUI) The same applies to other models of the Redmi Note 9 series (curtain, merlin) as they are built on the same platform (Qualcomm Snapdragon). 720G). The exception is reassigning physical buttons on devices with a different sizing (for example, Redmi Note 9). 4G MediaTek).
Can I assign the volume button to start the application?
Yeah, but it'll take a lot: πŸ“± Root access + Button Mapper appendix. πŸ–₯️ ADB + Adb shell am start team -n com.example.app/.MainActivity (Replace with your application package). πŸ€– Tasker + AutoInput plugin (to create macros). Example of a command to run a camera via Volume Up: adb shell input keyevent 24 # VOLUME_UP adb shell am start -a android.media.action.IMAGE_CAPTURE