홈 화면이 나타날 때까지 장치 대기를 어떻게 adb합니까?


18

adb를 사용하여 화면을 잠금 해제해야하고 장치를 부팅 할 때 장치 대기가 너무 일찍 종료되고 화면 잠금 해제에 실패합니다. 홈 화면을 감지하여 화면 잠금을 해제 할 수있는 방법이 있습니까?

이것은 화면 잠금을 해제하는 데 사용하는 명령입니다.

adb wait-for-device shell input keyevent 82

답변:


23

adb 데몬이 올바르게 시작될 때까지만 기다렸다는 것을 이미 알고 있으므로 장치 대기 상태입니다. 이것은 이미 초기 상태입니다. 완전한 부팅을 확인하기 위해 다음과 같은 스크립트를 광고 할 수 없습니다.

의사로 :

  1. 장치 대기
  2. getprop sys.boot_completed! = 1 초 동안 잠자기 상태 인 경우 getprop sys.boot_completed를 다시 확인하십시오.
  3. 쉘 입력 키 이벤트 82

이 작동합니다.

이 같은:

#!/bin/bash

adb wait-for-device

A=$(adb shell getprop sys.boot_completed | tr -d '\r')

while [ "$A" != "1" ]; do
        sleep 2
        A=$(adb shell getprop sys.boot_completed | tr -d '\r')
done

adb shell input keyevent 82

이것은 테스트되지 않았으므로 잠재적 인 실수를 알고 있어야합니다


쉽게 읽을 수 있도록 답변을 수정하십시오. 당신은 올바른 답변을 가지고 있지만 약간의 명확성은 모든 사람을 도울 것입니다. 감사합니다
HasH_BrowN

답변이 수정되었습니다. 희망이 도움이되기를 바랍니다 :)
0으로 나누기

좋은 답변 +1, 이제 다른 사람들이 따라갈 수 있습니다. 우발적 인 순간 에 " 항상 백업 수행 "을 추가하는 것을 잊지
마십시오

2
나는 그 결과에 getprop캐리지 리턴이 있다는 것을 알았 으므로 adb명령을 변경 $(adb shell getprop sys.boot_completed | tr -d '\r')하여 트릭을 수행했습니다. 이것은 캐리지 리턴 문자를 잘라내는 것입니다.
CoatedMoose

@ divided-by-zero CoatedMoose에서 언급 한 트리밍을 포함하도록 답변을 수정하십시오. Umang도 답변으로 받아주십시오.
Jayshil Dave

9

이것은 오래된 질문이며 경계선을 벗어난 주제이지만 한 줄로 수행하는 방법은 다음과 같습니다.

adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'

0

내가 생각해 낸 것은 다음과 같습니다.

adb wait-for-device shell <<ENDSCRIPT
echo -n "Waiting for device to boot "
echo "" > /data/local/tmp/zero
getprop dev.bootcomplete > /data/local/tmp/bootcomplete
while cmp /data/local/tmp/zero /data/local/tmp/bootcomplete; do 
{
    echo -n "."
    sleep 1
    getprop dev.bootcomplete > /data/local/tmp/bootcomplete
}; done
echo "Booted."
exit
ENDSCRIPT

echo "Waiting 30 secs for us to be really booted"
sleep 30

echo "Unlocking screen"
adb shell "input keyevent 82"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.