Skip to content

Name a backup's donut while its empty boot0 cycles its bootrom - #166

Merged
bboe merged 2 commits into
mainfrom
restore-cycling-donut
Nov 12, 2026
Merged

bboe merged 2 commits into
mainfrom
restore-cycling-donut

Conversation

@bboe

@bboe bboe commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

A donut whose boot0 a stopped restore cleared cycles through its bootrom, absent from USB for about 39 seconds at a time. A restore started in that gap never took the device from the backup, then stopped at the bootrom. It now does; the hardware-code and CID checks still guard every write.

❯ uv run python -m firebreak restore --force ~/src/overdub/backups/BACKUP
Waiting for the Echo on USB. A reboot reads this way until it comes back. An
Echo that shows no light never does: `firebreak short` reaches that one.

ERROR: firebreak cannot tell which Echo this is, so it cannot say what to do
with it. A fastboot, a recovery and the bootloader in an Echo's flash each name
the device, and this Echo named none.

🤖 Generated with Claude Code

@bboe
bboe force-pushed the restore-cycling-donut branch 3 times, most recently from 824b8d3 to 7a2ad79 Compare November 12, 2026 10:12
bboe and others added 2 commits November 12, 2026 02:16
restore named a donut from backup.json only if it read as its bootrom
when the run started, since only the bootrom's one handshake gives its
hardware code. A donut whose boot0 header a stopped restore cleared does
not stay there: on 2026-11-12 one read as nothing on USB for 39 s, then
as its bootrom, over and over. Three restores that started in the gap
named nothing, met the bootrom and stopped:

  ERROR: firebreak cannot tell which Echo this is, so it cannot say what
  to do with it.

restore now hands the backup's device to twrp_entry, which uses it only
in the bootrom step and only when the Echo is still unnamed. An Echo
that names itself first keeps its own name, so a run started with
nothing plugged in still tells a biscuit or radar from the backup's
donut, and a biscuit or radar backup hands over nothing.

A first version named the device whenever nothing was on USB at the
start; with it the donut was restored from its bootrom, every written
area reading back as skip, and booted its backup's 8349. Review found
that it would also name any Echo plugged in later, so it moved here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The CHANGELOG and docs/unlocking.md quoted adb's "device ... not found"
from a 2026-11-05 run with the Echo's real serial in it. It now reads
SERIAL; nothing else in the repo names a real Echo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bboe
bboe force-pushed the restore-cycling-donut branch from 7a2ad79 to ac81cee Compare November 12, 2026 10:17
@bboe
bboe merged commit ac81cee into main Nov 12, 2026
2 checks passed
@bboe
bboe deleted the restore-cycling-donut branch November 12, 2026 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant