Airwave provides a firmware distribution and targeting layer for Android-based devices. It does not replace Android’s OTA mechanism; instead, it orchestrates distribution, targeting, and observability around standard Android OTA packages. Request access on our website.
Airwave assumes that devices already support OTA updates via one of the following mechanisms:
- A/B (update_engine-based) updates
- Recovery-based OTA updates
The firmware update artifact uploaded to Airwave must be a properly generated and signed Android OTA package. Airwave does not modify firmware artifacts post-upload. Pre-registration happens on the Airwave platform.
At runtime, devices:
- Authenticate with Airwave.
- Retrieve update metadata applicable to their hardware model and current build.
- Download the assigned OTA package.
- Invoke the system update mechanism (update_engine or recovery).
- Report update state transitions and final result.
Airwave does not modify bootloader behavior, AVB configuration, or partition layouts. It operates at the firmware distribution and orchestration layer.
Device Model in Airwave
In Airwave, a device is defined as a uniquely identifiable hardware instance eligible for firmware targeting.
Device Identity
Each device is identified by a unique identifier such as:
- ro.serialno
- Hardware-backed serial
- OEM-defined unique ID
The identifier must be stable across reboots and OTA updates.
Airwave uses this identifier for:
- Targeting firmware updates
- Tracking update state
- Reporting success or failure
If device identity is factory-provisioned, ensure consistency between factory programming and Airwave pre-registration workflows.
Firmware Artifact Requirements
Airwave accepts Android OTA packages in .zip format.
The uploaded package must be:
- Generated using standard AOSP OTA tooling (e.g., ota_from_target_files)
- Properly signed with release keys accepted by the target device. The agent must be signed with the same keys as the OS.
- Structurally valid for the device’s update mechanism
Supported Build Types
Full Build
A full OTA package containing complete partition images or payload sufficient to update from any prior compatible build.
Use when:
- Moving across major Android versions
- Performing base firmware resets
- No reliable source-version assumption exists
Delta Build
A delta OTA package generated against a specific source build.
Delta builds:
- Require source build fingerprint compatibility
- Will fail if the device build fingerprint does not match the expected source
- Must be generated using standard Android delta OTA tooling
Airwave does not generate deltas. It distributes the artifact provided.
Required Firmware Metadata
When uploading firmware, the following metadata must be specified:
-
Hardware Model
Defines the target hardware group eligible to receive this firmware. This must correspond to a stable hardware identifier defined by the OEM. -
Build Type
Full or Delta (as defined above). -
Build Properties File
A file containing build-level metadata used for compatibility validation. This should include relevant properties such as:- ro.build.fingerprint
- ro.product.device
- ro.product.model
- ro.build.version.release
-
Firmware File (.zip)
The signed OTA package.
Airwave uses the provided metadata to match firmware eligibility against device-reported properties.
Device Registration
Devices must be registered in Airwave before they can receive firmware updates.
Registration may occur via:
- Pre-registration in the Airwave console (manual serial entry)
- Device-initiated registration (if supported by the deployment model)
Pre-Registration Flow
Pre-registration associates:
- A hardware model
- A device identifier (e.g., serial number)
Once registered, the device becomes eligible for firmware targeting under its associated hardware model.
If serial numbers are factory-programmed, ensure:
- Alignment between programmed values and Airwave registration records
- No mutation of the identifier across OTA updates
Firmware Deployment Model
To deploy firmware updates, the following must exist:
- At least one registered target device
- At least one uploaded firmware package mapped to the corresponding hardware model
Airwave evaluates:
- Device hardware model
- Device-reported build properties
- Firmware metadata
Based on this evaluation, eligible devices are assigned the firmware update.
Runtime Update Behavior (High-Level)
When a firmware update is approved:
- The device retrieves update metadata.
- The OTA package is downloaded.
- Signature verification occurs using the device’s configured OTA verification keys.
- The system update mechanism is invoked:
- update_engine (A/B devices), or
- Recovery (non-A/B devices).
- The device reboots into the updated slot (A/B) or applies the update via recovery.
- Update result and state transitions are reported back to Airwave.
Failure modes may include:
- Signature verification failure
- Build fingerprint mismatch (delta)
- Insufficient storage
- Slot switch failure (A/B)
- Recovery verification errors
Airwave reports these states but does not override Android’s native OTA enforcement mechanisms.
Operational UI Workflow (Console)
Add Device
Devices can be pre-registered via:
Devices → Pre-Register
Provide:
- Hardware Model (populated by Esper)
- Serial Number (or unique device identifier)
The device will appear in the Devices list once registered.
Upload Firmware
Firmware can be uploaded via:
Firmware → Upload Firmware
Provide:
- Hardware Model
- Build Type (Full or Delta)
- Build Properties file
- Firmware OTA .zip file
Once uploaded, the firmware becomes available for assignment to eligible devices.