我目前正在嘗試將數據寫入到我在手機上運行的HID驅動程序。如果我在shell(通過adb)中運行以下命令echo -e \\x00\\x00\\x07\\x04\\x00\\x00\\x00 > /dev/hidg0 && echo -e \\x00\\x00\\x00\\x00\\x00\\x00\\x00 > /dev/hidg0
,則在連接到設備的計算機上輸入正確的字符,在本例中爲da。然而,如果我在Android應用程序發送相同的命令,像這樣Android根應用程序回聲不能使用設備驅動程序
Runtime shell = Runtime.getRuntime();
Process p = shell.exec("su");
DataOutputStream out = new DataOutputStream(p.getOutputStream());
out.writeBytes("echo -e \\x00\\x00\\x07\\x04\\x00\\x00\\x00 > /dev/hidg0 && echo -e \\x00\\x00\\x00\\x00\\x00\\x00\\x00 > /dev/hidg0\n");
2個單引號印刷,但沒有別的。我已經證明,該應用程序正在通過將文件寫入只能由root加以認可的位置來獲得root權限。
那麼,爲什麼像這樣的命令不像在拋出流程類的shell中採用相同的方式呢?有沒有人有任何建議,我應該如何發送數據到我的設備驅動程序?
感謝 阿德里安
PS我也有試過shell.exec("echo -e \\x00\\x00\\x07\\x04\\x16\\x06\\x00 > /dev/hidg0 && echo -e \\x00\\x00\\x00\\x00\\x00\\x00\\x00 > /dev/hidg0");
但是這給我什麼
完美工作。不能相信我沒有看到它。謝謝 – Darc