bagaimana cara adb menunggu-untuk-perangkat sampai layar beranda muncul?

18

Saya perlu membuka kunci layar saya menggunakan adb, dan menunggu-untuk-perangkat keluar terlalu dini (ketika perangkat booting), dan membuka kunci layar gagal. Apakah ada cara untuk mendeteksi layar beranda itu, jadi saya bisa mengaktifkan kunci layar?

Ini adalah perintah yang saya gunakan untuk membuka kunci layar -

adb wait-for-device shell input keyevent 82
Umang
sumber

Jawaban:

23

baik tunggu-untuk-perangkat, karena Anda sudah menyadari hanya menunggu sampai daemon adb dimulai dengan benar. Ini sudah pada saat init. Untuk memeriksa boot lengkap, Anda tidak dapat memasang iklan di skrip Anda seperti:

dalam pseudo:

  1. tunggu-untuk-perangkat
  2. selama getprop sys.boot_completed! = 1 tidur beberapa detik periksa getprop sys.boot_completed lagi
  3. tombol input shellmencapai 82

Ini seharusnya bekerja.

Sesuatu seperti ini:

#!/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

Ini tidak diuji jadi waspadai kesalahan potensial

dibagi demi nol
sumber
Harap edit jawaban Anda agar mudah dibaca. Anda memiliki jawaban yang valid, tetapi sedikit kejelasan akan membantu semua orang. Terima kasih
HasH_BrowN
jawabannya sekarang diedit. Semoga ini bisa membantu Anda :)
dibagi-oleh-nol
jawaban yang bagus +1, sekarang orang lain akan dapat mengikutinya. Jangan lupa menambahkan " Selalu lakukan pencadangan ", untuk saat-saat yang tidak disengaja;)
HasH_BrowN
2
Saya menemukan bahwa hasil getpropmemiliki kereta kembali setelah itu, jadi mengubah adbperintah untuk $(adb shell getprop sys.boot_completed | tr -d '\r')melakukan trik. Ini hanya memangkas karakter carriage return.
CoatedMoose
@ dibagi-oleh-nol harap modifikasi jawaban Anda untuk menyertakan pemangkasan yang disebutkan oleh CoatedMoose. Umang tolong terima itu sebagai jawaban juga.
Jayshil Dave
9

Ini adalah pertanyaan lama dan di luar topik, tetapi di sini adalah bagaimana melakukannya dalam satu baris:

adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'
Пионерка
sumber
0

Inilah yang saya pikirkan:

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"
Andy Balaam
sumber