/
UCS
/
openwrt
Обзор
Документация
Войти
/
UCS
/
openwrt
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/functions.sh
48 строк
931 B
Sven Eckelmann
images: Fix sysupgrade.tar for devices with NOR flash
22 дек 2020, 21:11
22 дек 2020, 21:11
3599ea5
Код
Авторство
О чём код?
#!/bin/sh get_magic_word() { dd if=$1 bs=4 count=1 2>/dev/null | od -A n -N 4 -t x1 | tr -d ' ' } get_post_padding_word() { local rootfs_length="$(stat -c%s "$1")" [ "$rootfs_length" -ge 4 ] || return rootfs_length=$((rootfs_length-4)) # the JFFS2 end marker must be on a 4K boundary (often 64K or 256K) local unaligned_bytes=$((rootfs_length%4096)) [ "$unaligned_bytes" = 0 ] || return # skip rootfs data except the potential EOF marker dd if="$1" bs=1 skip="$rootfs_length" 2>/dev/null | od -A n -N 4 -t x1 | tr -d ' ' } get_fs_type() { local magic_word="$(get_magic_word "$1")" case "$magic_word" in "3118"*) echo "ubifs" ;; "68737173") local post_padding_word="$(get_post_padding_word "$1")" case "$post_padding_word" in "deadc0de") echo "squashfs-jffs2" ;; *) echo "squashfs" ;; esac ;; *) echo "unknown" ;; esac } round_up() { echo "$(((($1 + ($2 - 1))/ $2) * $2))" }