#!/usr/bin/env python3 """Stage full shipped ASB manifests for early startup; retain originals. Observed SRMI selector, SRAM v5 manifest and SRBM v1 block-table formats. This changes startup availability only; it does not select a login scene. All installation paths are explicit arguments. Restore refuses unrelated edits. """ import argparse import hashlib import struct from pathlib import Path from install_baked_lua_stage import atomic_copy, selector_digest KINDS = ('AsbV', 'BlockV') def selected(root, name): selector = root / ('M_' + name + '.bytes') raw = selector.read_bytes() digest = selector_digest(raw) data = root / (name + '_' + digest + '.bytes') content = data.read_bytes() if hashlib.md5(content).hexdigest() != digest or struct.unpack_from('