Skip to content

Commit 4f044ab

Browse files
committed
Tighten Android framework readiness checks
1 parent cd24441 commit 4f044ab

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

scripts/build-android-app.sh

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -937,7 +937,7 @@ adb_framework_ready_once() {
937937
local last_log=$SECONDS
938938

939939
while [ $SECONDS -lt $deadline ]; do
940-
local boot_ok dev_boot system_pid pm_ok service_ok cmd_ok resolve_ok service_status
940+
local boot_ok dev_boot system_pid pm_ok pm_list_ok service_ok cmd_ok activity_ok resolve_ok service_status
941941
boot_ok="$($ADB_BIN -s "$serial" shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')"
942942
dev_boot="$($ADB_BIN -s "$serial" shell getprop dev.bootcomplete 2>/dev/null | tr -d '\r')"
943943
system_pid="$(run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell pidof system_server 2>/dev/null | tr -d '\r' || true)"
@@ -947,6 +947,11 @@ adb_framework_ready_once() {
947947
pm_ok=1
948948
fi
949949

950+
pm_list_ok=0
951+
if run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell pm list packages -f >/dev/null 2>&1; then
952+
pm_list_ok=1
953+
fi
954+
950955
cmd_ok=0
951956
if run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell cmd -l >/dev/null 2>&1; then
952957
cmd_ok=1
@@ -958,21 +963,26 @@ adb_framework_ready_once() {
958963
resolve_ok=1
959964
fi
960965

966+
activity_ok=0
967+
if run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell cmd activity top >/dev/null 2>&1; then
968+
activity_ok=1
969+
fi
970+
961971
service_ok=0
962972
service_status="$(run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell service check package 2>/dev/null | tr -d '\r' || true)"
963973
if [ -n "$service_status" ] && printf '%s' "$service_status" | grep -q "found"; then
964974
service_ok=1
965975
fi
966976

967977
if [ "$boot_ok" = "1" ] && [ "$dev_boot" = "1" ] && [ -n "$system_pid" ] \
968-
&& [ $pm_ok -eq 1 ] && [ $cmd_ok -eq 1 ] && [ $resolve_ok -eq 1 ] \
969-
&& [ $service_ok -eq 1 ]; then
978+
&& [ $pm_ok -eq 1 ] && [ $pm_list_ok -eq 1 ] && [ $cmd_ok -eq 1 ] \
979+
&& [ $activity_ok -eq 1 ] && [ $resolve_ok -eq 1 ] && [ $service_ok -eq 1 ]; then
970980
ba_log "Android framework ready on $serial (system_server=$system_pid)"
971981
return 0
972982
fi
973983

974984
if [ $((SECONDS - last_log)) -ge $log_interval ]; then
975-
ba_log "Waiting for Android framework on $serial (system_server=${system_pid:-down} boot_ok=${boot_ok:-?}/${dev_boot:-?} pm_ready=$pm_ok cmd_ready=$cmd_ok package_service_ready=$service_ok resolve_ready=$resolve_ok)"
985+
ba_log "Waiting for Android framework on $serial (system_server=${system_pid:-down} boot_ok=${boot_ok:-?}/${dev_boot:-?} pm_ready=$pm_ok pm_list_ready=$pm_list_ok cmd_ready=$cmd_ok activity_ready=$activity_ok package_service_ready=$service_ok resolve_ready=$resolve_ok)"
976986
last_log=$SECONDS
977987
fi
978988
sleep 2

0 commit comments

Comments
 (0)