2 unstable releases

0.2.0 Jul 26, 2024
0.1.0 May 20, 2024

#698 in Hardware support

MIT license

20KB
418 lines

hid-replay

HID replay is a utility to create virtual HID devices via the uhid kernel module. Typically the input is a recording created by hid-recorder.

This is a Rust reimplementation of hid-replay from hid-tools.

Installation

hid-replay needs access to the /dev/uhid device and typically needs to run as root.

The easiest is to install with cargo as root:

$ sudo cargo install hid-replay
$ sudo hid-replay path/to/recording

Alternatively leave out the sudo which installs installs in $CARGO_HOME (usually $HOME/.cargo) and run with pkexec instead.

$ cargo install hid-replay
$ pkexec hid-replay path/to/recording

pkexec will ask for your user's password.

Alternatively you can install hid-replay so you can access it via sudo:

Sudo-compatible Installation

Install as user in $CARGO_HOME

This is the default cargo installation but requires that you add the path manually when running hid-replay:

$ cargo install hid-replay
$ sudo $HOME/.cargo/bin/hid-replay path/to/recording

Install as root in /usr/local

Install hid-replay in /usr/local/ which is typically part of the default $PATH.

$ sudo CARGO_INSTALL_ROOT=/usr/local cargo install hid-replay
$ sudo hid-replay path/to/recording

Allow access to the device to non-root users

This is the least safe option as once read access is granted, any process can create virtual HID devices. This allows for malicious interference with your running session.

$ cargo install hid-replay
$ sudo chmod o+r /dev/uhid
$ hid-replay path/to/recording

It is recommended to remove these permissions once need for replaying is over:

$ sudo chmod o-r /dev/uhid

Dependencies

~3–5.5MB
~106K SLoC