Does anyone know what the output from getevent means?

pypmannetjies picture pypmannetjies · Sep 5, 2012 · Viewed 16.3k times · Source

I'm trying to figure out what format the output is from the getevent command in the adb shell.

For example, the output looks like this:

adb shell getevent -t | grep event1

The -t flag provides a timestap and the grep is to filter the messages to only the touch screen's events.

22779-197145: /dev/input/event1: 0003 003a 00400001

22779-197999: /dev/input/event1: 0003 0039 82c30a97

22779-218477: /dev/input/event1: 0003 003a 00390001

22779-219301: /dev/input/event1: 0003 0039 82c30aa4

22779-230623: /dev/input/event1: 0003 003a 002f0001

22779-231416: /dev/input/event1: 0003 0039 82c10aae

22779-242769: /dev/input/event1: 0003 003a 00190001

22779-243623: /dev/input/event1: 0003 0039 82c60ac1

22779-253328: /dev/input/event1: 0003 003a 00000002

22779-254213: /dev/input/event1: 0003 0039 82da0ae4

22779-415590: /dev/input/event1: 0003 003a 00000000

22779-416444: /dev/input/event1: 0003 0039 800b1549

The problem is that I have no idea how to process this information. While the seconds last field alternates between two codes (which has been suggested to correspond to X and Y values), the last field seems to either contain huge or very small numbers.

Furthermore, the timestamp is also foreign to me. I wonder if the part after the dash are nanoseconds?

Does anyone know where I can find out about the format of these things?

Answer

Marcin Orlowski picture Marcin Orlowski · Sep 10, 2012

/dev/input/eventX is used by evdev linux kernel subsystem which is generic input event layer handling events and passing it timestamped to the apps. You can try this to get more human readable output on what is going on Android with getevent tool, like this:

$ adb shell getevent -lp /dev/input/event1

To get all getevent's options, do:

$ adb shell getevent --help

You can read more about getevent tool here and about evdev on Wiki.

According to kernel sources, evdev use nanosecond-resolution time format (ktime) and the sources are in linux/next/include/linux/ktime.h or here, if you want to view it online.