machinery
machinery

Reputation: 6290

Dump input device file using getevent tool on Android

I have a rooted Android 7 phone and I would like to dump unix input event files. Using adb I could do it using the following command:

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

This will dump the event7 file into recorded_touch_events.txt. But this only works when the phone is connected by usb cable with the PC. Using Android I can dump files with the following code:

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();
            } 
}

In this way, I could store every read line in a text file.

Are there other approaches (probably faster ones) for directly dumping the event file?

Upvotes: 0

Views: 1038

Answers (2)

Alex P.
Alex P.

Reputation: 31686

getevent is used to print input events out in human readable form. For example during interactive debug session. You do not need to use getevent for just dumping or any other computer processing task. Just open and read the input file. The event record format is very simple.

Upvotes: 1

Disney Program
Disney Program

Reputation: 310

Certainly No, you are doing it right.

Upvotes: 0

Related Questions