emmc_do_upgrade() relies on identify() from the nand.sh upgrade helper.
This only works because FEATURES=emmc targets also tend to include
FEATURES=nand.

Signed-off-by: Brian Norris <computersforpe...@gmail.com>
---
 .../base-files/files/lib/upgrade/common.sh    | 27 ++++++++++++++++
 package/base-files/files/lib/upgrade/emmc.sh  |  2 +-
 package/base-files/files/lib/upgrade/nand.sh  | 32 ++-----------------
 3 files changed, 30 insertions(+), 31 deletions(-)

diff --git a/package/base-files/files/lib/upgrade/common.sh 
b/package/base-files/files/lib/upgrade/common.sh
index 5af061f6a439..53b8865a5788 100644
--- a/package/base-files/files/lib/upgrade/common.sh
+++ b/package/base-files/files/lib/upgrade/common.sh
@@ -127,6 +127,33 @@ get_magic_fat32() {
        (get_image "$@" | dd bs=1 count=5 skip=82) 2>/dev/null
 }
 
+identify_magic_long() {
+       local magic=$1
+       case "$magic" in
+               "55424923")
+                       echo "ubi"
+                       ;;
+               "31181006")
+                       echo "ubifs"
+                       ;;
+               "68737173")
+                       echo "squashfs"
+                       ;;
+               "d00dfeed")
+                       echo "fit"
+                       ;;
+               "4349"*)
+                       echo "combined"
+                       ;;
+               "1f8b"*)
+                       echo "gzip"
+                       ;;
+               *)
+                       echo "unknown $magic"
+                       ;;
+       esac
+}
+
 part_magic_efi() {
        local magic=$(get_magic_gpt "$@")
        [ "$magic" = "EFI PART" ]
diff --git a/package/base-files/files/lib/upgrade/emmc.sh 
b/package/base-files/files/lib/upgrade/emmc.sh
index c3b02864aa91..49cffe1c658b 100644
--- a/package/base-files/files/lib/upgrade/emmc.sh
+++ b/package/base-files/files/lib/upgrade/emmc.sh
@@ -58,7 +58,7 @@ emmc_copy_config() {
 }
 
 emmc_do_upgrade() {
-       local file_type=$(identify $1)
+       local file_type=$(identify_magic_long "$(get_magic_long "$1")")
 
        case "$file_type" in
                "fit")  emmc_upgrade_fit $1;;
diff --git a/package/base-files/files/lib/upgrade/nand.sh 
b/package/base-files/files/lib/upgrade/nand.sh
index 1019b9927c02..3907d868f879 100644
--- a/package/base-files/files/lib/upgrade/nand.sh
+++ b/package/base-files/files/lib/upgrade/nand.sh
@@ -63,40 +63,12 @@ get_magic_long_tar() {
        (tar xO${3}f "$1" "$2" | dd bs=4 count=1 | hexdump -v -n 4 -e '1/1 
"%02x"') 2> /dev/null
 }
 
-identify_magic() {
-       local magic=$1
-       case "$magic" in
-               "55424923")
-                       echo "ubi"
-                       ;;
-               "31181006")
-                       echo "ubifs"
-                       ;;
-               "68737173")
-                       echo "squashfs"
-                       ;;
-               "d00dfeed")
-                       echo "fit"
-                       ;;
-               "4349"*)
-                       echo "combined"
-                       ;;
-               "1f8b"*)
-                       echo "gzip"
-                       ;;
-               *)
-                       echo "unknown $magic"
-                       ;;
-       esac
-}
-
-
 identify() {
-       identify_magic $(nand_get_magic_long "$@")
+       identify_magic_long $(nand_get_magic_long "$@")
 }
 
 identify_tar() {
-       identify_magic $(get_magic_long_tar "$@")
+       identify_magic_long $(get_magic_long_tar "$@")
 }
 
 identify_if_gzip() {
-- 
2.35.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to