Home | History | Annotate | Download | only in input
      1 <html devsite>
      2   <head>
      3     <title>Getevent</title>
      4     <meta name="project_path" value="/_project.yaml" />
      5     <meta name="book_path" value="/_book.yaml" />
      6   </head>
      7   <body>
      8   <!--
      9       Copyright 2017 The Android Open Source Project
     10 
     11       Licensed under the Apache License, Version 2.0 (the "License");
     12       you may not use this file except in compliance with the License.
     13       You may obtain a copy of the License at
     14 
     15           http://www.apache.org/licenses/LICENSE-2.0
     16 
     17       Unless required by applicable law or agreed to in writing, software
     18       distributed under the License is distributed on an "AS IS" BASIS,
     19       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     20       See the License for the specific language governing permissions and
     21       limitations under the License.
     22   -->
     23 
     24 
     25 
     26 <p>The <code>getevent</code> tool runs on the device and provides information
     27 about input devices and a live dump of kernel input events.</p>
     28 <p>This tool is useful for ensuring device drivers are reporting the
     29 expected set of capabilities for each input device and are generating the
     30 desired stream of input events.</p>
     31 
     32 <h2 id="showing-device-capabilities">Showing device capabilities</h2>
     33 <p>Use the <code>-p</code> option with the <code>adb</code> command to see all of the keys and axes a device
     34 reports.</p>
     35 
     36 <pre class="devsite-terminal devsite-click-to-copy">adb shell su -- getevent -p</pre>
     37 
     38 <p>The following example lists the Linux key codes and other events a
     39 particular keyboard says it supports.</p>
     40 
     41 <pre>
     42   name:     "Motorola Bluetooth Wireless Keyboard"
     43   events:
     44     KEY (0001): 0001  0002  0003  0004  0005  0006  0007  0008
     45                 0009  000a  000b  000c  000d  000e  000f  0010
     46                 0011  0012  0013  0014  0015  0016  0017  0018
     47                 0019  001a  001b  001c  001d  001e  001f  0020
     48                 0021  0022  0023  0024  0025  0026  0027  0028
     49                 0029  002a  002b  002c  002d  002e  002f  0030
     50                 0031  0032  0033  0034  0035  0036  0037  0038
     51                 0039  003a  003b  003c  003d  003e  003f  0040
     52                 0041  0042  0043  0044  0045  0046  0047  0048
     53                 0049  004a  004b  004c  004d  004e  004f  0050
     54                 0051  0052  0053  0055  0056  0057  0058  0059
     55                 005a  005b  005c  005d  005e  005f  0060  0061
     56                 0062  0063  0064  0066  0067  0068  0069  006a
     57                 006b  006c  006d  006e  006f  0071  0072  0073
     58                 0074  0075  0077  0079  007a  007b  007c  007d
     59                 007e  007f  0080  0081  0082  0083  0084  0085
     60                 0086  0087  0088  0089  008a  008c  008e  0090
     61                 0096  0098  009b  009c  009e  009f  00a1  00a3
     62                 00a4  00a5  00a6  00ab  00ac  00ad  00b0  00b1
     63                 00b2  00b3  00b4  00b7  00b8  00b9  00ba  00bb
     64                 00bc  00bd  00be  00bf  00c0  00c1  00c2  00d9
     65                 00f0  0110  0111  0112  01ba
     66     REL (0002): 0000  0001  0008
     67     ABS (0003): 0028  : value 223, min 0, max 255, fuzz 0, flat 0, resolution 0
     68                 0029  : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
     69                 002a  : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
     70                 002b  : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
     71     MSC (0004): 0004
     72     LED (0011): 0000  0001  0002  0003  0004
     73   input props:
     74     &lt;none&gt;
     75 </pre>
     76 
     77 <p>Use the <code>-i</code> option to get more information, including HID mapping
     78 tables and debugging information.</p>
     79 
     80 <p>Use the <code>-l</code> option to display textual labels for all event codes.</p>
     81 <pre class="devsite-terminal devsite-click-to-copy">
     82 adb shell su -- getevent -lp /dev/input/event1
     83 </pre>
     84 <p>Example:</p>
     85 <pre>
     86   name:     "Melfas MMSxxx Touchscreen"
     87   events:
     88     ABS (0003): ABS_MT_SLOT           : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0
     89                 ABS_MT_TOUCH_MAJOR    : value 0, min 0, max 30, fuzz 0, flat 0, resolution 0
     90                 ABS_MT_POSITION_X     : value 0, min 0, max 720, fuzz 0, flat 0, resolution 0
     91                 ABS_MT_POSITION_Y     : value 0, min 0, max 1280, fuzz 0, flat 0, resolution 0
     92                 ABS_MT_TRACKING_ID    : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
     93                 ABS_MT_PRESSURE       : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
     94   input props:
     95     INPUT_PROP_DIRECT
     96 </pre>
     97 <h2 id="showing-live-events">Showing live events</h2>
     98 <p>The following example shows a two-finger multi-touch gesture for a
     99 touchscreen using the Linux multi-touch input protocol "B". The <code>-l</code>
    100 option displays textual labels and the <code>-t</code> option displays
    101 timestamps.</p>
    102 
    103 <pre class="devsite-terminal devsite-click-to-copy">
    104 adb shell su -- getevent -lt /dev/input/event1
    105 </pre>
    106 
    107 <p>Example:</p>
    108 <pre>
    109 [   78826.389007] EV_ABS       ABS_MT_TRACKING_ID   0000001f
    110 [   78826.389038] EV_ABS       ABS_MT_PRESSURE      000000ab
    111 [   78826.389038] EV_ABS       ABS_MT_POSITION_X    000000ab
    112 [   78826.389068] EV_ABS       ABS_MT_POSITION_Y    0000025b
    113 [   78826.389068] EV_ABS       ABS_MT_SLOT          00000001
    114 [   78826.389068] EV_ABS       ABS_MT_TRACKING_ID   00000020
    115 [   78826.389068] EV_ABS       ABS_MT_PRESSURE      000000b9
    116 [   78826.389099] EV_ABS       ABS_MT_POSITION_X    0000019e
    117 [   78826.389099] EV_ABS       ABS_MT_POSITION_Y    00000361
    118 [   78826.389099] EV_SYN       SYN_REPORT           00000000
    119 [   78826.468688] EV_ABS       ABS_MT_SLOT          00000000
    120 [   78826.468688] EV_ABS       ABS_MT_TRACKING_ID   ffffffff
    121 [   78826.468719] EV_ABS       ABS_MT_SLOT          00000001
    122 [   78826.468719] EV_ABS       ABS_MT_TRACKING_ID   ffffffff
    123 [   78826.468719] EV_SYN       SYN_REPORT           00000000
    124 </pre>
    125 <p class="note"><strong>Note:</strong> <code>getevent</code> timestamps use
    126 the format $SECONDS.$MICROSECONDS in the CLOCK_MONOTONIC timebase. For details,
    127 refer to getevent.c.</p>
    128   </body>
    129 </html>
    130