首页 > 其他分享 >sendevent、getevent解析及底层操作

sendevent、getevent解析及底层操作

时间:2023-11-28 17:11:17浏览次数:40  
标签:00 EV getevent sendevent 0003 dev ABS input 解析

getevent实时获取触控事件

getevent -lt /dev/input/event1
-t 时间
-l 文本显示状态

记录示例

// 事件类型      事件码              事件值
EV_ABS       ABS_MT_TRACKING_ID   0000000f
EV_ABS       ABS_MT_POSITION_X    00002bbc
EV_ABS       ABS_MT_POSITION_Y    00001b6d
EV_KEY       BTN_TOUCH            DOWN
EV_ABS       ABS_X                00002bbc
EV_ABS       ABS_Y                00001b6d
EV_SYN       SYN_REPORT           00000000
EV_ABS       ABS_MT_TRACKING_ID   ffffffff
EV_KEY       BTN_TOUCH            UP
EV_SYN       SYN_REPORT           00000000

sendevent需要4个参数,如下:

use: sendevent device type code value
sendevent /dev/input/event1 0 0 0

type含义如下:

type 0000 Synchronization events
type 0001 Keys and buttons
type 0003 Absolute axes,即描述运动事件的值

code含义如下

0000 0000 SYN_REPORT,这里笔者简单理解为与io的flush类似
0003 0039 开始接触设备的唯一标识号,这里为0xc3a, 0xffffffff代表结束接触
0001 014a 标明触摸事件,1代表按下,0代表放开
0001 0145 表明是用手指触摸的,同样1代表按下,0代表放开
0003 0032 点击力度
0003 0035 触摸的x坐标
0003 0036 触摸的y坐标
0003 0030 接触面椭圆长轴,非必需
0003 0031 接触面椭圆短轴,非必需

记录触控事件

cat /dev/input/event1 > /sdcard/tmp.bin

重放触控事件

cat /sdcard/tmp.bin > /dev/input/event1

弱相关

踩坑点,shell中用标准输出会把0x00当作停止符,后面的信息会被截断
echo "17 51 63 65 00 00 00 00 68 89 01 00 00 00 00 00 00 00 00 00 00 00 00 00" | xdd -r -p > /dev/input/event1
可行方法,cat /sdcard/tmp.bin > /dev/input/event1
或者写代码Runtime.getRuntime().exec("su")提升写入权限

参考:
通过向输入设备直接写入数据实现多点连续滑动 https://blog.seeflower.dev/archives/45/#title-6
通过sendevent实现多点连续滑动
https://bbs.kanxue.com/thread-252052.htm
Exploring /dev/input
https://thehackerdiary.wordpress.com/2017/04/21/exploring-devinput-1/
man xxd
https://man.archlinux.org/man/xxd.1.zh_CN
Read-Write data from /dev/test file in android root file system in rooted device from android app
https://stackoverflow.com/questions/29468717/read-write-data-from-dev-test-file-in-android-root-file-system-in-rooted-device

标签:00,EV,getevent,sendevent,0003,dev,ABS,input,解析
From: https://www.cnblogs.com/1314h/p/17862431.html

相关文章

  • 期望最大化(EM)算法:从理论到实战全解析
    本文深入探讨了期望最大化(EM)算法的原理、数学基础和应用。通过详尽的定义和具体例子,文章阐释了EM算法在高斯混合模型(GMM)中的应用,并通过Python和PyTorch代码实现进行了实战演示。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济......
  • 期望最大化(EM)算法:从理论到实战全解析
    本文深入探讨了期望最大化(EM)算法的原理、数学基础和应用。通过详尽的定义和具体例子,文章阐释了EM算法在高斯混合模型(GMM)中的应用,并通过Python和PyTorch代码实现进行了实战演示。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济......
  • Java程序员必备技能:Collections工具类深度解析!
    在之前的文章中,我们学习了单列集合的两大接口及其常用的实现类;在这些接口或实现类中,为我们提供了不少的实用的方法。本篇文章我们来介绍一种java开发者为我们提供了一个工具类,让我们更好的来使用集合Collections工具类Collections是一个操作Set,List,Map等的集合工具类它提......
  • Uboot顶层Makefile解析-1. defconfig过程分析
    1版本号TopMakefile的开头会有版本描述,VERSION是主版本号,PATCHLEVEL是补丁版本号,SUBLEVEL是次版本号,这三个一起构成了uboot的版本号,比如当前的uboot版本号就是“2016.03”。EXTRAVERSION是附加版本信息,NAME是和名字有关的,一般不使用这两个。2MAKEFLAGS有两个特......
  • C\C++ 使用RapidJSON库,轻松解析和生成JSON
    简介  RapidJSON是一个高效的C++JSON解析器和生成器。它专注于性能和易用性,使得处理JSON数据变得简单和快速。RapidJSON支持现代的JSON特性,如嵌套对象、数组、Unicode编码和注释。它的API简洁易用,可以轻松解析和生成JSON数据。无论你的项目需要处理大量的JSON数据,还是只需要解析......
  • 接收网络包的过程——从硬件网卡解析到IP层
    当一些网络包到来触发了中断,内核处理完这些网络包之后,我们可以先进入主动轮询poll网卡的方式,主动去接收到来的网络包。如果一直有,就一直处理,等处理告一段落,就返回干其他的事情。当再有下一批网络包到来的时候,再中断,再轮询poll。这样就会大大减少中断的数量,提升网络处理的效率,这......
  • SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析
    SQLRIGHTJOIN关键字SQLRIGHTJOIN关键字返回右表(table2)中的所有记录以及左表(table1)中的匹配记录。如果没有匹配,则左侧的结果为0条记录。RIGHTJOIN语法SELECTcolumn_name(s)FROMtable1RIGHTJOINtable2ONtable1.column_name=table2.column_name;注意:在某些数据库......
  • SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析
    SQLRIGHTJOIN关键字SQLRIGHTJOIN关键字返回右表(table2)中的所有记录以及左表(table1)中的匹配记录。如果没有匹配,则左侧的结果为0条记录。RIGHTJOIN语法SELECTcolumn_name(s)FROMtable1RIGHTJOINtable2ONtable1.column_name=table2.column_name;注意:在某些数据库......
  • 探秘数字学习新兴:深度解析知识付费系统
    在当今数字化时代,知识付费系统作为一种创新性的学习和知识分享模式正逐渐崭露头角。本文将深入探讨知识付费系统的概念、重要性,并提供一个简单而完整的示例,展示其核心技术和实现方式。概念与重要性知识付费系统是一种基于互联网平台的学习模式,通过用户支付费用获取专业知识和技能。......
  • 解析直播第三方美颜SDK:技术原理与应用
    时下,直播平台和主播们纷纷引入美颜技术,以提升视觉效果和用户体验。而在众多美颜技术中,直播第三方美颜SDK成为许多开发者和平台的首选,因其灵活性和高效性而备受推崇。一、技术原理:美颜算法的精髓第三方美颜SDK的核心在于其先进的美颜算法。这些算法结合了计算机视觉、图像处理和人工......