14年的时侯给兄弟义务做的一个android手游手柄工具的一部分功能,发觉这个功能用处还是挺多的,特别是各种群控黑产,总结了一个小demo,有兴趣的人可以看一下。

手游手柄方案简述

一般手游手柄工具把手柄的键值转化成屏幕操作有两种方式,一种是通过和游戏厂商合作,通过sdk等方式,双方协商好对应的按键触发什么操作,第二种就是把键值转化成手机的屏幕触摸事件。

第一种方法好处在于方便,用户不需要多余的操作直接能用,坏处嘛,除了模拟器游戏,其它游戏都要一个一个去谈商务了。

第二种方法需要root手机或者在电脑端通过adb工具调起一个具有system权限的过程用于注入事件,不过这种方式是通用型的,对于所有游戏都管用。

第一种方法我们这里不讨论了。第二种方法实现了可以作为通过工具使用。

注入触屏事件方法

注入触屏事件主要途径是注入事件到android的input子系统,这里的方法也有两种,一是操作dev设备下面的input子设备,直接通过设备进行注入,这种方法一定要求android手机必须已root,在现在手机厂商越来越注重安全的情况下,特别是android 正式采用SELinux安全机制后,root手机已经是一件很难的事情了。

第二种就是通过操作input services来实现注入事件,其实就是使用inputmanager的injectInputEvent接口,这种方法需要在系统中有一个具有system权限的进程来操作input services。

我们这个小工具就是采用的第二种方法。

项目地地址:https://github.com/doubleghost/injectkey

android事件注入,非root方式注入触摸事件。

这个功能是一个android手柄手游工具的一部分,用于注入触摸事件。这个功能可以用在一些需要自动化操作android手机的地方,比如自动化测试,或者群控刷榜等。

PCTool:

一个PC使用的adb命令工具,用于调起我们的触屏映射进程(injectserver)。PCTool用于非root手机,如果手机已root,不需要使这个工具。

injectserver:

进行触摸事件注入,如果是root手机启动,它就具有root权限,如果是adb启动,则具有system权限。

injectservertest:

测试程序,通过socket往injectserver发送触模事件指令。

使用说明:

1.安装injectservertest应用到手机,并启动。

2.如果是已root手机,直接点击开始键值映射,直到提示映射成功。

3.如果是没有root的手机,需要双击PCTool工具里面的Start.bat。直接到提示injectservce success!,这时在应用上点击开始键值映射,会直接提示已成功。

4.点击测试。按home键回桌面,会看到桌面在自动划动。