답변:
adb 데몬이 올바르게 시작될 때까지만 기다렸다는 것을 이미 알고 있으므로 장치 대기 상태입니다. 이것은 이미 초기 상태입니다. 완전한 부팅을 확인하기 위해 다음과 같은 스크립트를 광고 할 수 없습니다.
의사로 :
이 작동합니다.
이 같은:
#!/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
이것은 테스트되지 않았으므로 잠재적 인 실수를 알고 있어야합니다
getprop
캐리지 리턴이 있다는 것을 알았 으므로 adb
명령을 변경 $(adb shell getprop sys.boot_completed | tr -d '\r')
하여 트릭을 수행했습니다. 이것은 캐리지 리턴 문자를 잘라내는 것입니다.
내가 생각해 낸 것은 다음과 같습니다.
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"