LibreEcho installer notes

Browser one-shot installer

What this installer does, and what it refuses to do.

This page is the operator's reference for the browser installer preview. It is published both as part of the development site (dev.libreecho.org/install/) and on its own hostname (install.dev.libreecho.org); every path in the app is relative, so both serve the same files.

The install route

The browser installer implements the same no-short route as the host installer, with the browser as the USB host:

StageWhat happensWhat it checks
ReleaseThe published release inventory is read.SHA256SUMS is fetched or supplied, and the required assets are present.
BundlePayload bytes are selected locally.Each file is hashed in the browser and compared with the release digest before it is used.
DeviceWebUSB permission prompt, then a fastboot session.product, unlock_status, the LK build description and the download size limit are read from the device.
UnlockThe per-LK-build payload is submitted to the brick target.The payload is only eligible if the detected build has a declared entry; the name is reported and the outcome is explicit.
RecoveryADB connects to TWRP.Recovery is confirmed before any write.
StageThe verified files are pushed to /cache/libreecho-bundle.Every pushed file is re-hashed with the device's own sha256sum.
Prepare / InstallThe recovery installer zip is run over ADB, twice if a reboot is required.The installer's own receipt at /cache/libreecho-install-receipt is read back after each run.
VerifyThe device is rebooted.A successful receipt is required; nothing is claimed about runtime behaviour.

Why the payloads come from your own download

Measured from a GitHub Pages origin (the development site), a browser can read api.github.com and raw.githubusercontent.com, but it cannot read github.com/<owner>/<repo>/releases/download/…: the redirect response carries no Access-Control-Allow-Origin header, so the fetch fails before any bytes are readable. The network path itself works — the response simply cannot be read by a page.

Two honest consequences:

Browser requirements

USB identities the installer expects

The device chooser is filtered with the identities an Echo presents in each mode. The page needs no filter entry for a mode it does not use, but a missing entry means an empty chooser, so the unfiltered Show all USB devices… button exists as the escape hatch.

ModeUSB identityHow it presents
Fastboot (stock or unlocked)0bb4:0c01 (measured), 18d1:4ee0–18d1:4ee7, 18d1:d00d, 0e8d:201c, 0e8d:2001Vendor-specific interface with a bulk in/out pair; getvar product answers. 0bb4 is HTC's vendor id and is what this platform has been seen to present in fastboot.
ADB — installed LibreEcho image18d1:d001 (measured)Interface at class 0xFF subclass 0x42 protocol 0x01; product string MT8163-ARM32-ADB.
ADB — TWRP recovery18d1:4ee0–18d1:4ee7, 18d1:d00dSame ADB interface triple; TWRP answers without an authentication token.
Preloader USB download0e8d:2000 (measured)CDC-ACM pair, device class 2, product string like Failed to load LK. This is a download-mode state awaiting a host tool, not fastboot, and it resets on a timer if nothing connects.
Boot ROM (BROM)0e8d:0003Reached with the eMMC short or a cleared preloader header.

These devices report device class 0 with per-interface classes, so a WebUSB classCode filter never matches them: an identity has to be named, or the chooser left unfiltered.

What the installer will not do

Status

This is a preview. The protocol layers (fastboot and ADB over WebUSB) are implemented and unit-tested against scripted devices; the browser UI, release verification and stage orchestration are implemented and exercised in the browser. No stage has been run against Echo hardware from a browser yet — that validation is the next gate, and until it is done the supported install route remains the published release and its guide.

Reporting

Use the installer's Save log button and attach the log with the exact release tag, the device mode you started from (stock fastboot or recovery), and the first message that did not match this page. Do not paste device serials, MAC addresses, Wi-Fi credentials or provider tokens.

← Back to the installer