[原创]通过sendevent实现多点连续滑动
0x00 ...
最近在瞎琢磨Android设备的云控,想要实现一个多点滑动的功能。我们知道通过shell执行input swipe x1 y1 x2 y2 t可以实现t毫秒内从坐标(x1, y1)滑动到(x2, y2),滑动完成后模拟的动作就“被抬起”,很难直接通过input实现滑动”转弯“。于是花了半天时间看了一下sendevent的参数含义,简单实现了连续滑动的功能。
0x01 简述
sendevent需要4个参数,如下:use: sendevent device type code value
含义分别是设备、事件类型、事件代码以及传递的数据。
在分析之前可以通过getevent获取事件的数据以便参照,如下为简单滑动后获取的数据:
/dev/input/event0: 0003 0039 00000c3a /dev/input/event0: 0001 014a 00000001 /dev/input/event0: 0001 0145 00000001 /dev/input/event0: 0003 0035 00000124 /dev/input/event0: 0003 0036 00000393 /dev/input/event0: 0003 0031 00000005 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0031 00000006 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0030 00000007 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0030 00000006 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0036 00000391 /dev/input/event0: 0003 0030 00000007 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0036 0000038f /dev/input/event0: 0003 0030 00000006 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0035 00000125 /dev/input/event0: 0003 0036 00000389 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0035 00000126 /dev/input/event0: 0003 0036 00000380 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0035 00000133 /dev/input/event0: 0003 0036 00000353 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0035 0000013a /dev/input/event0: 0003 0036 00000341 /dev/input/event0: 0003 0031 00000005 /dev/input/event0: 0000 0000 00000000 .... /dev/input/event0: 0003 0035 0000031c /dev/input/event0: 0003 0036 000002a3 /dev/input/event0: 0000 0000 00000000 /dev/input/event0: 0003 0039 ffffffff /dev/input/event0: 0001 014a 00000000 /dev/input/event0: 0001 0145 00000000 /dev/input/event0: 0000 0000 00000000
type和code的含义可参照内核源码中的input.h,笔者用的Nexus6P,msm-android-msm-angler-3.10-nougat-mr2,该头文件位于include/uapi/linux/input.h。
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
复制成功
