|
|
@ -59,6 +59,11 @@ platform_identify() { |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if osafeloader info "$1" > /dev/null; then |
|
|
|
|
|
|
|
echo "safeloader" |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
echo "unknown" |
|
|
|
echo "unknown" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -102,6 +107,8 @@ platform_check_image() { |
|
|
|
error=1 |
|
|
|
error=1 |
|
|
|
fi |
|
|
|
fi |
|
|
|
;; |
|
|
|
;; |
|
|
|
|
|
|
|
"safeloader") |
|
|
|
|
|
|
|
;; |
|
|
|
"seama") |
|
|
|
"seama") |
|
|
|
local img_signature=$(oseama info "$1" | grep "Meta entry:.*signature=" | sed "s/.*=//") |
|
|
|
local img_signature=$(oseama info "$1" | grep "Meta entry:.*signature=" | sed "s/.*=//") |
|
|
|
local dev_signature=$(platform_expected_image) |
|
|
|
local dev_signature=$(platform_expected_image) |
|
|
@ -118,6 +125,13 @@ platform_check_image() { |
|
|
|
} |
|
|
|
} |
|
|
|
;; |
|
|
|
;; |
|
|
|
"trx") |
|
|
|
"trx") |
|
|
|
|
|
|
|
local expected=$(platform_expected_image) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[ "$expected" == "safeloader" ] && { |
|
|
|
|
|
|
|
echo "This device expects SafeLoader format and may not work with TRX" |
|
|
|
|
|
|
|
error=1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ! otrx check "$1"; then |
|
|
|
if ! otrx check "$1"; then |
|
|
|
echo "Invalid (corrupted?) TRX firmware" |
|
|
|
echo "Invalid (corrupted?) TRX firmware" |
|
|
|
error=1 |
|
|
|
error=1 |
|
|
@ -245,7 +259,7 @@ platform_pre_upgrade_seama() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
platform_pre_upgrade() { |
|
|
|
platform_pre_upgrade() { |
|
|
|
export RAMFS_COPY_BIN="${RAMFS_COPY_BIN} /usr/bin/oseama /bin/sed" |
|
|
|
export RAMFS_COPY_BIN="${RAMFS_COPY_BIN} /usr/bin/osafeloader /usr/bin/oseama /bin/sed" |
|
|
|
|
|
|
|
|
|
|
|
local file_type=$(platform_identify "$1") |
|
|
|
local file_type=$(platform_identify "$1") |
|
|
|
|
|
|
|
|
|
|
@ -270,6 +284,24 @@ platform_trx_from_cybertan_cmd() { |
|
|
|
echo -n dd bs=32 skip=1 |
|
|
|
echo -n dd bs=32 skip=1 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
platform_img_from_safeloader() { |
|
|
|
|
|
|
|
local dir="/tmp/sysupgrade-bcm53xx" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Extract partitions from SafeLoader |
|
|
|
|
|
|
|
rm -fR $dir |
|
|
|
|
|
|
|
mkdir -p $dir |
|
|
|
|
|
|
|
osafeloader extract "$1" \ |
|
|
|
|
|
|
|
-p "os-image" \ |
|
|
|
|
|
|
|
-o $dir/os-image |
|
|
|
|
|
|
|
osafeloader extract "$1" \ |
|
|
|
|
|
|
|
-p "file-system" \ |
|
|
|
|
|
|
|
-o $dir/file-system |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mtd write $dir/file-system rootfs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo -n $dir/os-image |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
platform_img_from_seama() { |
|
|
|
platform_img_from_seama() { |
|
|
|
local dir="/tmp/sysupgrade-bcm53xx" |
|
|
|
local dir="/tmp/sysupgrade-bcm53xx" |
|
|
|
local offset=$(oseama info "$1" -e 0 | grep "Entity offset:" | sed "s/.*:\s*//") |
|
|
|
local offset=$(oseama info "$1" -e 0 | grep "Entity offset:" | sed "s/.*:\s*//") |
|
|
@ -298,6 +330,7 @@ platform_do_upgrade() { |
|
|
|
case "$file_type" in |
|
|
|
case "$file_type" in |
|
|
|
"chk") cmd=$(platform_trx_from_chk_cmd "$trx");; |
|
|
|
"chk") cmd=$(platform_trx_from_chk_cmd "$trx");; |
|
|
|
"cybertan") cmd=$(platform_trx_from_cybertan_cmd "$trx");; |
|
|
|
"cybertan") cmd=$(platform_trx_from_cybertan_cmd "$trx");; |
|
|
|
|
|
|
|
"safeloader") trx=$(platform_img_from_safeloader "$trx");; |
|
|
|
"seama") trx=$(platform_img_from_seama "$trx");; |
|
|
|
"seama") trx=$(platform_img_from_seama "$trx");; |
|
|
|
esac |
|
|
|
esac |
|
|
|
|
|
|
|
|
|
|
|