Public Access
Site: the developer docs (phase 4), with the Debug Builds and the Debug Console first
/dev/ has Debug Builds and the Debug Console (builds and the token, the console and its protocol, files and screenshots, driving the UI, crashes and Safe Mode, the command reference), Build, test and release (including how an update works), the architecture decisions and the milestone plans. Generated from the repository by site/tools/gen_dev_docs.py: the ADRs, the milestones, the README's sections, and the command reference, read from the firmware's own `help` text. The pages are committed (Zola cannot read outside its folder); the Site workflow checks they are current, and now also runs when src/main.cpp changes. M0, M1 and CONTEXT.md are not published. README: the gnss commands that the table lacked. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 196" role="img" aria-label="The Update File: a 160-byte header, then the firmware image. Bytes 0 to 79 are signed: the magic RORO-OTA, the format, the header size, the image size, the image's SHA-256 and the version. Then the signature's length, the signature itself, and reserved bytes up to 160. The signature is ECDSA P-256 over the SHA-256 of bytes 0 to 79, checked before anything is written. The image follows, hashed while it is written, and must match the hash in bytes 16 to 47.">
|
||||
<g font-family="JetBrains Mono, ui-monospace, monospace" fill="currentColor">
|
||||
<text x="16" y="22" font-size="13" font-weight="600">Update File (.ota)</text>
|
||||
<text x="16" y="40" font-size="11" class="uf-dim">a 160-byte header, little-endian, then the image</text>
|
||||
|
||||
<rect class="uf-signed" x="16" y="72" width="380" height="40" rx="4"/>
|
||||
<rect class="uf-cell" x="16" y="72" width="64" height="40"/>
|
||||
<rect class="uf-cell" x="80" y="72" width="40" height="40"/>
|
||||
<rect class="uf-cell" x="120" y="72" width="40" height="40"/>
|
||||
<rect class="uf-cell" x="160" y="72" width="52" height="40"/>
|
||||
<rect class="uf-cell" x="212" y="72" width="100" height="40"/>
|
||||
<rect class="uf-cell" x="312" y="72" width="84" height="40"/>
|
||||
<rect class="uf-cell" x="396" y="72" width="40" height="40"/>
|
||||
<rect class="uf-cell" x="436" y="72" width="92" height="40"/>
|
||||
<rect class="uf-cell" x="528" y="72" width="32" height="40"/>
|
||||
<rect class="uf-image" x="560" y="72" width="184" height="40"/>
|
||||
|
||||
<g font-size="10" text-anchor="middle">
|
||||
<text x="48" y="96">RORO-OTA</text>
|
||||
<text x="100" y="96">fmt</text>
|
||||
<text x="140" y="96">hdr</text>
|
||||
<text x="186" y="96">size</text>
|
||||
<text x="262" y="96">image SHA-256</text>
|
||||
<text x="354" y="96">version</text>
|
||||
<text x="416" y="96">len</text>
|
||||
<text x="482" y="96">signature</text>
|
||||
<text x="544" y="96">0…</text>
|
||||
<text x="652" y="96">the image, ~1.6 MB</text>
|
||||
</g>
|
||||
<g font-size="10" class="uf-dim" text-anchor="middle">
|
||||
<text x="16" y="64">0</text><text x="80" y="64">8</text><text x="120" y="64">10</text><text x="160" y="64">12</text>
|
||||
<text x="212" y="64">16</text><text x="312" y="64">48</text><text x="396" y="64">80</text><text x="436" y="64">82</text>
|
||||
<text x="528" y="64">154</text><text x="560" y="64">160</text>
|
||||
</g>
|
||||
|
||||
<path d="M16 120 V128 H396 V120" fill="none" stroke="var(--accent)" stroke-width="1.5"/>
|
||||
<text x="206" y="150" font-size="11" text-anchor="middle" class="uf-hot">signed: ECDSA P-256 over SHA-256(bytes 0–79)</text>
|
||||
<text x="206" y="168" font-size="11" text-anchor="middle" class="uf-dim">checked before a single byte is written</text>
|
||||
<path d="M560 120 V128 H744 V120" fill="none" stroke="currentColor" stroke-opacity=".5" stroke-width="1.5"/>
|
||||
<text x="652" y="150" font-size="11" text-anchor="middle" class="uf-dim">hashed while it's written;</text>
|
||||
<text x="652" y="168" font-size="11" text-anchor="middle" class="uf-dim">must match bytes 16–47</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
Reference in New Issue
Block a user