aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files/files/lib/functions.sh')
-rwxr-xr-xpackage/base-files/files/lib/functions.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index 85ebc2aeb1..6f23e0b8b2 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -260,6 +260,26 @@ mtd_get_mac_ascii()
[ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"
}
+mtd_get_blob()
+{
+ local mtdname="$1"
+ local offset="$2"
+ local count="$3"
+ local firmware="$4"
+ local part
+
+ part=$(find_mtd_part "$mtdname")
+ if [ -z "$part" ]; then
+ echo "mtd_get_blob: partition $mtdname not found!" >&2
+ return 1
+ fi
+
+ dd if=$part of=$firmware bs=1 skip=$offset count=$count 2>/dev/null || {
+ echo "mtd_get_blob: failed to extract $firmware from $part" >&2
+ return 1
+ }
+}
+
mtd_get_mac_binary() {
local mtdname="$1"
local offset="$2"