aliro_blob.py
Inspect an aliro_prov ("APRV") reader-provisioning blob.
Overview
Inspect an aliro_prov ("APRV") reader-provisioning blob.
The blob is the unit of the clone path: a board commissioned into Apple Home
exports one with aliro export, and a board that cannot be commissioned adopts
it. This tool answers the question that otherwise costs a hardware cycle to ask
-- is this blob actually carrying an Apple-issued credential, or is it the dev
identity with nothing in it?
Two inputs, auto-detected:
aliro_blob.py 41505256030... a hex string, as printed by `aliro export` aliro_blob.py nvs.bin a file, scanned for every APRV blob in it
The file form works on a raw esptool.py read_flash dump of the ESP32 nvs
partition, which is a read-only way to recover the credential from a board you
do not want to reflash.
Wire format is modules/woz_aliro/src/aliro_prov.c (serialize at :64, deserialize at :123); the checks below mirror what the firmware enforces.
API
Cclass BadBlob(Exception)
Exception raised when a blob structure is invalid or cannot be parsed.
parseFparse(buf, off=0)
Parse one blob at buf[off:]. Returns (fields, total_len).
main · calls BadBlobFcheck(f)
Return the list of reasons this blob will not produce a Wallet unlock.
reportFreport(f, total, args, where='')
Print a structured report of an APRV blob to stdout showing version, identity, reader ID, signing key, GRK, trust anchors, and unlock verdict.
main · calls checkUndocumented (1)
main