package icon

Key Mapper

Remaps the buttons on your device and other devices
New in version 2.1.0
Added

- Support for Android 11.
- Backup/Restore keymaps.
- Option for keycode actions to simulate holding the key down.
- Button to show system packages as well in the app list.
- Action to create Key Event with optional modifiers.
- Action to select word at cursor.
- Action to toggle the screen on and off.
- Action to tap a coordinate on the screen. The user and the app can NOT touch the screen at the same time. This is a
limitation in Android.
- Action to double press recents to go to last a
What can be remapped?
ONLY HARDWARE buttons can be remapped.

There is NO GUARANTEE any of these buttons will work and this app isn't designed to control games. Your device's OEM/vendor can prevent them from being remapped.

* Volume buttons.
* Navigation buttons.
* Bluetooth/wired keyboards.
* Buttons on other connected devices should also work.
* Nintendo Switch JoyCons.

You can combine multiple keys from a specific device or any device to form a "trigger". Each trigger can have multiple actions. The keys can be set to be pressed at the same time or one after another in a sequence. Keys can be remapped when they are short pressed, long pressed or double pressed. A keymap can have a set of "constraints" so it only has an effect in certain situations.

What can’t be remapped?
* Pixel Active Edge
* OnePlus Alert Slider
* Power button
* Bixby button
* Mouse buttons
* Dpad, thumb sticks or triggers on game controllers

Your key maps don't work if the screen is OFF.

What can I remap my keys to do?
Some actions will only work on rooted devices and specific Android versions.

* Open an app
* Open an app shortcut. This feature is very useful since you can tell another app to do something Key Mapper can’t. E.g If your launcher has a shortcut to open the app drawer, you can select that shortcut in this app and make any button open the app drawer.
* Open a URL
* Go back
* Go home
* Open recents
* Open menu
* Toggle split screen (Android 7.0+)
* Expand notification drawer
* Expand quick settings
* Collapse status bar
* Toggle/enable/disable WiFi (ROOT only for Android 10+)
* Toggle/enable/disable Bluetooth
* Toggle/enable/disable mobile data (ROOT only)
* Toggle Play/pause media
* Pause/play media
* Fast forward/rewind
* Next/previous track
* Volume up/down
* Increase/decrease a specific volume stream
* Show the volume dialog
* Cycle through and change the ringer mode
* Mute/unmute/toggle mute (Android 6.0+)
* Toggle/enable/disable auto-rotate
* Switch between portrait and landscape mode
* Force portrait/landscape mode
* Toggle/enable/disable auto-brightness
* Increase/decrease brightness
* Toggle/enable/disable flashlight (Android 6.0+)
* Toggle/enable/disable airplane mode (ROOT only)
* Toggle/enable/disable a dnd mode (Android 6.0+)
* Switch between vibrate and ring
* Take a screenshot (Android 9.0+)
* Open the Voice Assistant
* Open the Device Assistant
* Open camera
* Consume key event. (Do nothing)
* Lock the device
* Show the power dialog (Android 5.0+)
* Move the cursor to the end of a file
* Toggle, show and hide the keyboard
* Show the keyboard picker (ROOT only for Android 8.1+)
* Change the keyboard (ROOT only)

A Key Mapper keyboard needs to be selected for these to work and you can’t use a soft keyboard at the same time:

** It is recommended to install the Key Mapper GUI Keyboard app because this is a proper keyboard unlike the one built-in to Key Mapper **

* Input a specific keycode
* Input a key
* Insert a block of text

What other things can the app do?
* Option to show a persistent notification which can pause/resume your keymaps.
* Automatically change the keyboard to the Key Mapper one and/or show the keyboard picker when a chosen Bluetooth device is connected and switch back to the old one when it is disconnected.
* Quick settings to pause/resume keymaps and toggle the Key Mapper keyboard.

Permissions
You don't have to grant all the permissions for the app to work. The app will tell you if a permission needs to be granted for a feature to work.

* Accessibility Service: Basic requirement for remapping to work. It is needed so the app can listen to and block keyevents.
* Device Admin: To turn the screen off when using the action to turn off the screen.
* Modify System Settings: To change the brightness and rotation settings.
* Camera: To control the flashlight.

On some devices, enabling the accessibility service will disable "enhanced data encryp

Packages

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 2.1.0 (38) suggested Added on 2020-11-25

    This version requires Android 4.2 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • expand/collapse status bar
      Allows the app to expand or collapse the status bar.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • take pictures and videos
      This app can take pictures and record videos using the camera at any time.
    • control vibration
      Allows the app to control the vibrator.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • android.permission.QUERY_ALL_PACKAGES
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • run foreground service
      Allows the app to make use of foreground services.
    • reorder running apps
      Allows the app to move tasks to the foreground and background. The app may do this without your input.

    Download APK 3.3 MiB PGP Signature | Build Log

  • Version 2.1.0-beta.4 (36) - Added on 2020-11-16

    This version requires Android 4.2 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • expand/collapse status bar
      Allows the app to expand or collapse the status bar.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • take pictures and videos
      This app can take pictures and record videos using the camera at any time.
    • control vibration
      Allows the app to control the vibrator.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • android.permission.QUERY_ALL_PACKAGES
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • run foreground service
      Allows the app to make use of foreground services.
    • reorder running apps
      Allows the app to move tasks to the foreground and background. The app may do this without your input.

    Download APK 3.3 MiB PGP Signature | Build Log

  • Version 2.1.0-beta.3 (35) - Added on 2020-10-25

    This version requires Android 4.2 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • connect and disconnect from Wi-Fi
      Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • expand/collapse status bar
      Allows the app to expand or collapse the status bar.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • take pictures and videos
      This app can take pictures and record videos using the camera at any time.
    • control vibration
      Allows the app to control the vibrator.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • android.permission.QUERY_ALL_PACKAGES
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • run foreground service
      Allows the app to make use of foreground services.
    • reorder running apps
      Allows the app to move tasks to the foreground and background. The app may do this without your input.

    Download APK 3.3 MiB PGP Signature | Build Log