chore:actions

This commit is contained in:
dichgrem
2026-01-18 15:41:16 +08:00
parent f69b2749db
commit 15e1df01f5
2 changed files with 232 additions and 44 deletions

80
diy.sh
View File

@@ -14,15 +14,67 @@ echo "🚀 添加自定义 feed 源..."
echo "✅ feeds 添加完成"
# 检测项目类型OpenWrt 或 ImmortalWrt
DETECT_TARGET_FILE="package/base-files/files/etc/openwrt_release"
if [ -f "$DETECT_TARGET_FILE" ]; then
if grep -qi "immortalwrt" "$DETECT_TARGET_FILE"; then
TARGET_TYPE="ImmortalWrt"
elif grep -qi "openwrt" "$DETECT_TARGET_FILE"; then
TARGET_TYPE="OpenWrt"
else
TARGET_TYPE="OpenWrt"
fi
else
# 如果检测文件不存在,通过其他方式判断
if [ -d "feeds/packages" ]; then
TARGET_TYPE="ImmortalWrt"
else
TARGET_TYPE="OpenWrt"
fi
fi
echo "📋 检测到目标类型:$TARGET_TYPE"
# 1. 默认 hostname
sed -i "s/ImmortalWrt/Dwrt/g" package/base-files/files/bin/config_generate
CONFIG_GEN_FILE="package/base-files/files/bin/config_generate"
if [ -f "$CONFIG_GEN_FILE" ]; then
if [ "$TARGET_TYPE" = "ImmortalWrt" ]; then
sed -i "s/ImmortalWrt/Dwrt/g" "$CONFIG_GEN_FILE"
else
sed -i "s/OpenWrt/Dwrt/g" "$CONFIG_GEN_FILE"
fi
echo "✅ Hostname 已修改为 Dwrt"
else
echo "⚠️ $CONFIG_GEN_FILE 不存在,跳过 hostname 修改"
fi
# 2. 默认 IP 地址
sed -i 's/192.168.2.1/192.168.1.1/' package/base-files/files/bin/config_generate
if [ -f "$CONFIG_GEN_FILE" ]; then
if grep -q "192.168.2.1" "$CONFIG_GEN_FILE"; then
sed -i 's/192.168.2.1/192.168.1.1/' "$CONFIG_GEN_FILE"
echo "✅ 默认 IP 已修改为 192.168.1.1"
elif grep -q "192.168.1.1" "$CONFIG_GEN_FILE"; then
echo "✅ 默认 IP 已经是 192.168.1.1"
else
echo "⚠️ $CONFIG_GEN_FILE 中未找到默认 IP 地址"
fi
fi
# 3. 默认 root 密码
HASH=$(openssl passwd -1 'password')
sed -i "s|root::0:0:99999|root:${HASH}:0:0:99999|" package/base-files/files/etc/shadow
SHADOW_FILE="package/base-files/files/etc/shadow"
if [ -f "$SHADOW_FILE" ]; then
HASH=$(openssl passwd -1 'password')
if grep -q "^root::" "$SHADOW_FILE"; then
sed -i "s|root::0:0:99999|root:${HASH}:0:0:99999|" "$SHADOW_FILE"
echo "✅ root 密码已设置"
elif grep -q "^root:" "$SHADOW_FILE"; then
echo "⚠️ root 账户已设置密码,跳过"
else
echo "⚠️ $SHADOW_FILE 中未找到 root 账户"
fi
else
echo "⚠️ $SHADOW_FILE 不存在,跳过 root 密码设置"
fi
# 4. 设置默认 LuCI 主题为 argon
mkdir -p package/base-files/files/etc/uci-defaults
@@ -31,6 +83,7 @@ uci set luci.main.mediaurlbase=/luci-static/argon
uci commit luci
EOF
chmod +x package/base-files/files/etc/uci-defaults/99_set_theme
echo "✅ LuCI 主题已设置为 argon"
# 5. 默认加载 BBR 拥塞控制算法
mkdir -p package/base-files/files/etc/sysctl.d
@@ -38,16 +91,28 @@ cat >package/base-files/files/etc/sysctl.d/99-bbr.conf <<'EOF'
net.core.default_qdisc=fq_codel
net.ipv4.tcp_congestion_control=bbr
EOF
echo "✅ BBR 拥塞控制算法已启用"
# 6. 修改默认 shell 为 bash
sed -i "s|/bin/ash|/bin/bash|g" package/base-files/files/etc/passwd
# 你需要在 .config 中确保包含 bash例如
# echo 'CONFIG_PACKAGE_bash=y' >> .config
PASSWD_FILE="package/base-files/files/etc/passwd"
if [ -f "$PASSWD_FILE" ]; then
if grep -q "/bin/ash" "$PASSWD_FILE"; then
sed -i "s|/bin/ash|/bin/bash|g" "$PASSWD_FILE"
echo "✅ 默认 shell 已修改为 bash"
elif grep -q "/bin/bash" "$PASSWD_FILE"; then
echo "✅ 默认 shell 已经是 bash"
else
echo "⚠️ $PASSWD_FILE 中未找到 ash 或 bash"
fi
else
echo "⚠️ $PASSWD_FILE 不存在,跳过 shell 修改"
fi
# 7. 自定义 SSH 登录横幅
mkdir -p package/base-files/files/etc
if [ -f "scripts/custom-files/banner.txt" ]; then
cp scripts/custom-files/banner.txt package/base-files/files/etc/banner
echo "✅ 使用自定义 banner"
else
cat >package/base-files/files/etc/banner <<'EOF'
| | _____ _____ ____________/ |______ | |
@@ -57,6 +122,7 @@ else
\/ \/ By Dich \/
-----------------------------------------------------
EOF
echo "✅ 默认 banner 已设置"
fi
# 8. 自定义 LuCI 概览设备型号