#!/bin/bash # yml 传入的路由器型号 PROFILE echo "Building for profile: $PROFILE" echo "Include Docker: $INCLUDE_DOCKER" # yml 传入的固件大小 ROOTFS_PARTSIZE echo "Building for ROOTFS_PARTSIZE: $ROOTSIZE" # 输出调试信息 echo "$(date '+%Y-%m-%d %H:%M:%S') - Starting build process..." # 定义所需安装的包列表 PACKAGES="" PACKAGES="$PACKAGES curl" PACKAGES="$PACKAGES luci-i18n-firewall-zh-cn" # 服务——FileBrowser 用户名admin 密码admin PACKAGES="$PACKAGES luci-i18n-filebrowser-go-zh-cn" PACKAGES="$PACKAGES luci-app-argon-config" PACKAGES="$PACKAGES luci-i18n-argon-config-zh-cn" PACKAGES="$PACKAGES luci-i18n-diskman-zh-cn" #24.10 PACKAGES="$PACKAGES luci-i18n-package-manager-zh-cn" PACKAGES="$PACKAGES luci-i18n-ttyd-zh-cn" PACKAGES="$PACKAGES luci-i18n-passwall-zh-cn" PACKAGES="$PACKAGES luci-app-openclash" PACKAGES="$PACKAGES luci-i18n-homeproxy-zh-cn" PACKAGES="$PACKAGES openssh-sftp-server" # 增加几个必备组件 方便用户安装iStore PACKAGES="$PACKAGES fdisk" PACKAGES="$PACKAGES script-utils" PACKAGES="$PACKAGES luci-i18n-samba4-zh-cn" # 判断是否需要编译 Docker 插件 if [ "$INCLUDE_DOCKER" = "yes" ]; then PACKAGES="$PACKAGES luci-i18n-dockerman-zh-cn" echo "Adding package: luci-i18n-dockerman-zh-cn" fi # 若构建openclash 则添加内核 if echo "$PACKAGES" | grep -q "luci-app-openclash"; then echo "✅ 已选择 luci-app-openclash,添加 openclash core" mkdir -p files/etc/openclash/core # Download clash_meta META_URL="https://raw.githubusercontent.com/vernesong/OpenClash/core/master/meta/clash-linux-arm64.tar.gz" wget -qO- $META_URL | tar xOvz > files/etc/openclash/core/clash_meta chmod +x files/etc/openclash/core/clash_meta # Download GeoIP and GeoSite wget -q https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat -O files/etc/openclash/GeoIP.dat wget -q https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat -O files/etc/openclash/GeoSite.dat else echo "⚪️ 未选择 luci-app-openclash" fi # 构建镜像 echo "$(date '+%Y-%m-%d %H:%M:%S') - Building image with the following packages:" echo "$PACKAGES" make image PROFILE=$PROFILE PACKAGES="$PACKAGES" FILES="/home/build/immortalwrt/files" ROOTFS_PARTSIZE=$ROOTSIZE if [ $? -ne 0 ]; then echo "$(date '+%Y-%m-%d %H:%M:%S') - Error: Build failed!" exit 1 fi echo "$(date '+%Y-%m-%d %H:%M:%S') - Build completed successfully."