#!/usr/bin/env bash # 从 Android boot image 解出 Image / ramdisk.img / gaokun3.dtb # 逻辑抄自 scripts/install-gaokun3.sh,用 header offset 1648 的 dtb_size set -euo pipefail IMG="${1:?usage: $0 }" OUT="${2:?usage: $0 }" [ -f "$IMG" ] || { echo "no such file: $IMG" >&2; exit 1; } mkdir -p "$OUT" python3 - "$IMG" "$OUT" <<'PYEOF' import struct, sys, os img, out = sys.argv[1], sys.argv[2] with open(img, "rb") as f: hdr = f.read(1664) if hdr[:8] != b"ANDROID!": sys.exit("not an Android boot image (bad magic)") u32 = lambda off: struct.unpack_from("&2; exit 1; } printf " %-14s %10d bytes " "$f" "$(stat -c%s "$OUT/$f")" file -b "$OUT/$f" done echo echo "OK"