2023-02-15 03:01:51 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# Writes a log with a key and a value
|
|
|
|
|
# as a JSON object on the standard output.
|
|
|
|
|
function write_log() {
|
|
|
|
|
echo "{ \"type\": \"$1\", \"value\": \"$2\" }"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Writes a state update on the standard output.
|
|
|
|
|
function update_state() {
|
|
|
|
|
write_log "state-update" "$1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Waits for the emulator to boot and writes
|
|
|
|
|
# state updates on the standard output.
|
|
|
|
|
function wait_for_boot() {
|
2023-02-25 15:50:36 +00:00
|
|
|
update_state "ANDROID_BOOTING"
|
2023-02-15 03:01:51 +00:00
|
|
|
|
|
|
|
|
# Waiting for the ADB server to start.
|
|
|
|
|
while [ -n "$(adb wait-for-device > /dev/null)" ]; do
|
|
|
|
|
adb wait-for-device
|
|
|
|
|
sleep 1
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Waiting for the boot sequence to be completed.
|
|
|
|
|
COMPLETED=$(adb shell getprop sys.boot_completed | tr -d '\r')
|
|
|
|
|
while [ "$COMPLETED" != "1" ]; do
|
|
|
|
|
COMPLETED=$(adb shell getprop sys.boot_completed | tr -d '\r')
|
|
|
|
|
sleep 5
|
|
|
|
|
done
|
2023-02-25 15:50:36 +00:00
|
|
|
update_state "ANDROID_READY"
|
2023-02-15 03:01:51 +00:00
|
|
|
}
|