현재 휴대 전화에서 실행중인 HID 드라이버에 데이터를 쓰려고합니다. (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 루트 앱 에코가 장치 드라이버와 작동하지 않습니다.
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 작은 따옴표가 인쇄되지만 다른 것은 표시되지 않습니다. 루트 권한으로 만 액세스 할 수있는 위치에 파일을 작성하여 앱이 루트 권한을 얻고 있음을 증명했습니다.
그렇다면이 명령은 쉘에서 프로세스 클래스를 던진 것과 같은 방식으로 작동하지 않습니다. 그리고 아무도 내 장치 드라이버에 데이터를 보내야하는 방법에 대한 제안이 있습니까?
감사 아드리안
내가 또한 shell.exec("echo -e \\x00\\x00\\x07\\x04\\x16\\x06\\x00 > /dev/hidg0 && echo -e \\x00\\x00\\x00\\x00\\x00\\x00\\x00 > /dev/hidg0");
을 시도했지만이 나에게 아무것도주지 않는다 PS는
완벽하게 작업했습니다. 내가 그것을 보지 못했다고 생각하지 않는다. 감사 – Darc