Skip to content

Commit 128ffeb

Browse files
committed
Relax Android framework readiness heuristics
1 parent 4f044ab commit 128ffeb

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

scripts/build-android-app.sh

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -933,8 +933,10 @@ adb_framework_ready_once() {
933933
log_interval=10
934934
fi
935935

936+
local start_time=$SECONDS
936937
local deadline=$((SECONDS + phase_timeout))
937938
local last_log=$SECONDS
939+
local last_home_nudge=$SECONDS
938940

939941
while [ $SECONDS -lt $deadline ]; do
940942
local boot_ok dev_boot system_pid pm_ok pm_list_ok service_ok cmd_ok activity_ok resolve_ok service_status
@@ -975,16 +977,37 @@ adb_framework_ready_once() {
975977
fi
976978

977979
if [ "$boot_ok" = "1" ] && [ "$dev_boot" = "1" ] && [ -n "$system_pid" ] \
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
980-
ba_log "Android framework ready on $serial (system_server=$system_pid)"
981-
return 0
980+
&& [ $pm_ok -eq 1 ] && [ $cmd_ok -eq 1 ] && [ $service_ok -eq 1 ]; then
981+
if [ $pm_list_ok -eq 1 ] || [ $activity_ok -eq 1 ] || [ $resolve_ok -eq 1 ]; then
982+
ba_log "Android framework ready on $serial (system_server=$system_pid)"
983+
return 0
984+
fi
985+
986+
local secondary_wait="${FRAMEWORK_READY_SECONDARY_GRACE_SECONDS:-90}"
987+
if ! [[ "$secondary_wait" =~ ^[0-9]+$ ]]; then
988+
secondary_wait=90
989+
fi
990+
if [ $((SECONDS - start_time)) -ge "$secondary_wait" ]; then
991+
ba_log "Android framework heuristically ready on $serial (system_server=$system_pid; pm_list=$pm_list_ok activity=$activity_ok resolve=$resolve_ok)"
992+
return 0
993+
fi
982994
fi
983995

984996
if [ $((SECONDS - last_log)) -ge $log_interval ]; then
985997
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)"
986998
last_log=$SECONDS
987999
fi
1000+
1001+
local home_retry="${FRAMEWORK_READY_HOME_RETRY_SECONDS:-30}"
1002+
if ! [[ "$home_retry" =~ ^[0-9]+$ ]]; then
1003+
home_retry=30
1004+
fi
1005+
if [ $((SECONDS - last_home_nudge)) -ge "$home_retry" ]; then
1006+
run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell input keyevent 82 >/dev/null 2>&1 || true
1007+
run_with_timeout "$per_try" "$ADB_BIN" -s "$serial" shell \
1008+
am start -a android.intent.action.MAIN -c android.intent.category.HOME >/dev/null 2>&1 || true
1009+
last_home_nudge=$SECONDS
1010+
fi
9881011
sleep 2
9891012
done
9901013

0 commit comments

Comments
 (0)