Several gamepad input modes are available:
--gamepad=disabled
(default)--gamepad=uhid
(or-G
): simulates physical HID gamepads using the UHID kernel module on the device--gamepad=aoa
: simulates physical HID gamepads using the AOAv2 protocol
Two modes allow to simulate physical HID gamepads on the device, one for each physical gamepad plugged into the computer.
This mode simulates physical HID gamepads using the UHID kernel module on the device.
To enable UHID gamepads, use:
scrcpy --gamepad=uhid
scrcpy -G # short version
Note: UHID may not work on old Android versions due to permission errors.
This mode simulates physical HID gamepads using the AOAv2 protocol.
To enable AOA gamepads, use:
scrcpy --gamepad=aoa
Contrary to the other mode, it works at the USB level directly (so it only works over USB).
It does not use the scrcpy server, and does not require adb
(USB debugging).
Therefore, it is possible to control the device (but not mirror) even with USB
debugging disabled (see OTG).
Note: For some reason, in this mode, Android detects multiple physical gamepads as a single misbehaving one. Use UHID if you need multiple gamepads.
Note: On Windows, it may only work in OTG mode, not while mirroring (it is not possible to open a USB device if it is already open by another process like the adb daemon).