package icon

Key Mapper: Unleash your keys!

Make shortcuts for ANYTHING! Remap volume, power, keyboard, or floating buttons!
New in version 3.0.0
Key Mapper 3.0 is here! 🎉

🫧 Floating Buttons: you can create custom on-screen buttons to trigger key maps.

🗂️ Grouping key maps into folders with shared constraints.

🔦 Change the flashlight brightness. Tip: use the constraint for when the flashlight is showing to remap your volume buttons to change the brightness.

🛜 Send HTTP requests with a new action.

❤️ Many improvements to make your key mapping experience more enjoyable.

See all the changes at http://changelog.keymapper.club.
Make custom macros on your keyboard or gamepad, make on-screen buttons in any app, and unlock new functionality from your volume buttons!

Key Mapper supports a huge variety of buttons and keys*:

- ALL your phone buttons (volume AND side key)
- Game controllers (D-pad, ABXY, and most others)
- Keyboards
- Headsets and headphones
- Fingerprint sensor

Not enough keys? Design your own on-screen button layouts and remap those just like real keys!


What shortcuts can I make?
--------------------------

With over 100 individual actions, the sky is the limit.
Build complex macros with screen taps and gestures, keyboard inputs, open apps, control media, and even send intents directly to other apps.


How much control do I have?
---------------------------

TRIGGERS: You decide how to trigger a key map. Long press, double press, press as many times as you like! Combine keys on different devices, and even include your on-screen buttons.

ACTIONS: Design specific macros for what you want to do. Combine over 100 actions, and choose the delay between each one. Set repeating actions to automate and speed up slow tasks.

CONSTRAINTS: You choose when key maps should run and when they shouldn't. Only need it in one specific app? Or when media is playing? On your lockscreen? Constrain your key maps for maximum control.

* Most devices are already supported, with new devices being added over time. Let us know if it's not working for you and we can prioritize your device.

Not currently supported:
- Mouse buttons
- Joysticks and triggers (LT,RT) on gamepads

Come say hi in our Discord community!
www.keymapper.club

See the code for yourself! (Open source)
code.keymapper.club

Read the documentation:
docs.keymapper.club

Donate

Versions

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 3.0.0 (95) suggested Added on Apr 17, 2025

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 5.0 or newer.

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

    Permissions
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • 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.
    • answer phone calls
      Allows the app to answer an incoming phone call.
    • 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.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • directly call phone numbers
      Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • 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.
    • 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.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • 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.
    • 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.
    • reorder running apps
      Allows the app to move tasks to the foreground and background. The app may do this without your input.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • android.permission.WRITE_SECURE_SETTINGS
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • com.termux.permission.RUN_COMMAND
    • io.github.sds100.keymapper.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    • moe.shizuku.manager.permission.API_V23

    Download APK 6.7 MiB PGP Signature | Build Log

  • Version 2.8.3 (74) - Added on Mar 23, 2025

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 5.0 or newer.

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

    Permissions
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • 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.
    • answer phone calls
      Allows the app to answer an incoming phone call.
    • 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.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • directly call phone numbers
      Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • 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.
    • expand/collapse status bar
      Allows the app to expand or collapse the status bar.
    • run foreground service
      Allows the app to make use of foreground services.
    • 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.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • 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.
    • 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.
    • reorder running apps
      Allows the app to move tasks to the foreground and background. The app may do this without your input.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • android.permission.WRITE_SECURE_SETTINGS
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • com.termux.permission.RUN_COMMAND
    • io.github.sds100.keymapper.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    • moe.shizuku.manager.permission.API_V23

    Download APK 6.7 MiB PGP Signature | Build Log

  • Version 2.8.2 (73) - Added on Mar 16, 2025

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 5.0 or newer.

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

    Permissions
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • access Do Not Disturb
      Allows the app to read and write Do Not Disturb configuration.
    • 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.
    • answer phone calls
      Allows the app to answer an incoming phone call.
    • 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.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • directly call phone numbers
      Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn't allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • 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.
    • expand/collapse status bar
      Allows the app to expand or collapse the status bar.
    • run foreground service
      Allows the app to make use of foreground services.
    • 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.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • 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.
    • 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.
    • reorder running apps
      Allows the app to move tasks to the foreground and background. The app may do this without your input.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • use fingerprint hardware
      Allows the app to use fingerprint hardware for authentication
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • android.permission.WRITE_SECURE_SETTINGS
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.
    • com.termux.permission.RUN_COMMAND
    • io.github.sds100.keymapper.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    • moe.shizuku.manager.permission.API_V23

    Download APK 6.7 MiB PGP Signature | Build Log