emu: Stop silent early exits in the emulator start script
The script's set -euo pipefail made it die without any visible error in two places: an empty /tmp/jtube-adbkeys/ failed the glob cat (the error itself was discarded, so the output just stopped mid-script — this hits any host after a reboot), and the boot-wait loop was killed on its first iteration because adb exits non-zero while the device is still booting. Both were swallowing the whole && chain (adb connect, scrcpy), making it look like the emulator was broken when it was fine or about to be. The stale bridge-emulator.sh duplicate (different port, broken vendor keys path) is removed in the same spirit — keeping it invites running the wrong script. Docs updated to match the one script.
This commit is contained in:
parent
c19024355c
commit
a71de07969
3 changed files with 22 additions and 49 deletions
|
|
@ -1,42 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# bridge-emulator.sh — (host-side) expose the emulator's adbd to the LAN so agents
|
||||
# inside the container/other machines can use it: binds :5557 -> 127.0.0.1:5601.
|
||||
# The emulator console transport (emulator-5600) stays local-only; this bridges the
|
||||
# adbd TCP port 5601.
|
||||
set -euo pipefail
|
||||
ADBD_PORT=5601
|
||||
BRIDGE_PORT=5557
|
||||
|
||||
# start emulator if not running
|
||||
ADB="${ANDROID_SDK_ROOT:-$HOME/Android/Sdk}/platform-tools/adb"
|
||||
if ! "$ADB" devices | grep -q "emulator-5600.*device"; then
|
||||
echo "emulator-5600 not running — starting it…"
|
||||
ADB_VENDOR_KEYS="$HOME/.android/adbkey" setsid nohup \
|
||||
"${ANDROID_SDK_ROOT:-$HOME/Android/Sdk}/emulator/emulator" -avd jtubesc -port 5600 \
|
||||
-no-window -gpu swiftshader_indirect -no-snapshot -no-audio -no-boot-anim \
|
||||
> /tmp/jtube-emu.log 2>&1 < /dev/null &
|
||||
echo "waiting for boot (log: /tmp/jtube-emu.log)…"
|
||||
for i in $(seq 1 60); do
|
||||
ok=$("$ADB" -s emulator-5600 shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')
|
||||
[ "$ok" = "1" ] && { echo "BOOTED"; break; }
|
||||
sleep 5
|
||||
done
|
||||
fi
|
||||
|
||||
# keep JTube TV installed + running
|
||||
APK="$HOME/Projects/jtube-tv/app/build/outputs/apk/debug/app-debug.apk"
|
||||
if [ -f "$APK" ]; then
|
||||
"$ADB" -s emulator-5600 install -r "$APK" >/dev/null && echo "JTube TV installed"
|
||||
"$ADB" -s emulator-5600 shell am start -n net.jeena.jtubetv/.MainActivity && echo "app started"
|
||||
fi
|
||||
|
||||
# the bridge (bind all LAN addresses)
|
||||
if ! ss -tln 2>/dev/null | grep -q ":$BRIDGE_PORT"; then
|
||||
setsid nohup socat TCP-LISTEN:$BRIDGE_PORT,bind=0.0.0.0,fork,reuseaddr \
|
||||
TCP:127.0.0.1:$ADBD_PORT > /tmp/jtube-bridge.log 2>&1 < /dev/null &
|
||||
echo "bridge: :$BRIDGE_PORT -> 127.0.0.1:$ADBD_PORT (pid $!)"
|
||||
fi
|
||||
|
||||
echo "From this host: adb connect localhost:$BRIDGE_PORT"
|
||||
echo "From other machines: adb connect rutherford:$BRIDGE_PORT"
|
||||
Loading…
Add table
Add a link
Reference in a new issue