build: 通用打包脚本优化 — 产物归档 fw_apps/out/(fw_apps/build/分离防互清) + fw_content.conf 升级 M2.73 权威清单(补svc_power/svc_perf+刷新md5) + 删过时独立脚本build_fw_apps_m267.sh

This commit is contained in:
MeowOS committed 2026-08-31 00:31:06 +08:00
1 parent cc3c39ff2f
commit 6df14a44b6
3 files changed
+24 -191

No files matched your search

+16 -6
View File
@@ -9,12 +9,14 @@
# -c|--config 固件内容清单路径。默认 scripts/build/fw_content.conf。
# 传别的路径即可并存多套调试/场景配置(互不覆盖)。
# -v|--version 版本号,写入目标 /etc/meowos_version(如 0.7.62)。【必传】
# -o|--out 输出 .upt 路径(如 fw_apps/r3proii_m2_67.upt)。【必传】
# -o|--out 输出 .upt 路径(如 r3proii_m2_67.upt)。【必传】
# 若指向仓库内 fw_apps/ 下(非 out/),自动并入 fw_apps/out/ 归档。
# -b|--base fw_ssh 基线目录。默认 fw_ssh/squashfs-root。
#
# 通用步骤(读清单之外的固定逻辑,参照 build_fw_apps_m267.sh 的权威流程):
# 通用步骤(读清单之外的固定逻辑):
# 1) 解析参数
# 2) 建树:rm -rf fw_apps && mkdir -p && cp -a $BASE fw_apps/squashfs-root
# 2) 建树:rm -rf fw_apps/build && mkdir -p && cp -a $BASE fw_apps/build/squashfs-root
# (组装区 fw_apps/build/ 每次清理重建;产物 fw_apps/out/ 不受影响)
# 3) 校验基线:usr/bin/hiby_player 必须为 stock(a73f2c49…)
# 4) 解析清单:逐条 md5 校验(若填) + cp -f + chmod 755,目录自动建
# 5) 写版本:echo $VERSION > $DST/etc/meowos_version
@@ -24,6 +26,8 @@
# 8) S99ssh → S84ssh:改名(内容不变),校验一致后删除 S99ssh(清单不含 S84)
# 9) repack:hiby_os_crack/scripts/repack.sh -i $DST -k unpacked_v14/xImage -o $OUT
# 10) 体积核对(rootfs ≤ 45,088,768)+ unpack 回验 0 diff
#
# 约定:改固件内容只改 fw_content.conf(每行 <src>|<dst>|<md5>|<desc>),不改本脚本。
# ============================================================================
set -e
@@ -35,6 +39,7 @@ CONFIG="$ROOT/scripts/build/fw_content.conf"
BASE="$ROOT/fw_ssh/squashfs-root"
VERSION=""
OUT=""
OUT_DIR="$ROOT/fw_apps/out" # 产物归档目录(不受构建清理影响)
usage() {
echo "用法: $0 -c <manifest.conf> -v <version> -o <out.upt> [-b <fw_ssh/squashfs-root>]"
@@ -64,10 +69,15 @@ case "$BASE" in /*) ;; *) BASE="$ROOT/$BASE" ;; esac
case "$OUT" in /*) ;; *) OUT="$ROOT/$OUT" ;; esac
[ -f "$CONFIG" ] || { echo "!!! 清单不存在: $CONFIG"; exit 1; }
[ -d "$BASE" ] || { echo "!!! 基线不存在: $BASE"; exit 1; }
# 产物统一归档到 $ROOT/fw_apps/out/(避免某次构建清理误删;仅当 -o 指向仓库内非 out/ 路径时并入)
case "$OUT" in
"$OUT_DIR/"*) ;; # 已在 out/ 下,保持
"$ROOT/fw_apps/"*) OUT="$OUT_DIR/$(basename "$OUT")" ;; # 仓库内 fw_apps/ 下 → 并入 out/
esac
mkdir -p "$(dirname "$OUT")"
SRC="$BASE" # 基线(拷贝源)
DST="$ROOT/fw_apps/squashfs-root" # 组装目标
DST="$ROOT/fw_apps/build/squashfs-root" # 组装目标(工作区,每次构建清理重建;产物不受影响)
LOGO_DIR="$ROOT/bootlogos"
# 外围 CLI(自 rootfs /usr/bin 移除;已迁 TF 卡 MeowOS/opt/bin/)
MIGRATE_TOOLS="curl socat tmux jq rsync nano htop ncdu file xxd"
@@ -83,8 +93,8 @@ echo " OUT=$OUT"
# ---- 2) 建树(复制基线) ----
echo "==> 建树(复制基线)"
rm -rf "$ROOT/fw_apps"
mkdir -p "$ROOT/fw_apps"
rm -rf "$ROOT/fw_apps/build"
mkdir -p "$ROOT/fw_apps/build" "$OUT_DIR"
cp -a "$SRC" "$DST"
# ---- 3) 校验基线 player 为 stock ----