--- orphan: true --- # NXP OTA image tool ## Overview This tool can generate an OTA image in the `|OTA standard header|TLV1|...|TLVn|` format. The payload contains data in standard TLV format (not Matter TLV format). During OTA transfer, these TLV can span across multiple BDX blocks, thus the `OTAImageProcessorImpl` instance should take this into account. For details related to the OTA implementation, please see [OTA README](../../../../src/platform/nxp/common/ota/README.md). ## Supported platforms - `k32w0` - `k32w1` - `mcxw71` ## Usage This is a wrapper over standard `ota_image_tool.py`, so the options for `create` are also available here: ``` python3 ./scripts/tools/nxp/ota/ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn 50000 -vs "1.0" -da sha256 ``` followed by **custom options**- and a positional argument (should be last) that specifies the output file. Please see the `create_ota_images.sh` for some reference commands. The list of **custom options**: | option | description | | -------------------- | -------------------------------------------------- | | `--app-input-file` | Path to the application binary | | `--app-version` | Application version. Can differ from `-vn` | | `--app-version-str` | Application version string. Same as above | | `--app-build-date` | Application build date. Same as above | | `--bl-input-file` | Path to the SSBL binary | | `--bl-version` | SSBL version | | `--bl-version-str` | SSBL version string | | `--bl-build-date` | SSBL build date | | `--factory-data` | Enable the generation of factory data | | `--cert_declaration` | Matter Certification Declaration | | `--dac_cert` | Matter DAC certificate | | `--dac_key` | Matter DAC private key | | `--pai_cert` | Matter PAI certificate | | `--json` | Path to a JSON file following `ota_payload.schema` | Please note that the options above are separated into four categories: application, bootloader, factory data and custom TLV (`--json` option). If no descriptor options are specified for app/SSBL, the script will use the default values (`50000`, `"50000-default"`, `"2023-01-01"`). The descriptor feature is optional, TLV processors having the option to register a callback for descriptor processing. ## Custom payload When defining a custom processor, a user is able to also specify the custom format of the TLV by creating a JSON file based on the `ota_payload.schema`. The tool offers support for describing multiple TLV in the same JSON file. Please see the `examples/ota_max_entries_example.json` for a multi-app + SSBL example. Option `--json` must be used to specify the path to the JSON file. ## Examples A set of examples can be found in `./examples`. Please run `create_ota_image.sh` to generate the examples: - Application image with default descriptor - Application image with specified descriptor - Factory data image - SSBL image - Application + SSBL + factory data image - Maximum number of entries image, using `ota_max_entries_example.json`. The examples uses 8 SSBL binaries because they have a small size and fit in external flash. The binaries from `./examples/binaries` should only be used only as an example. The user should provide their own binaries when generating the OTA image.