#!/bin/bash # 设置颜色 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' NC='\033[0m' # 无颜色 # 输出颜色信息 echo -e "${GREEN}开始设置环境并更新系统...${NC}" # 设置环境并更新系统 sudo apt-get install -y curl sudo rm -rf /etc/apt/sources.list.d sudo bash -c "curl -skL https://git.kejizero.online/zhao/files/raw/branch/main/Rely/sources-24.04.list > /etc/apt/sources.list" sudo apt-get update # 安装依赖包 echo -e "${BLUE}安装所需的依赖包...${NC}" sudo apt-get install -y build-essential flex bison cmake g++ gawk gcc-multilib g++-multilib gettext git gnutls-dev \ libfuse-dev libncurses5-dev libssl-dev python3 python3-pip python3-ply python3-pyelftools rsync unzip zlib1g-dev \ file wget subversion patch upx-ucl autoconf automake curl asciidoc binutils bzip2 lib32gcc-s1 libc6-dev-i386 uglifyjs \ msmtp texinfo libreadline-dev libglib2.0-dev xmlto libelf-dev libtool autopoint antlr3 gperf ccache swig coreutils \ haveged scons libpython3-dev rename qemu-utils jq # 清理 apt 缓存 sudo apt-get clean # 克隆 OpenWrt 源码 echo -e "${YELLOW}克隆 OpenWrt 源码...${NC}" git clone -b openwrt-24.10 --single-branch --filter=blob:none https://github.com/openwrt/openwrt # 更新 feeds 并安装 cd openwrt || exit echo -e "${GREEN}更新并安装 feeds...${NC}" ./scripts/feeds update -a ./scripts/feeds install -a # 设置默认密码 echo -e "${BLUE}设置默认密码...${NC}" sed -i 's/root::0:0:99999:7:::/root:$1$V4UetPzk$CYXluq4wUazHjmCDBCqXF.:0:0:99999:7:::/g' /etc/shadow sed -i 's/root:::0:99999:7:::/root:$1$V4UetPzk$CYXluq4wUazHjmCDBCqXF.:0:0:99999:7:::/g' /etc/shadow # profile sed -i 's#\\u@\\h:\\w\\\$#\\[\\e[32;1m\\][\\u@\\h\\[\\e[0m\\] \\[\\033[01;34m\\]\\W\\[\\033[00m\\]\\[\\e[32;1m\\]]\\[\\e[0m\\]\\\$#g' package/base-files/files/etc/profile sed -ri 's/(export PATH=")[^"]*/\1%PATH%:\/opt\/bin:\/opt\/sbin:\/opt\/usr\/bin:\/opt\/usr\/sbin/' package/base-files/files/etc/profile sed -i '/PS1/a\export TERM=xterm-color' package/base-files/files/etc/profile # TTYD sed -i 's/services/system/g' feeds/luci/applications/luci-app-ttyd/root/usr/share/luci/menu.d/luci-app-ttyd.json sed -i '3 a\\t\t"order": 50,' feeds/luci/applications/luci-app-ttyd/root/usr/share/luci/menu.d/luci-app-ttyd.json sed -i 's/procd_set_param stdout 1/procd_set_param stdout 0/g' feeds/packages/utils/ttyd/files/ttyd.init sed -i 's/procd_set_param stderr 1/procd_set_param stderr 0/g' feeds/packages/utils/ttyd/files/ttyd.init # bash sed -i 's#ash#bash#g' package/base-files/files/etc/passwd sed -i '\#export ENV=/etc/shinit#a export HISTCONTROL=ignoredups' package/base-files/files/etc/profile mkdir -p files/root curl -so files/root/.bash_profile https://git.kejizero.online/zhao/files/raw/branch/main/root/.bash_profile curl -so files/root/.bashrc https://git.kejizero.online/zhao/files/raw/branch/main/root/.bashrc #补充汉化 echo -e "${BLUE}补充汉化${NC}" echo -e "\nmsgid \"Control\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "msgstr \"控制\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "\nmsgid \"NAS\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "msgstr \"网络存储\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "\nmsgid \"VPN\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "msgstr \"魔法网络\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "\nmsgid \"Temperature\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po echo -e "msgstr \"温度\"" >> feeds/luci/modules/luci-base/po/zh_Hans/base.po ##配置ip等 echo -e "${BLUE}#配置ip等${NC}" sed -i 's|^TARGET_|# TARGET_|g; s|# TARGET_DEVICES += phicomm-k3|TARGET_DEVICES += phicomm-k3| ; s|# TARGET_DEVICES += phicomm_k3|TARGET_DEVICES += phicomm_k3|' target/linux/bcm53xx/image/Makefile sed -i 's/192.168.1.1/10.0.0.1/g' package/base-files/files/bin/config_generate sed -i 's/192.168.1.1/10.0.0.1/g' package/base-files/luci2/bin/config_generate ##取消bootstrap为默认主题 rm -rf ./feeds/luci/themes/luci-theme-argon rm -rf ./feeds/luci/themes/luci-theme-design rm -rf ./feeds/luci/themes/luci-theme-argon-mod rm -rf ./package/feeds/luci/luci-theme-argon rm -rf ./package/feeds/luci/luci-theme-design rm -rf ./package/feeds/luci/luci-theme-argon-mod sed -i '/set luci.main.mediaurlbase=\/luci-static\/bootstrap/d' feeds/luci/themes/luci-theme-bootstrap/root/etc/uci-defaults/30_luci-theme-bootstrap sed -i 's/luci-theme-bootstrap/luci-theme-kucat/g' feeds/luci/collections/luci/Makefile sed -i 's/luci-theme-bootstrap/luci-theme-kucat/g' feeds/luci/collections/luci-nginx/Makefile ##加入作者信息 sed -i "s/DISTRIB_DESCRIPTION='*.*'/DISTRIB_DESCRIPTION='ZeroWrt-$(date +%Y%m%d)'/g" package/lean/default-settings/files/zzz-default-settings sed -i "s/DISTRIB_REVISION='*.*'/DISTRIB_REVISION=' By OPPEN321'/g" package/lean/default-settings/files/zzz-default-settings sed -i "2iuci set istore.istore.channel='zero_oppen321'" package/lean/default-settings/files/zzz-default-settings sed -i "3iuci commit istore" package/lean/default-settings/files/zzz-default-settings ##更改主机名 sed -i "s/hostname='.*'/hostname='ZeroWrt'/g" package/base-files/files/bin/config_generate sed -i "s/hostname='.*'/hostname='ZeroWrt'/g" package/base-files/luci2/bin/config_generate ##WiFi sed -i "s/LEDE/ZeroWrt/g" package/kernel/mac80211/files/lib/wifi/mac80211.sh ### fix speed sed -i "s/speed = <2500>;/speed = <1000>;/g" target/linux/mediatek/dts/mt7622-*.dts sed -i "s/speed = <2500>;/speed = <1000>;/g" target/linux/mediatek/dts/mt7623a-*.dts sed -i "s/speed = <2500>;/speed = <1000>;/g" target/linux/mediatek/dts/mt7981b-*.dts sed -i "s/speed = <2500>;/speed = <1000>;/g" target/linux/mediatek/dts/mt7986a-*.dts sed -i "s/speed = <2500>;/speed = <1000>;/g" target/linux/mediatek/dts/mt7622-*.dtsi sed -i "s/speed = <2500>;/speed = <1000>;/g" target/linux/mediatek/dts/mt7623a-*.dtsi ## sed -i '/option Interface/d' package/network/services/dropbear/files/dropbear.config ## rm -rf ./package/lean/k3screenctrl ## rockchip cp -af feeds/2305ipk/patch/rockchip/* target/linux/rockchip/armv8/base-files/ # 进阶设置 git clone https://github.com/sirpdboy/luci-app-advancedplus package/luci-app-advancedplus # theme git clone https://github.com/sirpdboy/luci-theme-kucat package/luci-theme-kucat -b js # 设置向导 git clone --depth=1 https://github.com/sirpdboy/luci-app-netwizard package/luci-app-netwizard # ZeroWrt选项菜单 mkdir -p files/bin curl -L -o files/bin/ZeroWrt https://git.kejizero.online/zhao/files/raw/branch/main/bin/ZeroWrt chmod +x files/bin/ZeroWrt mkdir -p files/root curl -L -o files/root/version.txt https://git.kejizero.online/zhao/files/raw/branch/main/bin/version.txt chmod +x files/root/version.txt # 加载 .config echo -e "${YELLOW}加载 .config${NC}" echo -e "${YELLOW}加载自定义配置...${NC}" curl -skL https://raw.githubusercontent.com/oppen321/ZeroWrt/refs/heads/master/configs/ipq807x.config -o .config # 生成默认配置 echo -e "${GREEN}生成默认配置...${NC}" make defconfig # 编译 ZeroWrt echo -e "${BLUE}开始编译 ZeroWrt...${NC}" echo -e "${YELLOW}使用所有可用的 CPU 核心进行并行编译...${NC}" make -j$(nproc) || \ echo -e "${RED}并行编译失败,回退到单核编译...${NC}" && make -j1 || \ echo -e "${RED}单核编译失败,启用详细输出调试...${NC}" && make -j1 V=s # 输出编译完成的固件路径 echo -e "${GREEN}编译完成!固件已生成至:${NC} bin/targets"