blob: 36b100376de058887048ee7a084335b3d3490c0f [file] [log] [blame]
#!/usr/bin/bash
ROOT=../../../../../
CHIP_CERT=$ROOT/src/tools/chip-cert
SPAKE2P=$ROOT/src/tools/spake2p
# Prerequisites
if [ ! -d "$CHIP_CERT/out" ]; then
printf "chip-cert is not available. Compile it.\n"
cd "$CHIP_CERT"
gn gen out
ninja -C out
cd -
else
printf "chip-cert is available.\n"
fi
if [ ! -d "$SPAKE2P/out" ]; then
printf "spake2p is not available. Compile it.\n"
cd "$SPAKE2P"
gn gen out
ninja -C out
cd -
else
printf "spake2p is available.\n"
fi
VERSION=50000
export FACTORY_DATA_DEST=./out/factory_data
export DEVICE_TYPE=100
export DATE="2023-01-01"
export TIME="$(date +"%T")"
export LIFETIME="7305"
export VID="1037"
export PID="A220"
export PAA_CERT=../../demo_generated_certs/paa/Chip-PAA-NXP-Cert.pem
export PAA_KEY=../../demo_generated_certs/paa/Chip-PAA-NXP-Key.pem
if [ ! -d "./out" ]; then
mkdir "./out"
fi
if [ ! -d "$FACTORY_DATA_DEST" ]; then
mkdir "$FACTORY_DATA_DEST"
fi
printf "Generate new certificates based on the same PAA\n"
../../generate_cert.sh "$CHIP_CERT"/out/chip-cert
printf "Generate new Certification Declaration\n"
"$CHIP_CERT"/out/chip-cert gen-cd \
--key "$ROOT"/credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem \
--cert "$ROOT"/credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem \
--out "$FACTORY_DATA_DEST/Chip-Test-CD-$VID-$PID".der \
--format-version 1 \
--vendor-id "0x$VID" \
--product-id "0x$PID" \
--device-type-id "0x$DEVICE_TYPE" \
--certificate-id "ZIG20142ZB330003-24" \
--security-level 0 \
--security-info 0 \
--version-number 9876 \
--certification-type 1
printf "\nExample: command without input option specified\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn "$VERSION" -vs "1.0" -da sha256 \
./out/app-standard-example-50000.ota || printf "Command failed because no option was specified.\n"
printf "\nExample: generate app OTA image with default descriptor\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn "$VERSION" -vs "1.0" -da sha256 \
--app-input-file ./binaries/app_example.bin \
./out/app-standard-example-50000.ota
printf "\nExample: generate app OTA image with specified descriptor\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn "$VERSION" -vs "1.0" -da sha256 \
--app-input-file ./binaries/app_example.bin \
--app-version 50000 \
--app-version-str "50000-version" \
--app-build-date "$(date +\"%F\")" \
./out/app-with-descriptor-example-50000.ota
printf "\nExample: generate factory data OTA image\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn "$VERSION" -vs "1.0" -da sha256 \
-fd \
--cert_declaration "$FACTORY_DATA_DEST/Chip-Test-CD-$VID-$PID".der \
--dac_cert "$FACTORY_DATA_DEST/Chip-DAC-NXP-$VID-$PID"-Cert.der \
--dac_key "$FACTORY_DATA_DEST/Chip-DAC-NXP-$VID-$PID"-Key.der \
--pai_cert "$FACTORY_DATA_DEST/Chip-PAI-NXP-$VID-$PID"-Cert.der \
./out/factory-data-example-50000.ota
printf "\nExample: generate SSBL OTA image with specified descriptor\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn 1 -vs "1.0" -da sha256 \
--bl-input-file ./binaries/ssbl_ram_ota_entry_example.bin \
--bl-version 1 \
--bl-version-str "SSBL-version-1" \
--bl-build-date "$(date +\"%F\")" \
./out/ssbl-with-descriptor-example.ota
printf "\nExample: generate app + SSBL + factory data update OTA image\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn 1 -vs "1.0" -da sha256 \
--app-input-file ./binaries/app_example.bin \
--app-version 50000 \
--app-version-str "50000-version" \
--app-build-date "$(date +\"%F\")" \
--bl-input-file ./binaries/ssbl_ram_ota_entry_example.bin \
--bl-version 1 \
--bl-version-str "SSBL-version-1" \
--bl-build-date "$(date +\"%F\")" \
-fd \
--cert_declaration "$FACTORY_DATA_DEST/Chip-Test-CD-$VID-$PID".der \
--dac_cert "$FACTORY_DATA_DEST/Chip-DAC-NXP-$VID-$PID"-Cert.der \
--dac_key "$FACTORY_DATA_DEST/Chip-DAC-NXP-$VID-$PID"-Key.der \
--pai_cert "$FACTORY_DATA_DEST/Chip-PAI-NXP-$VID-$PID"-Cert.der \
./out/app-ssbl-factory-data-example.ota
printf "\nExample: generate OTA image for maximum number of entries (8) using JSON\n"
python3 ../ota_image_tool.py create -v 0xDEAD -p 0xBEEF -vn 50000 -vs "1.0" -da sha256 \
--json ./ota_max_entries_example.json \
./out/max-entries-example.ota