内核开发新手:内核中的输入驱动程序"Virtual"?



我正在对android内核中的输入设备驱动程序进行一些编辑。

此设备具有有限范围的keybit和evbit启用。我想做的是创建一个新的/dev/input事件节点,它与任何物理设备无关,启用了更多的keybit和evbit,这样我就可以从物理驱动程序向用户空间发送真实的输入信号,在用户空间中我听它们,当接收到它们时,我可以将输入事件注入"虚拟"驱动程序,写入其事件节点。

linux/android内核提供这样的选项吗?我该走哪条路呢?还有别的办法吗?

作为第二个选项,我可以在同一个驱动程序中创建两个输入节点并仅向"物理"节点发送input_reports吗?

我有两个选择:

  1. 创建虚拟输入设备-您可以编写自己的驱动程序或使用uinput

  2. 绕过低级输入子系统,注入Android框架级别的关键事件

Linux有一个名为uinput的内置虚拟键盘鼠标驱动程序,如果你的android设备有/dev/uinput,这意味着你可以通过/dev/uinput来模拟鼠标和键盘https://www.kernel.org/doc/html/v4.12/input/uinput.html

最新更新