aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xplatform_tools/android/bin/adb_wait_for_device29
1 files changed, 27 insertions, 2 deletions
diff --git a/platform_tools/android/bin/adb_wait_for_device b/platform_tools/android/bin/adb_wait_for_device
index 0b640d22b4..882cd3fed4 100755
--- a/platform_tools/android/bin/adb_wait_for_device
+++ b/platform_tools/android/bin/adb_wait_for_device
@@ -1,14 +1,39 @@
#!/bin/bash
#
-# Wait for the device to be both attached and booted.
+# Wait for the device to be ready to run tests.
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $SCRIPT_DIR/android_setup.sh
source $SCRIPT_DIR/utils/setup_adb.sh
+function get_battery_level {
+ STATS="$($ADB $DEVICE_SERIAL shell dumpsys batteryproperties)"
+ SPLIT=( $STATS )
+ for i in "${!SPLIT[@]}"; do
+ if [ "${SPLIT[$i]}" = "level:" ]; then
+ echo "${SPLIT[$i+1]}"
+ return
+ fi
+ done
+ echo "Could not determine battery level!" 1>&2
+ echo "0"
+}
+
set -e
-set -x
+# Wait for the device to be connected and fully booted.
while [ "$($ADB $DEVICE_SERIAL shell getprop sys.boot_completed | tr -d '\r')" != "1" ]; do
+ echo "Waiting for the device to be connected and ready."
sleep 5
done
+
+# Wait for battery charge.
+DESIRED_BATTERY_LEVEL=30
+CURRENT_BATTERY_LEVEL="$(get_battery_level)"
+while [ "${CURRENT_BATTERY_LEVEL}" -lt "${DESIRED_BATTERY_LEVEL}" ]; do
+ echo "Battery level is ${CURRENT_BATTERY_LEVEL}; waiting to charge to ${DESIRED_BATTERY_LEVEL}"
+ sleep 5
+ CURRENT_BATTERY_LEVEL="$(get_battery_level)"
+done
+
+echo "Ready!"