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:
python识别并标注出两张图像的差异
Yul-docoter: