4e9f147e55
Adds pawlethwd, a native C++ system_ext daemon (coredomain) that detects peripherals, checks the hardware update catalog (ota.php?mode=hardware), verifies payloads, and flashes firmware via authorized handler plugins. - daemon/: manifest parse, libcurl HTTP + sha256, sysfs USB detection, catalog client, dlopen handler registry (fixed path + ABI + allowlist), state persistence, orchestration engine, AIDL service, main. - aidl/: IPawletHardwareUpdate (getComponents/getPendingUpdates/checkNow/...). - include/pawlet/hwh_abi.h: stable C plugin ABI. - handlers/usbdfu/: libpawlethwh_usbdfu.so, DFU 1.1 download over libusb. - sepolicy/: pawlethwd domain, pawlet_hw_data_file, service type. - schemas/, etc/supported_hardware.default.json, README design doc. - hwupdate.mk wires packages + ro.pawlet.hardware.manifest + sepolicy dir; inherited from config/common.mk. Trust: a server-named installer handler is honored only if allowlisted in the immutable supported_hardware.json, maps to a fixed dm-verity-protected .so path, is ABI/id-checked, and every payload is sha256-verified before a handler runs.
33 lines
799 B
JSON
33 lines
799 B
JSON
{
|
|
"schema_version": 1,
|
|
"device": "rpi4",
|
|
"build_version": "1.0",
|
|
"supported_hardware": [
|
|
{
|
|
"id": "pawlet-usb-dfu-reference",
|
|
"manufacturer": "pawlet",
|
|
"class": "peripheral",
|
|
"support": "experimental",
|
|
"supported_revisions": ["A", "B"],
|
|
"identifiers": {
|
|
"usb_vendor_id": "1209",
|
|
"usb_product_id": "0001"
|
|
},
|
|
"components": [
|
|
{
|
|
"id": "pawlet-usb-dfu-reference-mcu",
|
|
"class": "microcontroller",
|
|
"role": "peripheral-mcu",
|
|
"support": "experimental",
|
|
"supported_revisions": ["A", "B"],
|
|
"installer_handlers": ["usbdfu"],
|
|
"identifiers": {
|
|
"usb_vendor_id": "1209",
|
|
"usb_product_id": "0001"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|