我正在对Android内核中的输入设备驱动程序进行一些编辑。
此设备启用了有限的keybits和evbits。我想要做的是创建一个与任何物理设备无关的新/ dev / input事件节点,启用更多的keybits和evbits,这样我就可以将实际输入信号从物理驱动程序发送到用户空间,用户空间我收听它们,收到后我可以将输入事件注入写入其事件节点的“虚拟”驱动程序。
linux / android内核是否提供这样的选项?我应该遵循哪条路?有没有替代方案?
作为第二个选项,我可以在同一个驱动程序中创建两个输入节点,并仅将input_reports发送到“物理”节点吗?
答案 0 :(得分:1)
我看到两种选择:
创建虚拟输入设备 - 您可以编写自己的驱动程序或使用uinput
绕过低级输入susbsystem和inject key events at the Android framework level
答案 1 :(得分:0)
Linux 有一个名为 uinput 的内置虚拟键盘鼠标驱动程序,如果您的 android 设备有 /dev/uinput ,这意味着您可以与 /dev/uinput 对话来模拟鼠标和键盘 https://www.kernel.org/doc/html/v4.12/input/uinput.html