输入事件录制与回放

<b>厂商的不同,输入事件的设备节点不一样等,都可能会导致 sendevent 能否正常使用的原因。 </b>

首先通过如下命令查看设备中含有的所有输入设备信息:

shell@PD1613:/proc $ cat /proc/bus/input/devices
cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="qpnp_pon"
P: Phys=qpnp_pon/input0
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=bbk_drivers_log event0
B: PROP=40
B: EV=3
B: KEY=140000 0 0 0

I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/devices/soc/soc:gpio_keys/input/input1
U: Uniq=
H: Handlers=bbk_drivers_log event1
B: PROP=0
B: EV=3
B: KEY=40000000 0 0 0 0 0 0 10000 0 0 0 0 0 0 0 0 0 0 0 0 80000 0 0 0

I: Bus=0018 Vendor=dead Product=beef Version=28bb
N: Name="goodix-ts"
P: Phys=l??
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=sysrq mdss_fb kgsl event2
B: PROP=2
B: EV=b
B: KEY=16000000 0 0 8000 680 0 44002 41060000
B: ABS=2658000 0

其中, 字段含義如下:

I line:这行包含身份信息,显示了 bus type 是 3 (usb), vendor, product, version等信息。
N line:这行包含了名字信息。
P line:这行包含了物理设备信息。
H line: 这行包含了与设备关联的 handler drivers。
B line: 这些行包含了显示设备能力的一些位域 (bitfield)。

常見proc信息獲取方式:

$ cat /proc/cpuinfo                    // 查看CPU信息
$ cat /proc/meminfo                  // 查看内存信息
$ cat /proc/bus/usb/devices      // 查看USB设备  (lsusb)
$ cat /proc/bus/input/devices    // 查看键盘和鼠标等輸入設備 
$ cat /proc/interrupts                 // 查看中断信息

通過如下命令可以獲取當前設備的輸入事件日志

$ getevent -l

通过上述命令可以获得当前屏幕,按键的事件,同时android也提供将这些事件回放给设备的方式即 sendevent 命令,格式如下:

# sendevent [/dev/input/event2] <事件类型> <事件名称> <参数>
比如
$ sendevent /dev/input/event2  3  114 1    // KEY_VOLUMEDOWN  KEY_DOWN
$ sendevent /dev/input/event2  0  0  0      // EV_SYN   SYN_REPORT

如上述样例,每条 sendevent 都需要通过 EV_SYN 事件将 KEY 事件提交给系统。

<b>如文章开始提到的,sendevent 命令需要注意 设备节点是否是当前设备的输入节点等,否则都会导致执行无效。
不同厂商的不同产品都可能不一样,其适配量比较大</b>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,956评论 1 13
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,965评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • 相由心生,心正则行止端雅;言为情表,情至则字绽莲花。自古做学问者,必得向《诗》《书》经传,苦心钻研,“将棘围守暖,...
    一刀斋阅读 721评论 2 4
  • 我和你 有时很远 有时很近 远在慵懒的意识 近在觉醒的初心 不谓穷极至道 韧在鲲鹏万里 时间延续整合记忆 空间伸延...
    Airplane阅读 328评论 0 0