The lock-check piped 'fastboot oem device-info' into grep -q, which exits
on first match; fastboot dies of SIGPIPE mid-transaction and leaves the
bootloader's fastboot state machine wedged, hanging the NEXT command
(the mysterious erase-dtbo stall). Capture-then-test everywhere.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every fastboot step gets a deadline and one retry (this bootloader hangs
per-command occasionally, and desktop ModemManager probes freshly
enumerated fastboot devices, blocking the USB claim). Refuse to run on a
locked bootloader before touching anything. SSH_ASKPASS_REQUIRE=force
self-answers the login password on OpenSSH >= 8.4.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
OpenSSH deliberately reads passwords from the terminal only; since 8.4
an askpass helper overrides that even with a tty. The fresh image's
public default now answers both ssh and sudo - the installer runs with
zero typed credentials on any modern distro (older OpenSSH falls back
to one prompt).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
When the wait times out the phone has usually booted fine; it is the
PC's side of the gadget link that nobody configured (or a network
manager grabbed it with the wrong profile - bitten by that ourselves).
Spell out the ip-link/ip-addr recovery and that rerunning is safe.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ssh ControlMaster keeps one authenticated connection (login typed at
most once, or never with sshpass installed); sudo answers itself via a
SUDO_ASKPASS helper carrying the image's public default password (sudo
-S would have eaten the boot image's first bytes from stdin). Helper
lives on tmpfs and evaporates with the install reboot.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
erase dtbo + flash userdata + RAM-boot + dd boot_a from Linux + verify
modem NV and report honestly. Shipped in dist/ with every release; README
points at it. The one believed-safe-but-unisolated step (userdata flash)
is self-verified by the script's final check.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>