Game controllers on Android open up new opportunities for gamers, but the standard button layout is not always convenient. Someone is used to the scheme Xbox, someone is more comfortable with the distribution from PlayStation, and some want to adapt the controls for a specific game - for example, swap A and B in emulators or assign macros for shooters. Fortunately, Android allows you to flexibly customize gamepads, and this does not always require root access.

In this article we will look at all the current methods of reassigning buttons: from built-in system functions to third-party applications like Octopus or Mantis Gamepad Pro. We will separately dwell on the nuances for popular models (DualSense, Xbox Series X Controller, 8BitDo) and explain why some games ignore custom settings. If you encounter a problem where the controller is detected, but the buttons work crookedly, you will also find a solution here.

1. Built-in Android settings: what can be changed without applications

Starting from Android 12, the system offers basic tools for controlling gamepads. They are limited, but can help in simple cases - for example, when you need to invert axes or swap LMB and RMB in shooters. To get to these settings:

  1. Connect the gamepad to the smartphone via Bluetooth or USB-OTG.

  2. Go to Settings โ†’ Connected devices โ†’ Game controller (on some firmware the path may differ: Settings โ†’ System โ†’ Game devices).

  3. Select your controller from the list.

Options are available here:

  • ๐ŸŽฎ Axes calibration โ€”useful if the joysticks โ€œdriftโ€ or react unevenly.
  • ๐Ÿ”„ Axes inversion โ€”changes the direction of camera movement (relevant for GTA, Call of Duty Mobile).
  • ๐Ÿ”€ Button swap โ€”allows you to change in places A/B and X/Y (but not all combinations).

Important: these settings apply global โ€”they will work in all games that support gamepads. However, many projects (especially with their own. engines like PUBG Mobile or Fortniteignore system settings and require separate configuration.

๐Ÿ’ก

If your controller is not displayed in the "Game Devices" menu, try reconnecting it or updating the Android firmware On some devices Xiaomi And Samsung this section may be hidden - use the search in settings.

2. Applications for reassigning buttons: TOP 5 solutions

Standard Android tools are often not enough for deep customization. In this case, third-party utilities come to the rescue. We tested dozens of applications and selected those that work reliably with most gamepads and do not require root access (although the functionality expands with them).

Application Support for gamepads Features Cons
Octopus DualSense, Xbox, 8BitDo, Flydigi Touch control emulation, macros, cloud profiles Paid subscription for some functions
Mantis Gamepad Pro Any HID devices Flexible reassignment, support for multiple profiles Complicated interface for beginners
Rearrange Gamepad XInput/DInput Simple interface, free functionality Does not work with some Bluetooth gamepads
Gamepad Tester Any Button testing, basic customization Limited settings
Tincore Keymapper Any + keyboard/mouse Macro support, gesture emulation Requires root for full functionality

The leader in functionality remains Octopus โ€”it not only allows you to reassign buttons, but also emulates screen touches, which is critical for mobile games like Genshin Impact or Honkai: Star Rail. However, for full-fledged work you will have to subscribe (from ~300 rubles per month). The free version limits the number of saved profiles.

๐Ÿ“Š What application do you use to configure the gamepad?
Octopus
Mantis Gamepad Pro
Rearrange Gamepad
Other/I donโ€™t use

3. Step-by-step guide: how to reassign buttons in Octopus

Let's look at the process using an example Octopus, since this is the most universal solution. The instructions are suitable for most gamepads, including DualSense (PS5), Xbox Series X Controller i 8BitDo Pro 2.

  1. Download and install Octopus from Google Play (check that you have the latest version).

  2. Connect the gamepad to your smartphone (via Bluetooth or USB-OTG).

  3. Launch the application and select Create a new profile.

  4. In the Input device section, select your controller.

  5. Click Reassign buttons and follow the prompts on the screen:

    • ๐ŸŽฏ Click on the button you want to change (for example, โ–ณ).
    • ๐Ÿ”„ Select a new action from the list (another button, macro or touch emulation).
    • ๐Ÿ’พ Save the profile.
  • Activate the profile before starting games.

  • โ˜‘๏ธ Preparing for setup in Octopus

    Done: 0 / 4

    Important nuance: some games (for example Call of Duty Mobile) block the operation of third-party applications for control emulation. In this case, only root or using alternative methods will help. (we'll talk about them later).

    What to do if Octopus does not see the gamepad?

    1. Reconnect the controller in the mode X-Input (if supported).

    2. Check if the antivirus or "Optimization protection" is blocking access in the settings. Android.

    3. Try a different cable/adapter USB-OTG (especially important for Xbox Controller).

    4. Update the gamepad firmware (for 8BitDo and Gamesir there are official utilities).

    4. Reassigning buttons via ADB: for advanced users

    If you are not afraid of the command line, you can use ADB (Android Debug Bridge) to change the gamepad configuration at the system level. This method works without root, but requires connecting to a PC and enabling USB debugging.

    The advantage of this method is that the settings are applied globally and do not depend on applications. The disadvantage is the difficulty for beginners and the risk of resetting the settings after updating Android.

    Action algorithm:

    1. Enable USB debugging in the developer settings (Settings โ†’ About phone โ†’ Build number - tap 7 times, then return to System โ†’ For developers).

    2. Connect your smartphone to the PC and check the connection with the command:

      adb devices
    3. Download utility Button Mapper (not to be confused with the application of the same name!) or use manual commands. For example, to swap positions A and B on the gamepad with vendor_id=054c (Sony) and product_id=0ce6 (DualSense), do:

      adb shell settings put secure gamepad_button_a 97
      

      adb shell settings put secure gamepad_button_b 96

      Where 97 and 96 are button codes in the system (check for your model!).

    4. ๐Ÿ’ก

      ADB commands for reassigning buttons are unique for each gamepad. Incorrect values can lead to broken buttons - always check the codes via adb shell getevent!

      To simplify the process, you can use scripts from the community, for example Gamepad ADB Remapper on GitHub. But remember: after resetting the settings or updating Android, all changes are lost.

      Different controllers behave differently on Android. Let's look at the nuances for the most common models.

      Sony DualSense (PS5)

      • ๐Ÿ”‹ Supports connection via Bluetooth i USB-C, but in the first case it may not be detected as a gamepad (it can be solved) reconnection).
      • ๐ŸŽฏ In games that support PlayStation layouts buttons work correctly, but in emulators manual reassignment is often required.
      • ๐Ÿ”„ Adaptive triggers (R2/L2) do not work on Android - only the basic one functionality.

      Xbox Series X|S Controller

      • ๐Ÿ”Œ To connect via Bluetooth requires updated controller firmware (checked via Xbox Accessories App on PC).
      • ๐ŸŽฎ In most games is automatically detected as a device, but the button may not work. XInput-device, but button Share may not work.
      • ๐Ÿ”„ For reassignment, any application from our TOP 5 is suitable. A/B And X/Y Any application from our TOP 5 will do.

      8BitDo Pro 2 / Ultimate

      • ๐Ÿ”„ Supports switching between modes X-Input, D-Input and Macros button on the rear panel.
      • ๐Ÿ“ฑ Has an official application 8BitDo Ultimate Software for customization (including reassigning buttons and setting triggers).
      • ๐Ÿ”‹ In mode X-Input may conflict with some games on Unreal Engine.
    ๐Ÿ’ก

    For DualSense i Xbox Controller before setting up, check that whether Android's power saving mode is blocking their operation. Add the application for controlling the gamepad to the battery optimization exceptions!

    6. Why do games ignore reassigned buttons?

    A common problem: you configured the gamepad in Octopus or via ADB, but the buttons still work in the game. The reasons may be different:

    1. The game uses its own input system. Projects on Unity or Unreal Engine often ignore Android system settings and require internal configuration (for example, PUBG Mobile, Free Fire).

    2. Conflict with anti-cheat. Games with protection (for example, Call of Duty Mobile, Genshin Impact) block third-party applications for control emulation. The solution is to use root or special profiles in Octopus (if supported).

    3. The gamepad is detected as an "unknown device". Check its compatibility via Game Controller Tester (available on Google Play).

    If the game does not support gamepads at all, but you want to play with a controller, there are two options:

    1. Use touch emulation (in Octopus or Mantis).

    2. Connect the gamepad to the PC and stream the game to your phone via Steam Link or Moonlight.

    How to bypass anti-cheat blocking in COD Mobile?

    1. Use the profile Call of Duty Mobile in Octopus (it is optimized for anti-cheat).

    2. Disable all other applications for controlling the gamepad.

    3. Do not use macros - they are guaranteed to lead to a ban.

    4. If the game blocks the connection, try playing via BlueStacks on a PC with a connected gamepad.

    7. Reassigning buttons without root: limitations and workarounds

    Most of the methods in this article are not required root access, but they have limitations:

    • โš ๏ธ Applications like Octopus or Mantis cannot intercept clicks in games with anti-cheat.
    • โš ๏ธ ADB commands disappear after updating the system.
    • โš ๏ธ Some gamepads (for example, Steam Deck Controller) require manual firmware for full compatibility.

    If you need maximum flexibility without restrictions, consider getting root access. With them, the following becomes available:

    • ๐Ÿ”ง Complete reassignment of buttons at the kernel level (via Tincore Keymapper or Button Mapper).
    • ๐ŸŽฏ Keyboard/mouse emulation for any games.
    • ๐Ÿ”„ Saving settings after updates.
    ๐Ÿ’ก

    root access give full control over the gamepad, but void the warranty and can cause problems with banks in online games. Weigh the risks before flashing!

    An alternative to root is to use Magisk modules (for example, Gamepad Enabler), which mask changes from anti-cheats. However, this requires technical skills and does not guarantee 100% performance.

    8. Common errors and how to fix them

    When setting up a gamepad on Android, users encounter typical problems. Here are the most common ones and how to solve them:

    Problem Possible cause Solution
    The gamepad connects, but the buttons do not work Incompatible mode (for example, DirectInput instead of XInput) Switch the mode on the gamepad (with a button Mode or through the manufacturer's software)
    The buttons work crookedly (pressed by themselves) Drift joysticks or profile conflict Calibrate the axes in the Android settings or reset the profile in the application
    The application does not see the gamepad Blocking access by the system Give permission to use Input devices in the application settings
    Settings disappear after reboot ADB commands are not applied at the system level Use Tasker to automatically execute commands at startup

    If your problem is not on the list, check:

    • ๐Ÿ”Œ Compatibility of the gamepad with your version of Android (on the manufacturer's official website).
    • ๐Ÿ“ฑ Firmware updates for your smartphone and controller.
    • ๐ŸŽฎ Settings for a specific game (sometimes reassigning buttons is available in the control menu).
    ๐Ÿ’ก

    To diagnose problems with the gamepad, use the application Game Controller Tester. It shows which buttons and axes are recognized by the system and helps identify hardware faults.

    FAQ: Answers to frequently asked questions

    Is it possible to reassign buttons on a gamepad without applications?

    Yes, but the functionality will be limited. In the Android settings (section Game devices), you can invert the axes or swap A/B and X/Y. For deep customization (macros, touch emulation), third-party utilities will be required.

    Why don't reassigned buttons work in PUBG Mobile?

    PUBG Mobile uses its own input system and blocks third-party applications for control. Solutions:

    1. Use official support for gamepads in the game settings (section Controller).
    2. Connect the gamepad to the PC and play through the emulator (BlueStacks, LDPlayer).
    3. Set up touch emulation in Octopus (but this may lead to a ban!).
    How to reset the gamepad settings to factory settings?

    The method depends on the setting method:

    • If you used ADB - run the command adb shell settings delete secure gamepad_button_*.
    • If you configured it in the application (for example, Octopus), delete the profile or reinstall the app.
    • To reset the settings of the gamepad itself (for example, 8BitDo) use the button combination according to the manufacturer's instructions.
    Can I use one profile for several games?

    Yes, but with reservations:

    • In Octopus i Mantis you can create a universal profile and apply it to all games.
    • However, some projects (especially with anti-cheat) will ignore the settings.
    • For emulators (RetroArch, PPSSPP) it is better to configure the controls separately.
    How to reassign buttons on the gamepad for emulators (RetroArch, Dolphin). data-i="309">In

    Emulators usually have their own control settings:

    1. IN RetroArch go to Settings โ†’ Input โ†’ Ports โ†’ Port 1 Control.
    2. IN Dolphin (GameCube/Wii emulator) gamepad settings are in Controllers โ†’ Setting up GameCube Controller.
    3. For PPSSPP (PSP) select Settings โ†’ Controls โ†’ Control settings.

    If the gamepad is not detected, check whether the emulator supports your model (for example, Dolphin works better with XInputdevices).