【发布时间】:2014-08-10 20:28:49
【问题描述】:
有人知道如何在 Android 上转储设备的 HID 描述符吗?我想获得几个 HID 描述符的解析转储并比较它们。干杯!
【问题讨论】:
有人知道如何在 Android 上转储设备的 HID 描述符吗?我想获得几个 HID 描述符的解析转储并比较它们。干杯!
【问题讨论】:
您将需要使用lsusb command。还有一个graphical version on GitHub。
【讨论】:
如果您在 adb shell 中使用 'getevent -S' 命令,很容易列出所有输入设备,如下所示:
I:\Users\linwei>adb shell getevent -S
add device 1: /dev/input/event6
name: "gpio-keys"
add device 2: /dev/input/event2
name: "alps"
add device 3: /dev/input/event5
name: "7k_handset"
add device 4: /dev/input/event4
name: "proximity_sensor"
add device 5: /dev/input/event3
name: "accelerometer_sensor"
add device 6: /dev/input/event1
name: "7x27a_kp"
add device 7: /dev/input/event0
name: "sec_touchscreen"
如果您想查看其中之一的详细信息。使用 'getevent -i $eventname' 显示如下:
I:\Users\linwei>adb shell getevent -i /dev/input/event1
add device 1: /dev/input/event1
bus: 0000
vendor 0000
product 0000
version 0000
name: "7x27a_kp"
location: ""
id: ""
version: 1.0.1
events:
KEY (0001): 0072 0073
input props:
<none>
因此,只需找到您隐藏的设备名称并打印可能的信息。 如果你想在 Android 上运行这些命令。可以使用 Runtime 来执行:
th = new Thread(new Runnable(){
private Process exec;
@Override
public void run() {
try {
exec = Runtime.getRuntime().exec(new String[]{"su","-c","getevent -i " + device});
InputStreamReader is = new InputStreamReader(
exec.getInputStream());
BufferedReader br = new BufferedReader(is);
String s;
while(((s = br.readLine()) != null) && run){
...
}
is.close();
exec.destroy();
} catch (IOException e) {
e.printStackTrace();
}
}
【讨论】: