Question

I'm doing some edits to an input device driver in an android kernel.

This device has a limited range of keybits and evbits enabled. What I want to do is to create a new /dev/input event node that is not related to any physical device, with more keybits and evbits enabled, so that I can send real input signals from the physical driver to the userspace, in the userspace I listen to them and when received I can inject input events to the "virtual" driver writing to its event node.

Does linux/android kernel offer such option? Which path should I follow? Is there any alternative to this?

As a second option, can I create two input nodes in the same driver and send input_reports only to the "physical" node?

Was it helpful?

Solution

I see two alternatives:

  1. Create virtual input device - you can write your own driver or use uinput

  2. Bypass low-level input susbsystem and inject key events at the Android framework level

OTHER TIPS

the linux has a builtin virtual keyboard mouse driver named uinput, if your android device has /dev/uinput ,that means you could talk to /dev/uinput to simulate mouse and keyboard https://www.kernel.org/doc/html/v4.12/input/uinput.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top