diff --git a/hanwckf_mt7986.sh b/hanwckf_mt7986.sh new file mode 100644 index 0000000..79cbe3a --- /dev/null +++ b/hanwckf_mt7986.sh @@ -0,0 +1,248 @@ +#!/bin/bash + +# 设置颜色 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +BLUE='\033[0;34m' +NC='\033[0m' # 无颜色 + +# 克隆 OpenWrt 源码 +echo -e "${YELLOW}克隆 OpenWrt 源码...${NC}" +git clone --depth=1 https://github.com/hanwckf/immortalwrt-mt798x.git openwrt + +# 更新 feeds 并安装 +cd openwrt || exit +echo -e "${GREEN}更新并安装 feeds...${NC}" +echo -e "\nsrc-git extraipk https://github.com/xiangfeidexiaohuo/extra-ipk" >> feeds.conf.default +./scripts/feeds update -a +./scripts/feeds install -a + +# 修改默认IP +echo -e "${YELLOW}修改默认IP${NC}" +sed -i 's/192.168.1.1/10.0.0.1/g' package/base-files/files/bin/config_generate + +# 设置默认密码 +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 +echo -e "${YELLOW}profile${NC}" +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 +echo -e "${YELLOW}TTYD${NC}" +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 +echo -e "${YELLOW}Bash${NC}" +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 + +# Nginx +echo -e "${YELLOW}Nginx${NC}" +sed -i "s/large_client_header_buffers 2 1k/large_client_header_buffers 4 32k/g" feeds/packages/net/nginx-util/files/uci.conf.template +sed -i "s/client_max_body_size 128M/client_max_body_size 2048M/g" feeds/packages/net/nginx-util/files/uci.conf.template +sed -i '/client_max_body_size/a\\tclient_body_buffer_size 8192M;' feeds/packages/net/nginx-util/files/uci.conf.template +sed -i '/client_max_body_size/a\\tserver_names_hash_bucket_size 128;' feeds/packages/net/nginx-util/files/uci.conf.template +sed -i '/ubus_parallel_req/a\ ubus_script_timeout 600;' feeds/packages/net/nginx/files-luci-support/60_nginx-luci-support +sed -ri "/luci-webui.socket/i\ \t\tuwsgi_send_timeout 600\;\n\t\tuwsgi_connect_timeout 600\;\n\t\tuwsgi_read_timeout 600\;" feeds/packages/net/nginx/files-luci-support/luci.locations +sed -ri "/luci-cgi_io.socket/i\ \t\tuwsgi_send_timeout 600\;\n\t\tuwsgi_connect_timeout 600\;\n\t\tuwsgi_read_timeout 600\;" feeds/packages/net/nginx/files-luci-support/luci.locations + +# uwsgi +echo -e "${YELLOW}uwsgi${NC}" +sed -i 's,procd_set_param stderr 1,procd_set_param stderr 0,g' feeds/packages/net/uwsgi/files/uwsgi.init +sed -i 's,buffer-size = 10000,buffer-size = 131072,g' feeds/packages/net/uwsgi/files-luci-support/luci-webui.ini +sed -i 's,logger = luci,#logger = luci,g' feeds/packages/net/uwsgi/files-luci-support/luci-webui.ini +sed -i '$a cgi-timeout = 600' feeds/packages/net/uwsgi/files-luci-support/luci-*.ini +sed -i 's/threads = 1/threads = 2/g' feeds/packages/net/uwsgi/files-luci-support/luci-webui.ini +sed -i 's/processes = 3/processes = 4/g' feeds/packages/net/uwsgi/files-luci-support/luci-webui.ini +sed -i 's/cheaper = 1/cheaper = 2/g' feeds/packages/net/uwsgi/files-luci-support/luci-webui.ini + +# rpcd +echo -e "${YELLOW}rpcd${NC}" +sed -i 's/option timeout 30/option timeout 60/g' package/system/rpcd/files/rpcd.config +sed -i 's#20) \* 1000#60) \* 1000#g' feeds/luci/modules/luci-base/htdocs/luci-static/resources/rpc.js + +# mwan3 +echo -e "${YELLOW}负载均衡${NC}" +sed -i 's/MultiWAN 管理器/负载均衡/g' feeds/luci/applications/luci-app-mwan3/po/zh_Hans/mwan3.po + +## +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 + +## +rm -rf ./feeds/extraipk/theme/luci-theme-argon-18.06 +rm -rf ./feeds/extraipk/theme/luci-app-argon-config-18.06 +rm -rf ./feeds/extraipk/theme/luci-theme-design +rm -rf ./feeds/extraipk/theme/luci-theme-edge +rm -rf ./feeds/extraipk/theme/luci-theme-ifit +rm -rf ./feeds/extraipk/theme/luci-theme-opentopd +rm -rf ./feeds/extraipk/theme/luci-theme-neobird + +rm -rf ./package/feeds/extraipk/luci-theme-argon-18.06 +rm -rf ./package/feeds/extraipk/luci-app-argon-config-18.06 +rm -rf ./package/feeds/extraipk/theme/luci-theme-design +rm -rf ./package/feeds/extraipk/theme/luci-theme-edge +rm -rf ./package/feeds/extraipk/theme/luci-theme-ifit +rm -rf ./package/feeds/extraipk/theme/luci-theme-opentopd +rm -rf ./package/feeds/extraipk/theme/luci-theme-neobird + + +##取消bootstrap为默认主题 +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/base-files/files/etc/openwrt_release +sed -i "s/DISTRIB_REVISION='*.*'/DISTRIB_REVISION=' By OPPEN321'/g" package/base-files/files/etc/openwrt_release + +sed -i "2iuci set istore.istore.channel='ae86_daodao'" package/emortal/default-settings/files/99-default-settings +sed -i "3iuci commit istore" package/emortal/default-settings/files/99-default-settings + + +##WiFi +sed -i "s/MT7986_AX6000_2.4G/ZeroWrt-2.4G/g" package/mtk/drivers/wifi-profile/files/mt7986/mt7986-ax6000.dbdc.b0.dat +sed -i "s/MT7986_AX6000_5G/ZeroWrt-5G/g" package/mtk/drivers/wifi-profile/files/mt7986/mt7986-ax6000.dbdc.b1.dat + +sed -i "s/MT7981_AX3000_2.4G/ZeroWrt-2.4G/g" package/mtk/drivers/wifi-profile/files/mt7981/mt7981.dbdc.b0.dat +sed -i "s/MT7981_AX3000_5G/ZeroWrt-5G/g" package/mtk/drivers/wifi-profile/files/mt7981/mt7981.dbdc.b1.dat + +##New WiFi +sed -i "s/ImmortalWrt-2.4G/ZeroWrt-2.4G/g" package/mtk/applications/mtwifi-cfg/files/mtwifi.sh +sed -i "s/ImmortalWrt-5G/ZeroWrt-5G/g" package/mtk/applications/mtwifi-cfg/files/mtwifi.sh + + +##更新FQ +rm -rf feeds/luci/applications/luci-app-passwall/* +cp -af feeds/extraipk/patch/wall-luci/luci-app-passwall/* feeds/luci/applications/luci-app-passwall/ + +rm -rf feeds/luci/applications/luci-app-ssr-plus/* +cp -af feeds/extraipk/patch/wall-luci/luci-app-ssr-plus/* feeds/luci/applications/luci-app-ssr-plus/ + +rm -rf feeds/luci/applications/luci-app-openclash/* +cp -af feeds/extraipk/patch/wall-luci/luci-app-openclash/* feeds/luci/applications/luci-app-openclash/ + + +##MosDNS +rm -rf feeds/packages/net/mosdns/* +cp -af feeds/extraipk/op-mosdns/mosdns/* feeds/packages/net/mosdns/ +rm -rf feeds/packages/net/v2ray-geodata/* +cp -af feeds/extraipk/op-mosdns/v2ray-geodata/* feeds/packages/net/v2ray-geodata/ + +##Adblock +# rm -rf feeds/luci/applications/luci-app-adblock/* +# cp -af feeds/extraipk/luci-app-adblock/* feeds/luci/applications/luci-app-adblock/ + +##FQ全部调到VPN菜单 +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-ssr-plus/luasrc/controller/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-ssr-plus/luasrc/view/shadowsocksr/*.htm + +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/controller/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/passwall/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/model/cbi/passwall/client/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/model/cbi/passwall/server/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/app_update/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/socks_auto_switch/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/global/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/haproxy/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/log/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/node_list/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/rule/*.htm +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-passwall/luasrc/view/passwall/server/*.htm + +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/controller/*.lua +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/passwall2/*.lua +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/model/cbi/passwall2/client/*.lua +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/model/cbi/passwall2/server/*.lua +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/app_update/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/socks_auto_switch/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/global/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/haproxy/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/log/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/node_list/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/rule/*.htm +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-passwall2/luasrc/view/passwall2/server/*.htm + +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-vssr/luasrc/controller/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-vssr/luasrc/model/cbi/vssr/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-vssr/luasrc/view/vssr/*.htm + +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-openclash/luasrc/controller/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-openclash/luasrc/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-openclash/luasrc/model/cbi/openclash/*.lua +sed -i 's/services/vpn/g' package/feeds/luci/luci-app-openclash/luasrc/view/openclash/*.htm + +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-bypass/luasrc/controller/*.lua +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-bypass/luasrc/model/cbi/bypass/*.lua +sed -i 's/services/vpn/g' package/feeds/extraipk/luci-app-bypass/luasrc/view/bypass/*.htm + +# 一键配置拨号 +echo -e "${YELLOW}一键配置拨号${NC}" +git clone --depth=1 https://github.com/sirpdboy/luci-app-netwizard package/luci-app-netwizard + +# 修改名称 +echo -e "${YELLOW}修改名称${NC}" +sed -i "s/hostname='.*'/hostname='ZeroWrt'/g" package/base-files/files/bin/config_generate + +# Theme +echo -e "${YELLOW}Theme${NC}" +git clone https://github.com/sirpdboy/luci-theme-kucat package/luci-theme-kucat -b js + +# 进阶设置 +echo -e "${YELLOW}进阶设置${NC}" +git clone https://github.com/sirpdboy/luci-app-advancedplus package/luci-app-advancedplus + +# NTP +echo -e "${YELLOW}NTP${NC}" +sed -i 's/0.openwrt.pool.ntp.org/ntp1.aliyun.com/g' package/base-files/files/bin/config_generate +sed -i 's/1.openwrt.pool.ntp.org/ntp2.aliyun.com/g' package/base-files/files/bin/config_generate +sed -i 's/2.openwrt.pool.ntp.org/time1.cloud.tencent.com/g' package/base-files/files/bin/config_generate +sed -i 's/3.openwrt.pool.ntp.org/time2.cloud.tencent.com/g' package/base-files/files/bin/config_generate + +# ZeroWrt选项菜单 +echo -e "${YELLOW}ZeroWrt选项菜单${NC}" +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 + + +./scripts/feeds update -a +./scripts/feeds install -a + +# 加载 .config +echo -e "${YELLOW}加载 .config${NC}" +echo -e "${YELLOW}加载自定义配置...${NC}" +curl -skL https://git.kejizero.online/zhao/files/raw/branch/main/Config/mtk.config -o .config + +# 生成默认配置 +echo -e "${GREEN}生成默认配置...${NC}" +make defconfig + +# 编译 ZeroWrt +echo -e "${BLUE}开始编译 ZeroWrt...${NC}" +echo -e "${YELLOW}使用所有可用的 CPU 核心进行并行编译...${NC}" +make -j$(nproc) || make -j1 || make -j1 V=s + +# 输出编译完成的固件路径 +echo -e "${GREEN}编译完成!固件已生成至:${NC} bin/targets"