diff --git a/Config/IPQ60XX-WIFI-YES.txt b/Config/IPQ60XX-WIFI-YES.txt index 4715c71..b207878 100644 --- a/Config/IPQ60XX-WIFI-YES.txt +++ b/Config/IPQ60XX-WIFI-YES.txt @@ -1,3 +1,21 @@ -# Placeholder for IPQ60XX-WIFI-YES.txt -# Please download manually from: -# curl -fsSL https://raw.githubusercontent.com/VIKINGYFY/OpenWRT-CI/main/Config/IPQ60XX-WIFI-YES.txt -o Config/IPQ60XX-WIFI-YES.txt +#设备平台 +CONFIG_TARGET_qualcommax=y +CONFIG_TARGET_qualcommax_ipq60xx=y +#设备列表 +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_anysafe_e1=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cmiot_ax18=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_glinet_gl-ax1800=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_glinet_gl-axt1800=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-02=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-ss-01=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_link_nn6000-v1=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_link_nn6000-v2=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_linksys_mr7350=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_linksys_mr7500=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_philips_ly1800=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_qihoo_360v6=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5-jdcloud=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_sy_y6010=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_zn_m2=y diff --git a/Config/IPQ60XX-WIFI.txt b/Config/IPQ60XX-WIFI.txt index 09e294d..0b7dcb9 100644 --- a/Config/IPQ60XX-WIFI.txt +++ b/Config/IPQ60XX-WIFI.txt @@ -1,3 +1,43 @@ -# Placeholder for IPQ60XX-WIFI.txt -# Please download manually from: -# curl -fsSL https://raw.githubusercontent.com/davidtall/OpenWRT-CI/main/Config/IPQ60XX-WIFI.txt -o Config/IPQ60XX-WIFI.txt +#CMIOT GLINET LINKSYS QIHOO REDMI XIAOMI ZN JDCLOUD +CONFIG_TARGET_qualcommax=y +CONFIG_TARGET_qualcommax_ipq60xx=y +CONFIG_TARGET_MULTI_PROFILE=y +CONFIG_TARGET_PER_DEVICE_ROOTFS=y +#设备列表 +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cmiot_ax18=y +#CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_glinet_gl-ax1800=y +#CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_glinet_gl-axt1800=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-ss-01=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdcloud_re-cs-02=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_linksys_mr7350=n +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_qihoo_360v6=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5-jdcloud=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800=y +CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_zn_m2=y + +#内核配置 +CONFIG_KERNEL_ARM_PMU=y +CONFIG_KERNEL_CFQ_GROUP_IOSCHED=y +CONFIG_KERNEL_CGROUP_DEVICE=y +CONFIG_KERNEL_CGROUP_FREEZER=y +CONFIG_KERNEL_CGROUP_HUGETLB=y +CONFIG_KERNEL_CGROUP_NET_PRIO=y +CONFIG_KERNEL_CGROUP_PERF=y +CONFIG_KERNEL_HUGETLBFS=y +CONFIG_KERNEL_HUGETLB_PAGE=y +CONFIG_KERNEL_MEMCG_SWAP_ENABLED=y +CONFIG_KERNEL_NET_CLS_CGROUP=y +CONFIG_KERNEL_PERF_EVENTS=y +# CONFIG_KERNEL_PREEMPT_RCU is not set + +#NSS配置 +CONFIG_FEED_nss_packages=n +CONFIG_FEED_sqm_scripts_nss=n +CONFIG_IPQ_MEM_PROFILE_1024=n +CONFIG_IPQ_MEM_PROFILE_512=y +CONFIG_ATH11K_MEM_PROFILE_1G=n +CONFIG_ATH11K_MEM_PROFILE_512M=y + +CONFIG_PACKAGE_sqm-scripts-nss=y +CONFIG_PACKAGE_kmod-qca-nss-crypto=y \ No newline at end of file diff --git a/Scripts/Handles.sh b/Scripts/Handles.sh index dab641d..67572be 100755 --- a/Scripts/Handles.sh +++ b/Scripts/Handles.sh @@ -1,6 +1,109 @@ #!/bin/bash -# Placeholder for Scripts/Handles.sh -# Please download manually from: -# curl -fsSL https://raw.githubusercontent.com/VIKINGYFY/OpenWRT-CI/main/Scripts/Handles.sh -o Scripts/Handles.sh -set -euo pipefail -echo "Handles.sh placeholder - please download the actual script" + +PKG_PATH="$GITHUB_WORKSPACE/wrt/package/" + +#预置HomeProxy数据 +if [ -d *"homeproxy"* ]; then + echo " " + + HP_RULE="surge" + HP_PATH="homeproxy/root/etc/homeproxy" + + rm -rf ./$HP_PATH/resources/* + + git clone -q --depth=1 --single-branch --branch "release" "https://github.com/Loyalsoldier/surge-rules.git" ./$HP_RULE/ + cd ./$HP_RULE/ && RES_VER=$(git log -1 --pretty=format:'%s' | grep -o "[0-9]*") + + echo $RES_VER | tee china_ip4.ver china_ip6.ver china_list.ver gfw_list.ver + awk -F, '/^IP-CIDR,/{print $2 > "china_ip4.txt"} /^IP-CIDR6,/{print $2 > "china_ip6.txt"}' cncidr.txt + sed 's/^\.//g' direct.txt > china_list.txt ; sed 's/^\.//g' gfw.txt > gfw_list.txt + mv -f ./{china_*,gfw_list}.{ver,txt} ../$HP_PATH/resources/ + + cd .. && rm -rf ./$HP_RULE/ + + cd $PKG_PATH && echo "homeproxy date has been updated!" +fi + +#修改argon主题字体和颜色 +if [ -d *"luci-theme-argon"* ]; then + echo " " + + cd ./luci-theme-argon/ + + sed -i "s/primary '.*'/primary '#31a1a1'/; s/'0.2'/'0.5'/; s/'none'/'bing'/; s/'600'/'normal'/" ./luci-app-argon-config/root/etc/config/argon + + cd $PKG_PATH && echo "theme-argon has been fixed!" +fi + +#修改aurora菜单式样 +if [ -d *"luci-app-aurora-config"* ]; then + echo " " + + cd ./luci-app-aurora-config/ + + sed -i "s/nav_submenu_type '.*'/nav_submenu_type 'boxed-dropdown'/g" $(find ./root/ -type f -name "*aurora") + + cd $PKG_PATH && echo "theme-aurora has been fixed!" +fi + +#修改qca-nss-drv启动顺序 +NSS_DRV="../feeds/nss_packages/qca-nss-drv/files/qca-nss-drv.init" +if [ -f "$NSS_DRV" ]; then + echo " " + + sed -i 's/START=.*/START=85/g' $NSS_DRV + + cd $PKG_PATH && echo "qca-nss-drv has been fixed!" +fi + +#修改qca-nss-pbuf启动顺序 +NSS_PBUF="./kernel/mac80211/files/qca-nss-pbuf.init" +if [ -f "$NSS_PBUF" ]; then + echo " " + + sed -i 's/START=.*/START=86/g' $NSS_PBUF + + cd $PKG_PATH && echo "qca-nss-pbuf has been fixed!" +fi + +#修复TailScale配置文件冲突 +TS_FILE=$(find ../feeds/packages/ -maxdepth 3 -type f -wholename "*/tailscale/Makefile") +if [ -f "$TS_FILE" ]; then + echo " " + + sed -i '/\/files/d' $TS_FILE + + cd $PKG_PATH && echo "tailscale has been fixed!" +fi + +#修复Rust编译失败 +RUST_FILE=$(find ../feeds/packages/ -maxdepth 3 -type f -wholename "*/rust/Makefile") +if [ -f "$RUST_FILE" ]; then + echo " " + + sed -i 's/ci-llvm=true/ci-llvm=false/g' $RUST_FILE + + cd $PKG_PATH && echo "rust has been fixed!" +fi + +#修复DiskMan编译失败 +DM_FILE="./luci-app-diskman/applications/luci-app-diskman/Makefile" +if [ -f "$DM_FILE" ]; then + echo " " + + sed -i '/ntfs-3g-utils /d' $DM_FILE + + cd $PKG_PATH && echo "diskman has been fixed!" +fi + +#修复luci-app-netspeedtest相关问题 +if [ -d *"luci-app-netspeedtest"* ]; then + echo " " + + cd ./luci-app-netspeedtest/ + + sed -i '$a\exit 0' ./netspeedtest/files/99_netspeedtest.defaults + sed -i 's/ca-certificates/ca-bundle/g' ./speedtest-cli/Makefile + + cd $PKG_PATH && echo "netspeedtest has been fixed!" +fi \ No newline at end of file diff --git a/Scripts/Packages.sh b/Scripts/Packages.sh index c2c6eea..3053dbc 100755 --- a/Scripts/Packages.sh +++ b/Scripts/Packages.sh @@ -1,6 +1,121 @@ #!/bin/bash -# Placeholder for Scripts/Packages.sh -# Please download manually from: -# curl -fsSL https://raw.githubusercontent.com/VIKINGYFY/OpenWRT-CI/main/Scripts/Packages.sh -o Scripts/Packages.sh -set -euo pipefail -echo "Packages.sh placeholder - please download the actual script" + +#安装和更新软件包 +UPDATE_PACKAGE() { + local PKG_NAME=$1 + local PKG_REPO=$2 + local PKG_BRANCH=$3 + local PKG_SPECIAL=${4:-} + local PKG_LIST=("$PKG_NAME" $5) # 第5个参数为自定义名称列表 + local REPO_NAME=${PKG_REPO#*/} + + echo " " + + # 删除本地可能存在的不同名称的软件包 + for NAME in "${PKG_LIST[@]}"; do + # 查找匹配的目录 + echo "Search directory: $NAME" + local FOUND_DIRS=$(find ../feeds/luci/ ../feeds/packages/ -maxdepth 3 -type d -iname "*$NAME*" 2>/dev/null) + + # 删除找到的目录 + if [ -n "$FOUND_DIRS" ]; then + while read -r DIR; do + rm -rf "$DIR" + echo "Delete directory: $DIR" + done <<< "$FOUND_DIRS" + else + echo "Not fonud directory: $NAME" + fi + done + + # 克隆 GitHub 仓库 + git clone --depth=1 --single-branch --branch $PKG_BRANCH "https://github.com/$PKG_REPO.git" + + # 处理克隆的仓库 + if [[ "$PKG_SPECIAL" == "pkg" ]]; then + find ./$REPO_NAME/*/ -maxdepth 3 -type d -iname "*$PKG_NAME*" -prune -exec cp -rf {} ./ \; + rm -rf ./$REPO_NAME/ + elif [[ "$PKG_SPECIAL" == "name" ]]; then + mv -f $REPO_NAME $PKG_NAME + fi +} + +# 调用示例 +# UPDATE_PACKAGE "OpenAppFilter" "destan19/OpenAppFilter" "master" "" "custom_name1 custom_name2" +# UPDATE_PACKAGE "open-app-filter" "destan19/OpenAppFilter" "master" "" "luci-app-appfilter oaf" 这样会把原有的open-app-filter,luci-app-appfilter,oaf相关组件删除,不会出现coremark错误。 + +# UPDATE_PACKAGE "包名" "项目地址" "项目分支" "pkg/name,可选,pkg为从大杂烩中单独提取包名插件;name为重命名为包名" +UPDATE_PACKAGE "argon" "sbwml/luci-theme-argon" "openwrt-25.12" +UPDATE_PACKAGE "aurora" "eamonxg/luci-theme-aurora" "master" +UPDATE_PACKAGE "aurora-config" "eamonxg/luci-app-aurora-config" "master" +UPDATE_PACKAGE "kucat" "sirpdboy/luci-theme-kucat" "master" +UPDATE_PACKAGE "kucat-config" "sirpdboy/luci-app-kucat-config" "master" + +UPDATE_PACKAGE "homeproxy" "VIKINGYFY/homeproxy" "main" +UPDATE_PACKAGE "momo" "nikkinikki-org/OpenWrt-momo" "main" +UPDATE_PACKAGE "nikki" "nikkinikki-org/OpenWrt-nikki" "main" +UPDATE_PACKAGE "openclash" "vernesong/OpenClash" "dev" "pkg" +UPDATE_PACKAGE "passwall" "Openwrt-Passwall/openwrt-passwall" "main" "pkg" +UPDATE_PACKAGE "passwall2" "Openwrt-Passwall/openwrt-passwall2" "main" "pkg" + +UPDATE_PACKAGE "luci-app-tailscale" "asvow/luci-app-tailscale" "main" + +UPDATE_PACKAGE "ddns-go" "sirpdboy/luci-app-ddns-go" "main" +UPDATE_PACKAGE "diskman" "lisaac/luci-app-diskman" "master" +UPDATE_PACKAGE "easytier" "EasyTier/luci-app-easytier" "main" +UPDATE_PACKAGE "fancontrol" "rockjake/luci-app-fancontrol" "main" +UPDATE_PACKAGE "gecoosac" "lwb1978/openwrt-gecoosac" "main" +UPDATE_PACKAGE "mosdns" "sbwml/luci-app-mosdns" "v5" "" "v2dat" +UPDATE_PACKAGE "netspeedtest" "sirpdboy/luci-app-netspeedtest" "master" "" "homebox speedtest" +UPDATE_PACKAGE "openlist2" "sbwml/luci-app-openlist2" "main" +UPDATE_PACKAGE "partexp" "sirpdboy/luci-app-partexp" "main" +UPDATE_PACKAGE "qbittorrent" "sbwml/luci-app-qbittorrent" "master" "" "qt6base qt6tools rblibtorrent" +UPDATE_PACKAGE "qmodem" "FUjr/QModem" "main" +UPDATE_PACKAGE "quickfile" "sbwml/luci-app-quickfile" "main" +UPDATE_PACKAGE "viking" "VIKINGYFY/packages" "main" "" "luci-app-timewol luci-app-wolplus" +UPDATE_PACKAGE "vnt" "lmq8267/luci-app-vnt" "main" + +#更新软件包版本 +UPDATE_VERSION() { + local PKG_NAME=$1 + local PKG_MARK=${2:-false} + local PKG_FILES=$(find ./ ../feeds/packages/ -maxdepth 3 -type f -wholename "*/$PKG_NAME/Makefile") + + if [ -z "$PKG_FILES" ]; then + echo "$PKG_NAME not found!" + return + fi + + echo -e "\n$PKG_NAME version update has started!" + + for PKG_FILE in $PKG_FILES; do + local PKG_REPO=$(grep -Po "PKG_SOURCE_URL:=https://.*github.com/\K[^/]+/[^/]+(?=.*)" $PKG_FILE) + local PKG_TAG=$(curl -sL "https://api.github.com/repos/$PKG_REPO/releases" | jq -r "map(select(.prerelease == $PKG_MARK)) | first | .tag_name") + + local OLD_VER=$(grep -Po "PKG_VERSION:=\K.*" "$PKG_FILE") + local OLD_URL=$(grep -Po "PKG_SOURCE_URL:=\K.*" "$PKG_FILE") + local OLD_FILE=$(grep -Po "PKG_SOURCE:=\K.*" "$PKG_FILE") + local OLD_HASH=$(grep -Po "PKG_HASH:=\K.*" "$PKG_FILE") + + local PKG_URL=$([[ "$OLD_URL" == *"releases"* ]] && echo "${OLD_URL%/}/$OLD_FILE" || echo "${OLD_URL%/}") + + local NEW_VER=$(echo $PKG_TAG | sed -E 's/[^0-9]+/\./g; s/^\.|\.$//g') + local NEW_URL=$(echo $PKG_URL | sed "s/\$(PKG_VERSION)/$NEW_VER/g; s/\$(PKG_NAME)/$PKG_NAME/g") + local NEW_HASH=$(curl -sL "$NEW_URL" | sha256sum | cut -d ' ' -f 1) + + echo "old version: $OLD_VER $OLD_HASH" + echo "new version: $NEW_VER $NEW_HASH" + + if [[ "$NEW_VER" =~ ^[0-9].* ]] && dpkg --compare-versions "$OLD_VER" lt "$NEW_VER"; then + sed -i "s/PKG_VERSION:=.*/PKG_VERSION:=$NEW_VER/g" "$PKG_FILE" + sed -i "s/PKG_HASH:=.*/PKG_HASH:=$NEW_HASH/g" "$PKG_FILE" + echo "$PKG_FILE version has been updated!" + else + echo "$PKG_FILE version is already the latest!" + fi + done +} + +#UPDATE_VERSION "软件包名" "测试版,true,可选,默认为否" +UPDATE_VERSION "sing-box" +#UPDATE_VERSION "tailscale" diff --git a/Scripts/Settings.sh b/Scripts/Settings.sh index 9ba5745..6fd66c4 100755 --- a/Scripts/Settings.sh +++ b/Scripts/Settings.sh @@ -1,6 +1,70 @@ #!/bin/bash -# Placeholder for Scripts/Settings.sh -# Please download manually from: -# curl -fsSL https://raw.githubusercontent.com/VIKINGYFY/OpenWRT-CI/main/Scripts/Settings.sh -o Scripts/Settings.sh -set -euo pipefail -echo "Settings.sh placeholder - please download the actual script" + +#移除luci-app-attendedsysupgrade +sed -i "/attendedsysupgrade/d" $(find ./feeds/luci/collections/ -type f -name "Makefile") +#修改默认主题 +sed -i "s/luci-theme-bootstrap/luci-theme-$WRT_THEME/g" $(find ./feeds/luci/collections/ -type f -name "Makefile") +#修改immortalwrt.lan关联IP +sed -i "s/192\.168\.[0-9]*\.[0-9]*/$WRT_IP/g" $(find ./feeds/luci/modules/luci-mod-system/ -type f -name "flash.js") +#添加编译日期标识 +sed -i "s/(\(luciversion || ''\))/(\1) + (' \/ $WRT_MARK-$WRT_DATE')/g" $(find ./feeds/luci/modules/luci-mod-status/ -type f -name "10_system.js") + +WIFI_SH=$(find ./target/linux/{mediatek/filogic,qualcommax}/base-files/etc/uci-defaults/ -type f -name "*set-wireless.sh" 2>/dev/null) +WIFI_UC="./package/network/config/wifi-scripts/files/lib/wifi/mac80211.uc" +if [ -f "$WIFI_SH" ]; then + #修改WIFI名称 + sed -i "s/BASE_SSID='.*'/BASE_SSID='$WRT_SSID'/g" $WIFI_SH + #修改WIFI密码 + sed -i "s/BASE_WORD='.*'/BASE_WORD='$WRT_WORD'/g" $WIFI_SH +elif [ -f "$WIFI_UC" ]; then + #修改WIFI名称 + sed -i "s/ssid='.*'/ssid='$WRT_SSID'/g" $WIFI_UC + #修改WIFI密码 + sed -i "s/key='.*'/key='$WRT_WORD'/g" $WIFI_UC + #修改WIFI地区 + sed -i "s/country='.*'/country='CN'/g" $WIFI_UC + #修改WIFI加密 + sed -i "s/encryption='.*'/encryption='psk2+ccmp'/g" $WIFI_UC +fi + +CFG_FILE="./package/base-files/files/bin/config_generate" +#修改默认IP地址 +sed -i "s/192\.168\.[0-9]*\.[0-9]*/$WRT_IP/g" $CFG_FILE +#修改默认主机名 +sed -i "s/hostname='.*'/hostname='$WRT_NAME'/g" $CFG_FILE + +#配置文件修改 +echo "CONFIG_PACKAGE_luci=y" >> ./.config +echo "CONFIG_LUCI_LANG_zh_Hans=y" >> ./.config +echo "CONFIG_PACKAGE_luci-theme-$WRT_THEME=y" >> ./.config +echo "CONFIG_PACKAGE_luci-app-$WRT_THEME-config=y" >> ./.config + +#手动调整的插件 +if [ -n "$WRT_PACKAGE" ]; then + echo -e "$WRT_PACKAGE" >> ./.config +fi + +#高通平台调整 +DTS_PATH="./target/linux/qualcommax/dts/" +if [[ "${WRT_TARGET^^}" == *"QUALCOMMAX"* ]]; then + #取消nss相关feed + echo "CONFIG_FEED_nss_packages=n" >> ./.config + echo "CONFIG_FEED_sqm_scripts_nss=n" >> ./.config + #开启sqm-nss插件 + echo "CONFIG_PACKAGE_luci-app-sqm=y" >> ./.config + echo "CONFIG_PACKAGE_sqm-scripts-nss=y" >> ./.config + #设置NSS版本 + echo "CONFIG_NSS_FIRMWARE_VERSION_11_4=n" >> ./.config + if [[ "${WRT_CONFIG,,}" == *"ipq50"* ]]; then + echo "CONFIG_NSS_FIRMWARE_VERSION_12_2=y" >> ./.config + else + echo "CONFIG_NSS_FIRMWARE_VERSION_12_5=y" >> ./.config + fi + #无WIFI配置调整Q6大小 + if [[ "${WRT_CONFIG,,}" == *"wifi"* && "${WRT_CONFIG,,}" == *"no"* ]]; then + find $DTS_PATH -type f ! -iname '*nowifi*' -exec sed -i 's/ipq\(6018\|8074\).dtsi/ipq\1-nowifi.dtsi/g' {} + + echo "qualcommax set up nowifi successfully!" + fi + #其他调整 + echo "CONFIG_PACKAGE_kmod-usb-serial-qualcomm=y" >> ./.config +fi