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):
- Open the Settings β Display.
- Select Navigation buttons (or full-screen gestures if you use gesture control).
- Slip on the item Location of buttons.
- 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.
β οΈ 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:
- Connect the Redmi Note 9 Pro to your PC and confirm the debugging permission on your smartphone screen.
- Open the command prompt (Windows) or terminal (macOS/Linux) in the folder with ADB.
- Enter the command to check the connection: Adb devices must display the serial number of your device.
- 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
β οΈ 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:
- Install the app from Google Play.
- Provide root access when requested.
- Select a button to reassign (e.g., Volume Up).
- Assign a new action (e.g., Power dialog to call the power menu).
- 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_UPand replace them with:
key 115 VOLUME_UP
key 114 VOLUME_DOWNchmod 644
What happens if you misedit Generic.kl?
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:
- Go to Settings β Display β Full-screen gestures.
- Select the Swipe scheme from both sides (similar to the "Back" and "Recent" buttons).
- 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-team | Lack of rights or the team is incorrectly | Check the USB connection (adb devices) and repeat the command with the superuser (adb shell su) |
| Physical buttons do not respond after editing Generic.kl | Error in file syntax | Restore the original file from the backup or reflash the device |
| No βnavigation buttonsβ in the settings | Customized firmware installed | Go to the official MIUI or use ADB |
| Gestures are not working smoothly. | Conflict with the application shell | Turn 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.