Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Android

    • 动态化技术

    • 应用开发

    • 系统原理

      • Android 内核 MT 笔记 测试数据
        • getevent/sendevent
          • 模拟关机键
          • 模拟touch
          • 模拟multi-touch
          • get->send 数据转化脚本
      • Android虚拟机
      • 渲染原理
      • 通信机制
    • 语言基础

    • 逆向技术

  • iOS

  • 客户端
  • Android
  • 系统原理
gahing
2020-06-29
目录

Android 内核 MT 笔记 测试数据草稿

# getevent/sendevent

ABS_MT_TRACKING_ID 表示一次接触; -1 代表一个不用的slot;

0003 0039 ffffffff 0003 002f 00000000 转到第一个触点

1指按
/dev/input/event9: 0003 002f 00000000 //转到第一触点
/dev/input/event9: 0003 0030 00000022
/dev/input/event9: 0003 0032 00000022
/dev/input/event9: 0003 003a 00000022
/dev/input/event9: 0003 0035 000001fa
/dev/input/event9: 0003 0036 00000303
/dev/input/event9: 0003 0039 000000df //ID df
/dev/input/event9: 0001 014a 00000001 ACTION_DOWN事件
/dev/input/event9: 0000 0000 00000000



2指按
/dev/input/event9: 0003 0030 00000030
/dev/input/event9: 0003 0032 00000030
/dev/input/event9: 0003 003a 00000030
/dev/input/event9: 0003 002f 00000001 //转到第二触点
/dev/input/event9: 0003 0030 0000001d
/dev/input/event9: 0003 0032 0000001d
/dev/input/event9: 0003 003a 0000001d
/dev/input/event9: 0003 0035 00000279
/dev/input/event9: 0003 0036 0000047b
/dev/input/event9: 0003 0039 000000e0 //ID e0
/dev/input/event9: 0000 0000 00000000





2指抬
/dev/input/event9: 0003 002f 00000000 //第一触点做了些许改动
/dev/input/event9: 0003 0030 00000031
/dev/input/event9: 0003 0032 00000031
/dev/input/event9: 0003 003a 00000031
/dev/input/event9: 0003 002f 00000001 //转到第二触点
/dev/input/event9: 0003 0039 ffffffff //该触点不再使用
/dev/input/event9: 0000 0000 00000000







2指按
/dev/input/event9: 0003 002f 00000000 //第一触点做了些许改动
/dev/input/event9: 0003 0030 00000034
/dev/input/event9: 0003 0032 00000034
/dev/input/event9: 0003 003a 00000034
/dev/input/event9: 0003 002f 00000001 //转到第二触点
/dev/input/event9: 0003 0030 00000025
/dev/input/event9: 0003 0032 00000025
/dev/input/event9: 0003 003a 00000025
/dev/input/event9: 0003 0035 0000027a
/dev/input/event9: 0003 0036 0000047c
/dev/input/event9: 0003 0039 000000e1 //二触点新ID e1
/dev/input/event9: 0000 0000 00000000





1指抬
/dev/input/event9: 0003 002f 00000000 //转到第一触点
/dev/input/event9: 0003 0039 ffffffff //该触点不再使用
/dev/input/event9: 0003 002f 00000001 //转到第二触点
/dev/input/event9: 0003 0030 00000028
/dev/input/event9: 0003 0032 00000028
/dev/input/event9: 0003 003a 00000028
/dev/input/event9: 0000 0000 00000000



2指抬
/dev/input/event9: 0003 0039 ffffffff //该触点不再使用
/dev/input/event9: 0001 014a 00000000 //ACTION_UP事件
/dev/input/event9: 0000 0000 00000000

注:002f 的指表示有点像手指头的ID 而不是第几个触点; 举例:1指按->2指按->1指抬->1指按(此时会调用0003 002f 00000000而不是将原2指触点改为0)

# 模拟关机键

shell@htc_a51dtul:/ $ sendevent /dev/input/event2 1 116 1
shell@htc_a51dtul:/ $ sendevent /dev/input/event2 0 0 0
shell@htc_a51dtul:/ $ sendevent /dev/input/event2 1 116 0
shell@htc_a51dtul:/ $ sendevent /dev/input/event2 0 0 0

# 模拟touch

通过getevent得到的值

/dev/input/event9: 0003 0030 00000017
/dev/input/event9: 0003 0032 00000017
/dev/input/event9: 0003 003a 00000017
/dev/input/event9: 0003 0035 00000325
/dev/input/event9: 0003 0036 00000358
/dev/input/event9: 0003 0039 00000235
/dev/input/event9: 0001 014a 00000001
/dev/input/event9: 0000 0000 00000000
/dev/input/event9: 0003 0039 ffffffff
/dev/input/event9: 0001 014a 00000000
/dev/input/event9: 0000 0000 00000000

sendevent产生相同的效果

sendevent /dev/input/event9 3 48 23
sendevent /dev/input/event9 3 50 23
sendevent /dev/input/event9 3 58 23
sendevent /dev/input/event9 3 53 805
sendevent /dev/input/event9 3 54 856
sendevent /dev/input/event9 1 330 1
sendevent /dev/input/event9 0 0 0
sendevent /dev/input/event9 3 57 -1
sendevent /dev/input/event9 1 330 0
sendevent /dev/input/event9 0 0 0

# 模拟multi-touch

sendevent /dev/input/event9 3 47 0
sendevent /dev/input/event9 3 48 34
sendevent /dev/input/event9 3 50 34
sendevent /dev/input/event9 3 58 34
sendevent /dev/input/event9 3 53 506
sendevent /dev/input/event9 3 54 770
sendevent /dev/input/event9 3 57 223
sendevent /dev/input/event9 1 330 1 
sendevent /dev/input/event9 0 0 0

sendevent /dev/input/event9 3 48 48
sendevent /dev/input/event9 3 50 48
sendevent /dev/input/event9 3 58 48
sendevent /dev/input/event9 3 47 1
sendevent /dev/input/event9 3 48 39
sendevent /dev/input/event9 3 50 39
sendevent /dev/input/event9 3 58 39
sendevent /dev/input/event9 3 53 633
sendevent /dev/input/event9 3 54 1147
sendevent /dev/input/event9 3 57 224
sendevent /dev/input/event9 0 0 0

sendevent /dev/input/event9 3 47 0
sendevent /dev/input/event9 3 48 49
sendevent /dev/input/event9 3 50 49
sendevent /dev/input/event9 3 58 49
sendevent /dev/input/event9 3 47 1
sendevent /dev/input/event9 3 57 -1
sendevent /dev/input/event9 0 0 0
  
sendevent /dev/input/event9 3 47 0
sendevent /dev/input/event9 3 48 52
sendevent /dev/input/event9 3 50 52
sendevent /dev/input/event9 3 58 52
sendevent /dev/input/event9 3 47 1
sendevent /dev/input/event9 3 48 37
sendevent /dev/input/event9 3 50 37
sendevent /dev/input/event9 3 58 37
sendevent /dev/input/event9 3 53 634
sendevent /dev/input/event9 3 54 1000
sendevent /dev/input/event9 3 57 225 
sendevent /dev/input/event9 0 0 0

sendevent /dev/input/event9 3 47 0
sendevent /dev/input/event9 3 57 -1
sendevent /dev/input/event9 3 47 1
sendevent /dev/input/event9 3 48 40
sendevent /dev/input/event9 3 58 40
sendevent /dev/input/event9 3 50 40
sendevent /dev/input/event9 0 0 0

sendevent /dev/input/event9 3 57 -1
sendevent /dev/input/event9 1 330 0
sendevent /dev/input/event9 0 0 0

# get->send 数据转化脚本

编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56
adb控制avd
Android虚拟机

← adb控制avd Android虚拟机→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2024 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式