SOTA/FOTA format
OEM should provide the component image update together with the metadata which describes dependencies, version and so on. It is uploaded to AosCloud per component as a bundle of images:
{
"formatVersion": 1,
"components": [
{
"id": "rootfs",
"fileName": "component.gz",
"vendorVersion": "2.1.0",
"description": "this is rootfs update",
"requiredVersion": "2.0.0",
"minVersion": "1.0.0",
"maxVersion": "2.0.0",
"downloadTTL": "P1M",
"annotations": {
"type": "full"
},
"runtimeDependencies": [
{
"id": "boot",
"requiredVersion": "3.2.0"
},
{
"id": "bios",
"minVersion": "2.5.0"
}
]
}
]
}
See explanations for JSON elements below:
- formatVersion – file format version, used to support future extension and backward compatibility. Format - SemVer
- components – array of component images this bundle contains
- id – unique for the AosEdge board model component identifier. Note that components are not shared between different board models.
- fileName – path to the component file inside bundle
- version – component update version
- description – component update description, for information purpose
- requiredVersion – optional field, indicates the exact version of the component on which this version should be applied (explicitly means that update incremental) (requiredVersion discards minVersion and maxVersion). Format - SemVer
- minVersion – optional field, indicates minimum version which should the component have before installing this one. Format - SemVer
- maxVersion – optional field, indicates maximum version which should the component have before installing this one. Format - SemVer
- downloadTTL - optional field, download service TTL (ISO 8601 duration). In case of the unit is not able to download service or related layer more than TTL time - Service should be deleted
- annotations – any valid JSON structure, it will be passed directly to the target, used to provide component-specific data required for update on the target
- runtimeDependencies – optional list of components and their versions which should be installed at same time with required component:
- id – component identifier
- requiredVersion, minVersion – same meaning as for these fields in root structure. Format - SemVer