Как стать владельцем скрытого устройства?
-
18-09-2019 - |
Вопрос
Я хотел бы стать владельцем скрытого устройства, которое, возможно, уже было подключено, использовать его выходные данные, не позволяя другим (X11 или терминалу) использовать его.
Если я могу помочь, я не хочу притворяться терминалом, а скорее монополизировать конкретное скрытое или символьное устройство.Идея состоит в том, что некоторые скрытые устройства могут быть распознаны x/terminal как мыши/клавиатуры, но вторую мышь или клавиатуру можно использовать для чего-то другого, но для этого вам нужно убедиться, что они не отправляют ложный ввод в открытый терминал.
Есть ли у кого-нибудь представление о том, как это можно сделать?
Решение
Я сделал это - моим конкретным приложением был демон, который считывал события со считывателя штрих-кодов USB HID (который представляет собой клавиатурное устройство USB HID).
Для этого я использовал интерфейс устройства событий, открыв /dev/input/event*
устройство, соответствующее устройству, которое мне было нужно.Затем вы можете выдать EVIOCGRAB
ioctl на устройстве, который захватывает его для эксклюзивного использования и считывает события (которые представляют собой нажатия клавиш, движения мыши и т. д.) с устройства по мере их появления.
(Когда устройство захвачено для эксклюзивного использования, события от него будут видеть только ваше приложение).