Key Mapper icon

Key Mapper

by sds100 · GPL-3.0-only · open source

Turn almost any button into a shortcut: volume and side keys, gamepads, keyboards and headset buttons can trigger more than 100 actions, even with the screen off in Expert Mode.

Needs:No root · accessibility service · Android 8.0+

No known trackers in the code Signer matches F-Droid’s record Ads

2113 Apps is independent, not affiliated with or endorsed by sds100. Official sources: keymapper.app · source code on GitHub.

Download APK · 15.0 MB v4.5.0-foss · checked
Version
4.5.0-foss
Size
15.0 MB
Requires
Android 8.0+
Updated
2026-09-22

Screenshots

Key Mapper screenshot 1Key Mapper screenshot 2Key Mapper screenshot 3Key Mapper screenshot 4Key Mapper screenshot 5Key Mapper screenshot 6

Introduction

Key Mapper intercepts button presses and lets you decide what they do. Its core is free and open source; a few special features are paid add-ons, and those aren’t in this build (see below).

What you can remap

From the README: all your phone’s buttons, including the volume and side keys, game controller buttons such as the D-pad and ABXY, keyboards, headset and headphone buttons, and the fingerprint sensor. Each can trigger any of more than 100 actions. Gamepad joysticks and triggers (LT and RT) aren’t supported.

Setting it up

  • It uses an accessibility service to see and change button presses while you’re in other apps.
  • Because this APK doesn’t come from Google Play, Android may block that service until you allow restricted settings for the app. The project’s guide shows how.
  • For the volume buttons, the FAQ says to give it Do Not Disturb access.

Shizuku and Expert Mode

With Shizuku, Key Mapper can send key events without switching to its own keyboard, make its “open menu” action work in more apps, and grant itself the WRITE_SECURE_SETTINGS permission without a computer. Shizuku can also start Expert Mode, which remaps buttons through the ADB shell so that triggers work even with the screen off. The app warns that remapping buttons wrongly in Expert Mode can stop them working. We found the Shizuku library in the APK.

This is the FOSS build

  • F-Droid’s build, whose version ends in “-foss”, leaves out the closed-source parts: floating buttons, the assistant trigger and the paid advanced triggers are only in the Google Play version, which is called Key Mapper & Floating Buttons there.
  • F-Droid flags it for ads, because the app promotes the paid Play version.
  • It asks for access to all files only in this build; the app explains that Google Play restricts that permission to file managers.
  • It is signed with F-Droid’s key, so it won’t update a Key Mapper installed from Google Play, or the other way round, without uninstalling first.
  • The 15.0 MB file has native code for ARM and x86, 32- and 64-bit, and declares 33 permissions.

What’s inside the APK

Trackers

None found

No code matching the Exodus Privacy tracker signatures.

Native code

4 CPU types

Runs on 64-bit and older 32-bit ARM phones.

Android versions

Android 8.0 and up

Built for Android 17 (target API 37).

Permissions

33

10 of them need your approval first.

Shizuku API. Uses the Shizuku API, so it can do ADB-level work without root once Shizuku is running. (rikka.shizuku.ShizukuProvider)

Flagged by F-Droid:

  • Ads: Shows advertising.

CPU types in this build: arm64-v8a (64-bit ARM, almost every phone since 2017); armeabi-v7a (32-bit ARM, older and budget phones); x86 (32-bit Intel, emulators); x86_64 (64-bit Intel, emulators and Chromebooks).

Asks you first (10)

Android shows a prompt before the app can use these.

  • Precise location · ACCESS_FINE_LOCATION
  • Answer incoming calls · ANSWER_PHONE_CALLS
  • Connect to paired Bluetooth devices · BLUETOOTH_CONNECT
  • Place phone calls directly · CALL_PHONE
  • Use the camera · CAMERA
  • Show notifications (Android 13+) · POST_NOTIFICATIONS
  • Read shared storage (Android 12 and older) · READ_EXTERNAL_STORAGE
  • Read phone status and identity · READ_PHONE_STATE
  • Send text messages · SEND_SMS
  • Write shared storage (Android 10 and older) · WRITE_EXTERNAL_STORAGE

You switch these on in Settings (2)

Special app access. Nothing is granted until you turn it on yourself.

  • All files access · MANAGE_EXTERNAL_STORAGE
  • Modify system settings · WRITE_SETTINGS
System-level (2)

Reserved for system apps. A normal install does not get these; they only take effect through root, ADB or Shizuku, if at all.

  • READ_LOGS
  • WRITE_SECURE_SETTINGS
Granted at install (16)

Low-risk permissions Android grants automatically, plus any we have not classified.

  • ACCESS_LOCAL_NETWORK
  • ACCESS_NETWORK_STATE
  • ACCESS_NOTIFICATION_POLICY
  • ACCESS_WIFI_STATE
  • BLUETOOTH
  • BLUETOOTH_ADMIN
  • CHANGE_WIFI_STATE
  • EXPAND_STATUS_BAR
  • INTERNET
  • MODIFY_AUDIO_SETTINGS
  • QUERY_ALL_PACKAGES
  • RECEIVE_BOOT_COMPLETED
  • REORDER_TASKS
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • USE_FINGERPRINT
  • VIBRATE
Defined by other apps (3)

Permissions that belong to another app or to this app itself.

  • com.termux.permission.RUN_COMMAND
  • io.github.sds100.keymapper.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23

More Information

Package name
io.github.sds100.keymapper
Version
4.5.0-foss (build 271)
File size
15.0 MB (15,034,751 bytes)
Requires
Android 8.0 or later
Category
System Tools
License
GPL-3.0-only
Developer
sds100
Released
Sep 22, 2026
Signed by
F-Droid, which built this APK from the published source code. Because the key is F-Droid’s, it won’t install over a copy from Google Play or GitHub (or the other way round) without uninstalling first.
Signer SHA-256
f4d753302710c9a7a40885c891aebdb1a0f275122fdcdb7c2f45a202b213f373
File SHA-256
9896a5d9b7ad976cc14f8f6d88ab4f57952b44f9bc32f68c87b03e1987204806
Checked
, against the F-Droid index · how we check · verify it yourself

Common questions

Is this APK the official Key Mapper release?

It is F-Droid’s build rather than the developer’s own: F-Droid compiled Key Mapper 4.5.0-foss from the published source code and signed it with its own key. Its SHA-256 matches F-Droid’s signed index. Because the key is F-Droid’s, it won’t install over a copy from Google Play or GitHub without uninstalling first.

What Android version does Key Mapper need?

Android 8.0 or later (API level 26). Version 4.5.0-foss is built for Android 17 (target API 37). Runs on 64-bit and older 32-bit ARM phones.

Can Key Mapper access the internet?

Yes. The APK requests Android’s internet permission. In total it declares 33 permissions, and 10 of them need your approval first.

Does Key Mapper contain trackers?

No known trackers: our scan of version 4.5.0-foss found no code matching the Exodus Privacy tracker signatures. The scan covers known tracker libraries; it doesn’t show what data the app itself sends.

Is Key Mapper open source?

Yes. Key Mapper is released under the GPL-3.0-only licence, and its source code is published at https://github.com/keymapperorg/KeyMapper.

Recent releases

Version Released Size Requires
v4.5.0-foss · this download Sep 22, 2026 15.0 MB Android 8.0+
v4.4.0-foss Sep 15, 2026 14.8 MB Android 8.0+
v4.3.1-foss Aug 13, 2026 13.6 MB Android 8.0+

Versions currently kept in the F-Droid repository. We host and check only the newest one. Full changelog.

Shizuku Apps: 15 Open-Source Tools, Each Checked for the Shizuku API

View topic ›