getevent

输出结果如下:

/dev/input/event3: 0000 0000 00000000
/dev/input/event3: 0003 0035 00000018
/dev/input/event3: 0003 0036 00000467
/dev/input/event3: 0000 0000 00000000
/dev/input/event3: 0003 0039 ffffffff
/dev/input/event3: 0001 014a 00000000
/dev/input/event3: 0000 0000 00000000
其中/dev/input/event3后的参数意思分别为:

“事件类型” “参数位定义”  “值”

比如:/dev/input/event3: 0003 0039 ffffffff

意思就是:事件类型是0003代表的事件,参数位定义的宏为0039定义的值,对应的值等于ffffffff

这里的event代表不同的输入方式:不同的手机有不同的表示

event3代表屏幕输入

event0代表power键盘输入

event2代表音量键

加上一个-l参数
getevent -l 得到更直观的信息:

haydn:/ # getevent -l
add device 1: /dev/input/event7
name: "touch_uinput"
add device 2: /dev/input/event6
name: "uinput-fpc"
add device 3: /dev/input/event5
name: "lahaina-mtp-snd-card Button Jack"
add device 4: /dev/input/event4
name: "lahaina-mtp-snd-card Headset Jack"
add device 5: /dev/input/event3
name: "fts_ts"
add device 6: /dev/input/event0
name: "qpnp_pon"
add device 7: /dev/input/event1
name: "qcom-hv-haptics"
add device 8: /dev/input/event2
name: "gpio-keys"
按power键
/dev/input/event0: EV_KEY KEY_POWER DOWN
/dev/input/event0: EV_SYN SYN_REPORT 00000000
/dev/input/event0: EV_KEY KEY_POWER UP
/dev/input/event0: EV_SYN SYN_REPORT 00000000
屏幕的点按操作
/dev/input/event3: EV_ABS ABS_MT_TRACKING_ID 000002ae
/dev/input/event3: EV_ABS ABS_MT_TOUCH_MAJOR 00000004
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 0000022c
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 00000584
/dev/input/event3: EV_KEY BTN_TOUCH DOWN
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 00000225
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 00000577
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 0000021d
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 00000563
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 00000216
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000054f
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 00000211
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000053b
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 0000020c
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 00000528
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 00000207
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 00000516
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 00000202
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 00000504
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001fd
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 000004f2
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001f8
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 000004e0
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001f2
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 000004d0
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001ec
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 000004bf
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001e7
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 000004ae
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001e1
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000049e
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001db
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000048e
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001d6
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000047e
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001c3
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000044e
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 000001bd
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000043e
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_TRACKING_ID ffffffff
/dev/input/event3: EV_KEY BTN_TOUCH UP
/dev/input/event3: EV_SYN SYN_REPORT 00000000

每一次屏幕的点按操作都要经历的过程如下:

/dev/input/event3: EV_ABS ABS_MT_TRACKING_ID 000002ad
/dev/input/event3: EV_ABS ABS_MT_TOUCH_MAJOR 00000003
/dev/input/event3: EV_ABS ABS_MT_POSITION_X 00000316
/dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000027e
/dev/input/event3: EV_KEY BTN_TOUCH DOWN
/dev/input/event3: EV_SYN SYN_REPORT 00000000
/dev/input/event3: EV_ABS ABS_MT_TRACKING_ID ffffffff
/dev/input/event3: EV_KEY BTN_TOUCH UP

我们每一次touch,都必须经历以上的8行

第一行:可理解为一次touch的开始
第2行:可理解为点击开始
第3行:触摸点x坐标
第4行:触摸点y坐标
第5行:可理解为触摸点大小
第6行:事件同步(点击结束)
第7行:一次touch结束
第8行:事件同步(事件结束)

如果是long touch,很简单也就在上面八行touch的基础上,重复若干次第2~6行。

如果是drag就是在longTouch的基础上,x和y坐标从起点到终点渐变,其他一样。

知道这些以后,在使用sendevent进行事件模拟就很easy.

EV_ABS ABS_MT_TRACKING_ID 00000000 <---事件开始
EV_ABS ABS_MT_TOUCH_MAJOR 00000010 <---点击开始
EV_ABS ABS_MT_PRESSURE 00000070 <--- 触摸范围
EV_ABS ABS_MT_POSITION_X 00000120 <--- x坐标
EV_ABS ABS_MT_POSITION_Y 00000254 <--- y坐标
EV_SYN SYN_REPORT 00000000 <---点击结束(同步)
EV_ABS ABS_MT_TRACKING_ID 4294967295 <---事件结束
EV_SYN SYN_REPORT 00000000 <---事件同步

adb rootadb shellgetevent输出结果如下:/dev/input/event3: 0000 0000 00000000/dev/input/event3: 0003 0035 00000018/dev/input/event3: 0003 0036 00000467/dev/input/event3: 0000 0000 00000000/dev/input/event3: 0003 0039 ffffffff/dev/input/event3: 0001 01 添加设备1:/ dev / input / event1 名称:“ Lite-On Technology Corp. HP基本USB键盘” 添加设备2:/ dev / input / event0 name: "gpio-keys.12" / dev / input / event0:0001 0074 00000002 / dev / input / event0:0000 0000 00000001 / dev / input / event0:0001 0074 00000002
Android getevent 用法实例详解 最近在测试设备按键的常用命令,感觉这些命令都有的,但就是不知道怎么查找。 翻阅了几篇博文,才发现有一个 getevent ,就是指这样的命令. 首先需要说明的是 getevent 命令后面可以带上具体的input设备,列如 getevent /dev/iput/event0,这样可以过滤掉一些不用显示的input的设备. 我在之前的使用中,还是有些找不到点子,也是一步一步使用起来的。 首先看-p 选项, -p选项用于输出input设备相关的一些信息,列如, getevent -p /dev/input/event0: add device 1 : /dev
getevent 指令用于 获取 input 输入事件,比如 获取 按键上 信息、 获取 触摸屏上 信息等。 指令源码路径:/system/core/toolbox/ getevent .c getevent -h:查看 getevent 帮助信息 root@rk3288:/ # getevent -h getevent -h Usage: getevent [-t] [-n] [-s switchma...
getevent 命令用法如下: Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]     -t: show time stamps     -n: don't print newlines     -s: print swi
Touch也是一种input。input有哪些可以通过命令查看。在 adb shell 下面输入命令 getevent -l ,就可以得到input的信息。可以从下图中看出,/dev/input/event1就是对应我们的Touch,厂商是新思。 如果只看Touch的部分,可以输入 getevent -l /dev/input/event1。触摸屏幕可以看到下图。这是用手指单击屏幕出现的结果
5.3 耳麦拔插事件调用流程分析 使用input子系统还是使用state dev(uevent)上 拔插操作, 取决于config_useDevInputEventForAudioJack配置值, 该值为true时使用input子系统, 为false时使用uevent机制, 该值在下述文件中定义, 后一个文件会覆盖前一个文件: frameworks/base/core/res/res/values/config.xml device/friendly-arm/tiny4412/overlay/framewo
NX二次开发uc1653 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的专业人士,还是希望提高工作效率的普通用户,NX 二次开发 Ufun 都可以帮助您实现更高效的工作流程。函数覆盖了 NX 软件的各个方面,包括但不限于建模、装配、制图、编程、仿真等。这些 API 函数可以帮助用户轻松地实现自动化、定制化和扩展 NX 软件的功能。例如,用户可以通过 Ufun 编写脚本,自动化完成重复性的设计任务,提高设计效率;或者开发定制化的功能,满足特定的业务需求。语法简单易懂,易于学习和使用。用户可以快速上手并开发出符合自己需求的 NX 功能。本资源内容 提供了丰富的中英文帮助文档,可以帮助用户快速了解和使用 Ufun 的功能。用户可以通过资源中的提示,学习如何使用 Ufun 的 API 函数,以及如何实现特定的功能。
Android getevent 是一个命令行工具,用于捕获和显示 Android 设备上的输入事件。它可以显示触摸屏、按键、方向和加速度传感器等事件的详细信息。 使用 getevent 命令需要先在 Android 设备上 获取 root 权限。在命令行中输入以下命令: adb root adb shell getevent -lt /dev/input/eventX 其中,eventX 是要捕获事件的设备文件名,可以通过输入以下命令查看设备列表: adb shell getevent -lp getevent 命令会输出事件的详细信息,包括事件类型、时间戳、事件代码和事件值等。开发人员可以使用这些信息来调试和测试 Android 应用程序。
uiautomator2.exceptions.JSONRPCError: -32001 Jsonrpc error: <java.lang.SecurityException> data: java 大山733: 自己的手机就直接能连接,公司测试机就是不行,连不上 解决:AttributeError: module ‘tensorflow‘ has no attribute ‘python_io‘ weixin_55486824: 可是改完之后又报编码错误,但是我里面并没有中文,求解答 使用adb命令解锁Android手机 m0_65922148: 请问手机数据会被删除吗 python识别并标注出两张图像的差异 Yul-docoter: Traceback (most recent call last): File "C:\Users\liyue\PycharmProjects\pythonProject\图片找不同.py", line 25, in <module> cv2.imshow('Detected', img1) cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage' python识别并标注出两张图像的差异 Yul-docoter: cv2.rectangle(img1, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2) NameError: name 'w' is not defined