본문 바로가기
SW Programming/Android

Android 단말에서 온갖 이벤트를 모니터링, 제어하고 싶다. adb shell getevent

by Crystal.k 2021. 3. 23.
adb shell getevent
Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]
    -t: show time stamps
    -n: don't print newlines
    -s: print switch states for given bits
    -S: print all switch states
    -v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64)
    -d: show HID descriptor, if available
    -p: show possible events (errs, dev, name, pos. events)
    -i: show all device info and possible events
    -l: label event types and names in plain text
    -q: quiet (clear verbosity mask)
    -c: print given number of events then exit
    -r: print rate events are received

 

add device 1: /dev/input/event7
  name:     "magnetic_sensor"
add device 2: /dev/input/event6
  name:     "accelerometer_sensor"
add device 3: /dev/input/event5
  name:     "light_sensor"
add device 4: /dev/input/event4
  name:     "proximity_sensor"
add device 5: /dev/input/event3
  name:     "qpnp_pon"
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 6: /dev/input/event2
  name:     "hbtp_vm"
add device 7: /dev/input/event0
  name:     "meta_event"
could not get driver version for /dev/input/mice, Not a typewriter
add device 8: /dev/input/event1
  name:     "sec_touchscreen"
add device 9: /dev/input/event9
  name:     "hall"
add device 10: /dev/input/event8
  name:     "gpio-keys"
add device 11: /dev/input/event10
  name:     "sec_touchkey"

 

 

adb shell getevent -lt

 

핸드폰으로 확인해보니 센서값들이 실시간으로 와랄랄라 들어와서 이벤트 필터링이 필요할 것 같네요.

cmd에서 getevent 명령어를 실행해 놓고 단말을 클릭하면 cmd창에 이벤트가 주욱주욱 찍히는것을 확인할 수 있다.

 

이게 어떤 좌표로 클릭/스와이프/롱클릭 되고있는지 알려면 좀 더 학습이 필요하긴한데 패턴을 찾는건 귀찮으니깐 남들이 만들어놓은 오픈소스(파서만 잘 뜯어 보면 될 듯)를 참고하자.

github.com/gersseba/android-touchlogger



아 참 그리고 이 이벤트로 input 명령어를 날리면 해당 이벤트를 실행시키기 때문에 단말 제어도 가능함.

아 참 또, 장비별로 event번호별 실제 동작하는 이벤트는 상이할 수 있으니 체크해야함.

 

반응형

댓글