scrcpy/doc/otg.md

2.0 KiB

OTG

By default, scrcpy injects input events at the Android API level. As an alternative, it is possible to send HID events, so that scrcpy behaves as if it was a physical keyboard and/or a physical mouse connected to the Android device (see keyboard and mouse).

A special mode (OTG) allows to control the device using AOA keyboard, mouse and gamepad, without using adb at all (so USB debugging is not necessary). In this mode, video and audio are disabled, and --keyboard=aoa and --mouse=aoa are implicitly set. However, gamepads are disabled by default, so --gamepad=aoa (or -G in OTG mode) must be explicitly set.

Therefore, it is possible to run scrcpy with only physical keyboard, mouse and gamepad simulation, as if the computer keyboard, mouse and gamepads were plugged directly to the device via an OTG cable.

To enable OTG mode:

scrcpy --otg
# Pass the serial if several USB devices are available
scrcpy --otg -s 0123456789abcdef

It is possible to disable keyboard or mouse:

scrcpy --otg --keyboard=disabled
scrcpy --otg --mouse=disabled

and to enable gamepads:

scrcpy --otg --gamepad=aoa
scrcpy --otg -G  # short version

It only works if the device is connected over USB.

OTG issues on Windows

See FAQ.

Control only

Note that the purpose of OTG is to control the device without USB debugging (adb).

If you want to solely control the device without mirroring while USB debugging is enabled, then OTG mode is not necessary.

Instead, disable video and audio, and select UHID (or AOA):

scrcpy --no-video --no-audio --keyboard=uhid --mouse=uhid --gamepad=uhid
scrcpy --no-video --no-audio -KMG  # short version
scrcpy --no-video --no-audio --keyboard=aoa --mouse=aoa --gamepad=aoa

One benefit of UHID is that it also works wirelessly.