Files
msm8916-openwrt/dump_firmware.sh
T
2025-09-14 22:47:31 +02:00

40 lines
993 B
Bash

#!/bin/sh /etc/rc.common
# init script to extract Qualcomm MSM8916 firmware
# /etc/init.d/qcom-firmware
START=10
OUTDIR="/lib/firmware/qcom/msm8916"
FLAG="$OUTDIR/done.flag"
PARTS="modem persist fsg fsc sec dsp"
start() {
if [ -f "$FLAG" ]; then
echo "[*] Qualcomm firmware already extracted, skipping."
return 0
fi
mkdir -p "$OUTDIR"
echo "[*] Extracting Qualcomm firmware partitions..."
for part in $PARTS; do
DEV="/dev/disk/by-partlabel/$part"
if [ -e "$DEV" ]; then
echo " - Dumping $part..."
dd if="$DEV" of="$OUTDIR/$part.img" bs=1M status=none
else
echo " ! Partition $part not found at $DEV"
fi
done
echo "[*] Creating symbolic links..."
for f in $OUTDIR/*.img; do
base=$(basename "$f" .img)
ln -sf "$f" "$OUTDIR/$base"
done
# Create the flag
touch "$FLAG"
echo "[+] Firmware successfully extracted to $OUTDIR (flag created)"
}