- AIDL: android.os.Bundle cannot be imported by a structured aidl_interface
(the -N include path has no framework types); requestComponentUpdate now
takes a structured pawletos.bgupd.UpdateParams parcelable instead.
- webview: map ABI strings to the catalog's short arch keys (arm64-v8a ->
arm64); package_name/signature_sha256 are optional in the catalog (e.g.
chromite) — parse them as nullable and refuse to install without them.
- Only run manifest entries the APK pipeline owns (webview); the hardware
entry is handled by the new HardwareUpdateExecutor.
- hardware/: firmware-update daemon per the PawletOS update-server protocol.
Image-local supported_hardware.json (ro.pawlet.hardware.manifest) is the
authoritative allowlist; mode=hardware&target=update checks send optional
identity params only when known; eligibility chain fails closed at every
step (manifest allowlist -> revision -> handler authorization -> size +
SHA-256). FirmwareInstallerRegistry ships empty so nothing installs until
real handlers land. Detected hardware comes from the SetupWizard-written
/data/pawlet/detected_hardware.json (schema in DetectedHardwareStore);
bg-upd does no probing itself.
- db v2: hardware_state table; upgrades are now additive instead of
drop-and-recreate.
Polls a manifest to discover per-component update endpoints (currently
just webview) and silently installs/switches providers without a full
system OTA.