Android 실제 시스템을 재부팅하고 잠금을 해제하기 전에 자동으로 수행됩니다.
6116 단어 Android
사용한 실기는 여기에 있다.
SO-02E
장치 재부팅 후 화면 잠금 해제
먼저 재부팅
$ adb reboot
이것은 원피스로 매우 간단하다.
재부팅 완료 대기 중
adb
wait-for-device
(장치가 작동할 때까지 기다렸다가 매개 변수 조작을 실행)를 사용하면 해결할 수 없습니다.
전원이 연결되는 순간 다음 동작이 시작되었다.
adb를 사용하여 화면을 잠글 때까지 기다립니다. 비교적 간단한 방법을 찾지 못하기 때문에 여기에 사용합니다sleep
.
리부트 지시를 하고 1분 후에 시동을 걸면 끝나는 것 같아서 신중을 기하기 위해 2분간 여기서 기다릴게요.$ sleep 2m
잠금 해제
SO-02E의 록 화면은 바로 이런 느낌입니다.
이번에는 비밀번호 자물쇠를 설정하지 않았기 때문에 중앙 하부의 잠금 해제 버튼을 만지면 잠금 해제가 가능하다.
무슨 키보드로 풀 수 있을지 모르겠어요.
adb screen unlock 이런 걸로 푸념을 해요. 해제 방법의 후보를 많이 찾을 수 있지만, 대부분 AVD(시뮬레이터)를 대상으로 한다.
이번 작업 대상 SO-02Eadb shell input keyevent 82
는 종료해도 아무 일도 일어나지 않습니다.
나는 몇 가지 버튼 코드를 보냈지만 반응이 없었다.
어쩔 수 없이 화면 잠금 해제 버튼을 눌러 잠금 해제를 시도했다.
잠금 해제 버튼의 좌표 찾기
shell getevent
를 사용하면 터미널 장치 파일의 변화를 볼 수 있습니다.
또한 -i
디바이스 파일의 개요를 옵션으로 표시할 수 있습니다.
먼저 이 옵션을 사용하여 터치 센서의 장치 파일을 찾습니다.
SO-02E의 경우/dev/input/event1
는 화면의 터치 센서에 대응하는 장치 파일입니다.$ adb shell getevent -i /dev/input/event1
add device 1: /dev/input/event1
bus: 0018
vendor 0001
product 0001
version 0001
name: "clearpad"
location: ""
id: ""
version: 1.0.1
events:
ABS (0003): 002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0
0030 : value 0, min 0, max 16, fuzz 0, flat 0, resolution 0
0031 : value 0, min 0, max 16, fuzz 0, flat 0, resolution 0
0034 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
0035 : value 0, min 0, max 1079, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 1919, fuzz 0, flat 0, resolution 0
0039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
003a : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
input props:
<none>
이번-l
행사 명칭과 함께 옵션에서 어떤 사건이 발생했는지 관찰한다.$ adb shell getevent -l /dev/input/event1
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_POSITION_X 000002f4
EV_ABS ABS_MT_POSITION_Y 0000043d
EV_ABS ABS_MT_PRESSURE 0000004e
EV_ABS ABS_MT_TOUCH_MAJOR 00000005
EV_ABS ABS_MT_TOUCH_MINOR 00000004
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 0000043b
EV_ABS ABS_MT_PRESSURE 00000050
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 00000439
EV_ABS ABS_MT_PRESSURE 00000051
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002f3
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002f1
EV_ABS ABS_MT_POSITION_Y 0000043a
EV_ABS ABS_MT_PRESSURE 00000050
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002eb
EV_ABS ABS_MT_POSITION_Y 0000043c
EV_ABS ABS_MT_PRESSURE 00000052
EV_ABS ABS_MT_TOUCH_MINOR 00000003
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002dd
EV_ABS ABS_MT_POSITION_Y 0000043f
EV_ABS ABS_MT_PRESSURE 00000053
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002ca
EV_ABS ABS_MT_PRESSURE 00000052
EV_ABS ABS_MT_TOUCH_MINOR 00000004
EV_SYN SYN_REPORT 00000000
(以下略)
ABS_MT_POSITION_X
손가락이 닿는 곳의 화면 X 좌표인 것 같은데ABS_MT_POSITION_Y
역시 Y 좌표다.
잠금 화면에서 잠금 해제 버튼을 클릭하여 버튼의 좌표를 찾습니다.$ adb shell getevent -l /dev/input/event1
EV_ABS ABS_MT_TRACKING_ID 00000001
EV_ABS ABS_MT_POSITION_X 000001ef
EV_ABS ABS_MT_POSITION_Y 000005fb
EV_ABS ABS_MT_PRESSURE 00000051
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000001ed
EV_ABS ABS_MT_POSITION_Y 000005f9
EV_ABS ABS_MT_PRESSURE 00000057
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 000005f7
EV_ABS ABS_MT_PRESSURE 00000058
EV_ABS ABS_MT_TOUCH_MINOR 00000005
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 000005f5
EV_ABS ABS_MT_PRESSURE 00000057
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000001ef
EV_ABS ABS_MT_PRESSURE 0000004d
EV_ABS ABS_MT_TOUCH_MINOR 00000003
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_TRACKING_ID ffffffff
EV_SYN SYN_REPORT 00000000
클릭만 해도 손가락이 흔들리는 것처럼 좌표가 업데이트되는 움직임이 많다.
요컨대 X와 Y의 최신 값을 찾으면 다음은 잠금 해제 버튼을 만질 때의 좌표인 것 같다.
$ adb reboot
$ sleep 2m
$ adb shell getevent -i /dev/input/event1
add device 1: /dev/input/event1
bus: 0018
vendor 0001
product 0001
version 0001
name: "clearpad"
location: ""
id: ""
version: 1.0.1
events:
ABS (0003): 002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0
0030 : value 0, min 0, max 16, fuzz 0, flat 0, resolution 0
0031 : value 0, min 0, max 16, fuzz 0, flat 0, resolution 0
0034 : value 0, min -1, max 1, fuzz 0, flat 0, resolution 0
0035 : value 0, min 0, max 1079, fuzz 0, flat 0, resolution 0
0036 : value 0, min 0, max 1919, fuzz 0, flat 0, resolution 0
0039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
003a : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0
input props:
<none>
$ adb shell getevent -l /dev/input/event1
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_TRACKING_ID 00000000
EV_ABS ABS_MT_POSITION_X 000002f4
EV_ABS ABS_MT_POSITION_Y 0000043d
EV_ABS ABS_MT_PRESSURE 0000004e
EV_ABS ABS_MT_TOUCH_MAJOR 00000005
EV_ABS ABS_MT_TOUCH_MINOR 00000004
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 0000043b
EV_ABS ABS_MT_PRESSURE 00000050
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 00000439
EV_ABS ABS_MT_PRESSURE 00000051
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002f3
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002f1
EV_ABS ABS_MT_POSITION_Y 0000043a
EV_ABS ABS_MT_PRESSURE 00000050
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002eb
EV_ABS ABS_MT_POSITION_Y 0000043c
EV_ABS ABS_MT_PRESSURE 00000052
EV_ABS ABS_MT_TOUCH_MINOR 00000003
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002dd
EV_ABS ABS_MT_POSITION_Y 0000043f
EV_ABS ABS_MT_PRESSURE 00000053
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000002ca
EV_ABS ABS_MT_PRESSURE 00000052
EV_ABS ABS_MT_TOUCH_MINOR 00000004
EV_SYN SYN_REPORT 00000000
(以下略)
$ adb shell getevent -l /dev/input/event1
EV_ABS ABS_MT_TRACKING_ID 00000001
EV_ABS ABS_MT_POSITION_X 000001ef
EV_ABS ABS_MT_POSITION_Y 000005fb
EV_ABS ABS_MT_PRESSURE 00000051
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000001ed
EV_ABS ABS_MT_POSITION_Y 000005f9
EV_ABS ABS_MT_PRESSURE 00000057
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 000005f7
EV_ABS ABS_MT_PRESSURE 00000058
EV_ABS ABS_MT_TOUCH_MINOR 00000005
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_Y 000005f5
EV_ABS ABS_MT_PRESSURE 00000057
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_POSITION_X 000001ef
EV_ABS ABS_MT_PRESSURE 0000004d
EV_ABS ABS_MT_TOUCH_MINOR 00000003
EV_SYN SYN_REPORT 00000000
EV_ABS ABS_MT_TRACKING_ID ffffffff
EV_SYN SYN_REPORT 00000000
ABS_MT_POSITION_X 000001ef
ABS_MT_POSITION_Y 000005f5
(495, 1525)
좌표를 알면 shell input touchscreen tap
명령으로 좌표를 보내면 된다.잠긴 화면으로 명령을 보냅니다.
$ adb shell input touchscreen tap 495 1525
잠금 해제 성공!총결산
신중을 기하기 위해 설비 조작을 기다리는 동안 마지막으로 다시 시작할 때부터 잠금을 풀 때까지 기다린다.$ adb wait-for-device reboot && sleep 2m && adb wait-for-device shell input touchscreen tap 495 1525
간혹 메모리 부족 상태에 빠져 테스트가 정상적으로 작동하지 못하게 되면 해소할 수 있다.
Reference
이 문제에 관하여(Android 실제 시스템을 재부팅하고 잠금을 해제하기 전에 자동으로 수행됩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kikuchy/items/7b4883797a25d66a181a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ adb wait-for-device reboot && sleep 2m && adb wait-for-device shell input touchscreen tap 495 1525
Reference
이 문제에 관하여(Android 실제 시스템을 재부팅하고 잠금을 해제하기 전에 자동으로 수행됩니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kikuchy/items/7b4883797a25d66a181a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)