Дамп файла ввода устройства с помощью инструмента Getevent на Android - PullRequest
0 голосов
/ 12 ноября 2018

У меня рутованный телефон Android 7, и я хотел бы вывести файлы событий ввода Unix.Используя adb, я мог бы сделать это с помощью следующей команды:

adb shell getevent -t /dev/input/event7 > recorded_touch_events.txt

Это выгрузит файл event7 в записанный_туш_венец.txt.Но это работает только тогда, когда телефон соединен USB-кабелем с ПК.С помощью Android я могу создавать дампы файлов со следующим кодом:

th = new Thread(new Runnable(){
        private Process exec;

        @Override
        public void run() {
            try {
                exec = Runtime.getRuntime().exec(new String[]{"su","-c","getevent -t /dev/input/event7"});
                InputStreamReader is = new InputStreamReader(
                        exec.getInputStream());
                String s;
                BufferedReader br = new BufferedReader(is);
                while(((s = br.readLine()) != null) && run){
                    // write line to text file
                }
                is.close();
                exec.destroy();
            } catch (IOException e) {
                e.printStackTrace();
            } 
}

Таким образом, я могу сохранить каждую строку чтения в текстовом файле.

Существуют ли другие подходы (возможно, более быстрые)для непосредственного сброса файла события?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

getevent используется для печати входных событий в удобочитаемой форме. Например, во время сеанса интерактивной отладки. Вам не нужно использовать getevent для только для дампа или любой другой задачи обработки компьютера. Просто откройте и прочитайте входной файл. Формат записи события очень простой .

0 голосов
/ 12 ноября 2018

Конечно Нет , вы все делаете правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...