In case it helps, here's some Makefile rule to call nrfutil. We're using the python
version and this is for nRF51, so the newer stuff may be different. This runs on
a mac, so will probably be the same for linux.
OTA_ASSET_APP := $(RELEASE)/over-the-air/$(APP_TAG).zip
OTA_ASSET_BOOT := $(RELEASE)/over-the-air/$(BOOTLOADER_TAG)-$(VERSION_SOFTDEVICE).zip
# The nrfutil program accepts the softdevice image as either a .hex or a .bin file
# However, the .bin version will cause nrfutil to also include the MBR in the
# over-the-air image, which is incorrect. Passing the original .hex file of the
# softdevice image (directly from the SDK directory) avoids this problem.
over-the-air : manufacturing
@mkdir -p $(RELEASE)/over-the-air
@nrfutil dfu genpkg \
--application $(RELEASE)/manufacturing/abrams.bin \
--application-version 0xffffffff \
--dev-revision 0x3031 \
--dev-type 0x5354 \
--sd-req 0x80 \
$(OTA_ASSET_APP)
@nrfutil dfu genpkg \
--bootloader $(RELEASE)/manufacturing/r2d2.bin \
--softdevice $(NRF5_SD_HEX) \
--dev-revision 0x3031 \
--dev-type 0x5354 \
--sd-req 0x64,0x80 \
$(OTA_ASSET_BOOT)