วิธี adb รออุปกรณ์จนกว่าหน้าจอหลักปรากฏขึ้น


18

ฉันต้องปลดล็อกหน้าจอโดยใช้ adb และรอให้อุปกรณ์ออกมาเร็วเกินไป (เมื่ออุปกรณ์กำลังบูท) และการปลดล็อกหน้าจอล้มเหลว มีวิธีตรวจจับที่หน้าจอหลักหรือไม่ดังนั้นฉันจึงสามารถปลดล็อกหน้าจอได้หรือไม่

นี่คือคำสั่งที่ฉันใช้เพื่อปลดล็อกหน้าจอ -

adb wait-for-device shell input keyevent 82

คำตอบ:


23

รออุปกรณ์อย่างดีเนื่องจากคุณรู้แล้วว่าจะรอจนกระทั่ง adb daemon เริ่มต้นอย่างถูกต้อง นี่เป็นเวลาเริ่มต้นแล้ว ในการตรวจสอบการบูตที่สมบูรณ์คุณไม่สามารถโฆษณาสคริปต์ของคุณดังนี้:

ในหลอก:

  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

คำตอบถูกแก้ไขแล้ว หวังว่านี่จะช่วยคุณ :)
หารด้วยศูนย์

คำตอบที่ดี +1 ตอนนี้คนอื่น ๆ จะสามารถติดตามได้ อย่าลืมเพิ่ม " ทำการสำรองข้อมูลเสมอ " ในช่วงเวลาที่ไม่ได้ตั้งใจ;)
HasH_BrowN

2
ฉันพบว่าผลลัพธ์ของgetpropการขึ้นadbบรรทัดใหม่กลับมาหลังจากนั้นจึงเปลี่ยนคำสั่งให้$(adb shell getprop sys.boot_completed | tr -d '\r')ทำเคล็ดลับ นี่เป็นเพียงการตัดทอนอักขระการรับคืน
เคลือบผิว

@ หารด้วยศูนย์โปรดแก้ไขคำตอบของคุณเพื่อรวมการตัดแต่งที่กล่าวถึงโดย 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.