High-performance, standalone Android gamepad keymapper powered by Shizuku.
The 100% Free, Modern & Open-Source Alternative to Mantis Gamepad Pro, Panda Gamepad & Octopus.
Play touch-only mobile games with any physical gamepad without root and with ultra-low latency (< 0.5 ms).
Warning
If you encounter any bugs, controller recognition issues, or have ideas for improvements, please feel free to Open an Issue on GitHub with your device model, controller model, and Android version!
Getting started takes less than 2 minutes. 100% PC-Free & No Root Required — everything is set up directly on your phone.
- Go to the Latest Releases page.
- Download and install
OpenMapper-vX.X.X.apkon your Android device.
OpenMapper requires Shizuku to inject touch events into games with high-speed shell privileges without requiring root.
-
Install Shizuku on your phone:
-
Start Shizuku using Option A (Phone only) or Option B (PC Cable):
- Go to Settings ➔ About Phone ➔ Tap Build Number 7 times to unlock Developer Options.
- In Developer Options, enable Wireless Debugging.
- Open the Shizuku app, tap Pairing (enter code from notification), then tap Start.
- Enable USB Debugging in Developer Options.
- Connect your phone to your PC with a USB cable.
- Open a terminal / command prompt on your PC and run:
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh
💡 Once started, Shizuku remains active in the background until your phone is rebooted.
- Connect your controller (Bluetooth or USB-C OTG): Xbox, PlayStation, Switch Pro, 8BitDo, Razer Kishi, etc.
- Open OpenMapper and grant:
- Shizuku Permission (Click Authorize).
- Display Over Other Apps (Overlay permission).
- Select your game profile (e.g., CoD Mobile, Warzone, PUBG, Genshin).
- Tap 🚀 LAUNCH OVERLAY & MAPPING.
- Launch your game.
- Swipe the side handle 🎮 on the edge of the screen to open the fullscreen HUD Editor.
- Drag and position buttons directly over your game's touchscreen controls.
- Tap 💾 Save and enjoy full gamepad controls!
- Ultra-Low Latency (< 0.5 ms): Direct Linux
/dev/input/event*binary stream parsing with zero memory allocation and zero garbage collection overhead. - 120 Hz – 240 Hz Real-Time Loop: High-priority dedicated engine thread synchronized with modern high-refresh-rate gaming screens.
- Seamless 360° Camera: Dual-pointer handoff technology eliminating screen edge locks and angle snapping during continuous 360° rotations.
- Dynamic Flick & Boost Curve: Micro-precision center deadzone combined with instant 180° turn acceleration at outer stick reach.
- Organic Jiggle Strafe: Automated left/right dodge patterns during weapon fire with randomized feints and humanized timing variations.
- Vertical Anti-Recoil: Smooth automated pull-down compensation with configurable speed (0.1x – 10.0x) and dedicated ADS-Only mode.
- Rotational Aim Assist (RAA) Keep-Alive: Micro-dithering ensures in-game aim assist rotational tracking remains active even when stationary.
- Controller Rumble & Recoil: Dynamic physical gamepad vibration with continuous firing recoil pulses and mechanical reload double-pulses.
- In-Game Floating HUD Editor: Retractable side-drawer to drag, scale, and test button mappings live without leaving your match.
- Two-Button Combos: Bind a HUD action to a chord such as
R1+Xright from the editor — more on-screen actions than the controller has buttons. - Virtual Cursor Mode (
L3+R3): Drive an on-screen pointer with either stick and tap withAto use menus, shops and dialogs without placing a HUD button on every item. Speed is adjustable in game with the D-pad or from the profile editor (0.25x – 5x) and saved per profile. - Special Button Roles: One-tap assignment for Primary Fire, Reload Magazine, and ADS Scope with dedicated sensitivities.
- Multi-Profile Management: Create, duplicate, rename, backup, and export custom mappings for any game.
- Per-Profile Game Package: Tag a profile with a game's package from a built-in app picker, so it is obvious which mapping belongs to which game.
- Multi-Language UI: Full English, French, Spanish and Portuguese translations, switchable from the home screen.
- 1-Click Community Hub: Search, download, and vote on community-made game presets backed by Cloudflare D1 edge database.
- Hardware Diagnostic Suite: Real-time analog stick visualizer, 3-second automated drift test, circularity error check, and polling rate (Hz) monitor.
- In-App Auto-Updater: Direct background detection and 1-tap installation of new GitHub releases directly within the app.
- In-App Bug Report: One-tap report with app version, device/ROM, Shizuku status, connected controllers, active profile and a bounded log — built from a strict whitelist, so no device token or signing secret can leak.
Check out our TODO.md roadmap for upcoming features and technical improvements (e-Sport Macros, MOBA-Style Controls, Radial Menus, Per-App Auto-Switching, Advanced Community Filters, Adaptive Polling, and more).
# Clone the repository
git clone https://github.com/kinou-p/android-open-mapper.git
cd android-open-mapper/android
# Run unit tests
./gradlew testDebugUnitTest
# Compile debug APK
./gradlew assembleDebug
# Install on connected device via ADB
adb install -r app/build/outputs/apk/debug/app-debug.apk- Independent Open-Source Project: OpenMapper is a community-driven project for personal, non-commercial use. It is not affiliated with, endorsed, or sponsored by Activision, Tencent, HoYoverse, Krafton, or any other game publisher.
- Trademarks: All game titles, trademarks, and logos (Call of Duty: Mobile, PUBG, Genshin Impact, Mantis Gamepad Pro, Panda, Octopus, etc.) belong to their respective owners.
- Responsibility: Use of this tool is at the user's sole discretion and responsibility.
This project is licensed under the PolyForm Noncommercial License 1.0.0 (Free for personal, non-commercial and educational use. Commercial exploitation and resale are strictly prohibited).