brcm47xx: extend firmware validation

This provides TRX validation result, so final JSON may look like:
{
	"tests": {
		"fwtool_signature": true,
		"fwtool_device_match": true,
		"trx_valid": true
	},
	"valid": true,
	"forceable": true
}

It also prevents users from installing broken firmware files, e.g.:

root@OpenWrt:/# sysupgrade -F -n /tmp/TZ
Image metadata not found
Invalid image type. Please use firmware specific for this device.
Image check failed but --force given - will update anyway!
Commencing upgrade. Closing all shell sessions.
Firmware image is broken and cannot be installed

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e68c1cebd1)
openwrt-19.07
Rafał Miłecki 2019-09-04 06:35:31 +02:00
parent a717428828
commit 87fe1a560a
1 changed files with 11 additions and 1 deletions

View File

@ -98,7 +98,10 @@ platform_check_image() {
if ! otrx check "$1" -o "$header_len"; then if ! otrx check "$1" -o "$header_len"; then
echo "No valid TRX firmware in the CHK image" echo "No valid TRX firmware in the CHK image"
notify_firmware_test_result "trx_valid" 0
error=1 error=1
else
notify_firmware_test_result "trx_valid" 1
fi fi
;; ;;
"cybertan") "cybertan")
@ -113,17 +116,24 @@ platform_check_image() {
if ! otrx check "$1" -o 32; then if ! otrx check "$1" -o 32; then
echo "No valid TRX firmware in the CyberTAN image" echo "No valid TRX firmware in the CyberTAN image"
notify_firmware_test_result "trx_valid" 0
error=1 error=1
else
notify_firmware_test_result "trx_valid" 1
fi fi
;; ;;
"trx") "trx")
if ! otrx check "$1"; then if ! otrx check "$1"; then
echo "Invalid (corrupted?) TRX firmware" echo "Invalid (corrupted?) TRX firmware"
notify_firmware_test_result "trx_valid" 0
error=1 error=1
else
notify_firmware_test_result "trx_valid" 1
fi fi
;; ;;
*) *)
echo "Invalid image type. Please use only .trx files" echo "Invalid image type. Please use firmware specific for this device."
notify_firmware_broken
error=1 error=1
;; ;;
esac esac