ShizuStore

Key Sync

aka-munan

1.41-beta · GitHub

Download APK
Input methods Android 10+ 7 months ago Apache-2.0
22 ShizuStore
7.4k GitHub
155 Stars
3 MB Size

More about this app

Play games using mouse and keyboard on Android device; keymapper for games

KeySync

KeySync is an Android app that allows users to play games using an external keyboard and mouse without requiring root access. It leverages Shizuku to grant necessary permissions and maps key events from external input devices to on-screen touch points.

Tip

Experimental Native Input

Work is in progress on an experimental branch feature/native introducing native input handling to reduce reliance on floating windows and UI-based listeners. Snapshot builds are available for testing, and changes will be merged into main once stable.


Features

  • ๐ŸŽฎ Keyboard & Mouse Support - Play mobile games with a keyboard and mouse.
  • ๐Ÿ”„ No Root Required - Uses Shizuku for permission handling instead of rooting.
  • ๐ŸŽฏ Custom Key Mapping - Map keyboard/mouse events to specific touch points on the screen.
  • ๐ŸŽญ Anti-Detection Mechanism - Introduces randomness in mapped touches to prevent detection by anti-cheat systems.
  • ๐Ÿ”ง Configurable Settings - Customize mappings for different games and control layouts.

Installation

  1. Download and install the latest APK from Release.
  2. Install and set up Shizuku.
  3. Open KeySync and follow the setup instructions.

How It Works

  1. Install & Setup - Install KeySync and grant permission to Shizuku.
  2. Connect Input Devices - Attach an external keyboard and mouse(external devices will be recognised and displayed at the top of the screen).
  3. Add games - Add your favorite games to the launcher using the fab button at the bottm.
  4. Create Key Bindings -Launch the game from in-app launcher and Map keys to specific screen areas for in-game actions.
  5. Start Playing - Use the keyboard and mouse seamlessly in mobile games.

Usage

  1. Open KeySync and ensure Shizuku is running.
  2. Select or create a key mapping profile.
  3. Launch your game and enjoy enhanced controls.
  • Toggle Shooting Mode

    In Fps or Other Aim based games you might want to use "Shooting Mode" Draggable item to Switch between Mouse pointer and in game aim by default you can use MMB (Middle mouse button) to toggle Shooting mode.

Permissions

  • Shizuku Access - Required to simulate touch events.
  • Overlay Permission - Needed to display touch indicators.

Screenshots

Screenshot Screenshot Screenshot


๐Ÿ› ๏ธ Build It Yourself

If you want to build KeySync from source:

Prerequisites

  • Android Studio (latest stable)
  • JDK 17
  • An Android device (Android 11+)

Steps

git clone https://github.com/aka-munan/keysync.git
cd keysync

Note

Signing Configuration

To build a release APK and prevent gradle sync issues, add the following variables to ~/.gradle/gradle.properties:

storeFile=/absolute/path/to/your/keystore.jks
storePassword=your_store_password
keyAlias=your_key_alias
keyPassword=your_key_password

Or just comment out signing config related lines in app:build.gradle.kts

  1. Open the project in Android Studio
  2. Let Gradle sync completely
  3. Connect your Android device (or emulator with Shizuku support)
  4. Run the app using Run โ–ถ app

Shizuku Setup (Required)

  • Install Shizuku from Play Store or GitHub
  • Start Shizuku via ADB / Wireless Debugging
  • Grant Shizuku permission when KeySync asks for it

โš ๏ธ Without Shizuku running, KeySync will not function.

Notes

  • No root access is required
  • Works best with physical keyboard & mouse
  • Emulator support may be limited due to input constraints

๐Ÿค Contributing

Contributions are very welcome and appreciated โค๏ธ Whether itโ€™s code, ideas, or bug reports โ€” everything helps.

How You Can Contribute

  • ๐Ÿ› Report bugs or crashes
  • โœจ Suggest new features or improvements
  • ๐ŸŽฎ Improve key-mapping logic
  • ๐Ÿงช Test on different devices / games
  • ๐Ÿ“– Improve documentation

Development Guidelines

  • Follow existing code style
  • Keep commits small and descriptive
  • Test changes with real input devices
  • Avoid introducing detection-sensitive behavior

Submitting Changes

  1. Fork the repository

  2. Create a new branch

    git checkout -b feature/your-feature-name
    
  3. Commit your changes

  4. Push to your fork

  5. Open a Pull Request

Please clearly explain what and why in your PR.


Disclaimer

Using artificial touch events in games may violate their terms of service. Use this app responsibly and at your own risk.

Contributing

Contributions are welcome! Feel free to submit pull requests or report issues.

Close

How Shizuku is used

Can play mobile games with a keyboard and mouse by turning key and mouse input into on-screen touches via Shizuku.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used to let a connected keyboard and mouse control touch-only games by injecting system-level touch input.

  • Map keyboard to touches: keys you assign to on-screen buttons are turned into taps and holds at those positions through Shizuku.
  • Aim and click with mouse: mouse movement, left, right and middle clicks, and pointer motion are converted into touch drags, taps and camera movement through Shizuku.
  • Move with joystick modes: WASD keys, fire, scope and shooting mode keys drive virtual joystick gestures and toggleable aiming behavior through Shizuku.

Android APIs or commands used

  • android.hardware.input.IInputManager.injectInputEvent
  • android.view.MotionEvent
Close

Changelog

What's new for version 1.41-beta

Close

Permissions

6 permissions requested

  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.QUERY_ALL_PACKAGES
  • com.devoid.keysync.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close