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.
21 lines
680 B
Makefile
21 lines
680 B
Makefile
#
|
|
# Copyright (C) 2026 oxmc / PawletOS
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# PawletOS hardware update subsystem. Include from a product makefile:
|
|
# $(call inherit-product, vendor/pawlet/hwupdate/hwupdate.mk)
|
|
#
|
|
|
|
PRODUCT_PACKAGES += \
|
|
pawlethwd \
|
|
libpawlethwh_usbdfu \
|
|
pawlet_supported_hardware_default
|
|
|
|
# Path to the image-local supported-hardware manifest (daemon default matches
|
|
# this; set explicitly so it is discoverable/overridable).
|
|
PRODUCT_PRODUCT_PROPERTIES += \
|
|
ro.pawlet.hardware.manifest=/system_ext/etc/pawlet/supported_hardware.json
|
|
|
|
# Daemon SELinux policy (system_ext side).
|
|
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += vendor/pawlet/hwupdate/sepolicy
|