165 lines
7.4 KiB
Bash
165 lines
7.4 KiB
Bash
#!/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"
|