├── .github └── workflows │ ├── build_padavan.yml │ └── build_padavan_multi_targets.yml ├── README.md └── doc ├── actions.png ├── build.png ├── inputs.png ├── release.png └── run-workflow.webp /.github/workflows/build_padavan.yml: -------------------------------------------------------------------------------- 1 | # Build TurBoTse's Padavan 4.4 Kernel 2 | 3 | name: Custom Build 4 | 5 | on: 6 | workflow_dispatch: 7 | inputs: 8 | target: 9 | description: "Select router device" 10 | required: true 11 | type: choice 12 | options: 13 | - 360-T6M 14 | - 360-T6M-PB 15 | - B70 16 | - BELL-A040WQ 17 | - C-Life-XG1 18 | - CR660x 19 | - DIR-878 20 | - DIR-882 21 | - EA7500 22 | - G-AX1800 23 | - G-AX1800-B 24 | - GHL 25 | - HAR-20S2U1 26 | - JCG-836PRO 27 | - JCG-AC860M 28 | - JCG-Q10Pro 29 | - JCG-Q10Pro-PB 30 | - JCG-Q11Pro 31 | - JCG-Q20 32 | - JCG-Q20-PB 33 | - JCG-Y2 34 | - JDCLOUD-RE-CP-02 35 | - JDCLOUD-RE-SP-01B 36 | - K2P 37 | - K2P-NANO 38 | - K2P-USB 39 | - KOMI-A8 40 | - MI-4 41 | - MI-R3G 42 | - MI-R3P-PB 43 | - MI-R3P-SPI 44 | - MI-R3P 45 | - MI-R4A 46 | - MR2600 47 | - MSG1500 48 | - MSG1500-Z 49 | - NETGEAR-BZV 50 | - NETGEAR-R6800 51 | - NETGEAR-R7450 52 | - NEWIFI 53 | - NEWIFI3 54 | - QM-B1 55 | - R2100 56 | - RM2100 57 | - RT-AC85P 58 | - SIM-AX1800T 59 | - TX1801 60 | - WDR8620 61 | - WRL18M4GD 62 | - WE410443-TC 63 | - WIA3300-10 64 | - WR1200JS 65 | - XY-C1 66 | - ZTE-E8820S 67 | - ZTE-E8820V2 68 | - ZTT-RX6000 69 | default: K2P 70 | toolchain: 71 | description: "Select compilation toolchain" 72 | required: true 73 | type: choice 74 | options: 75 | - mipsel-linux-musl 76 | - mipsel-linux-uclibc 77 | default: mipsel-linux-musl 78 | cpufreq: 79 | description: "Enable CPU Overclocking" 80 | type: boolean 81 | default: false 82 | mt7621_oc: 83 | description: "1000Mhz=0x312 1100Mhz=0x362 1120Mhz=0x372 1200Mhz=0x3B2" 84 | type: choice 85 | options: [ '0x312', '0x362', '0x372', '0x3B2' ] 86 | plugins: 87 | description: 'Plugin JSON, e.g. {"ss":"y","xray":"n"}' 88 | required: true 89 | type: string 90 | default: '{"shadowsocks":"y","v2ray":"n","xray":"y","trojan":"n","ssobfs":"y","smartdns":"y","vlmcsd":"y","ttyd":"n","iperf3":"n"}' 91 | customization: 92 | description: 'Customization JSON' 93 | required: true 94 | type: string 95 | default: '{"lanip":"192.168.2.1","signaccount":"admin","signpassword":"admin","wifi2gssid":"Padavan","wifi2gpsk":"1234567890","wifi5gssid":"Padavan-5G","wifi5gpsk":"1234567890"}' 96 | nanoversion: 97 | description: "Build Nano Version" 98 | type: boolean 99 | default: false 100 | release: 101 | description: "Upload to GitHub Release" 102 | type: boolean 103 | default: true 104 | oldreleases: 105 | description: "Delete Old Releases" 106 | type: boolean 107 | default: true 108 | oldworkflow: 109 | description: "Delete Old Workflows" 110 | type: boolean 111 | default: true 112 | 113 | env: 114 | FIRMWARE_AUTHOR: TurBoTse 115 | TOOLCHAIN: ${{ inputs.toolchain }} 116 | TOOLCHAIN_URL: https://github.com/TurBoTse/padavan/releases/download/toolchain/${{ inputs.toolchain }}.tar.xz 117 | CONFIGFILE: trunk/configs/templates/${{ inputs.target }}.config 118 | 119 | jobs: 120 | build: 121 | name: Build ${{ inputs.target }}-${{ inputs.toolchain }} 122 | runs-on: ubuntu-latest 123 | permissions: 124 | contents: write 125 | actions: write 126 | 127 | steps: 128 | - uses: actions/checkout@main 129 | with: 130 | path: current 131 | fetch-depth: 1 132 | - uses: actions/checkout@main 133 | with: 134 | repository: TurBoTse/padavan 135 | ref: main 136 | fetch-depth: 1 137 | 138 | - uses: hendrikmuhs/ccache-action@main 139 | with: 140 | key: ${{ inputs.target }}-${{ inputs.toolchain }} 141 | 142 | - uses: actions/setup-go@main 143 | with: 144 | go-version: '1.24.x' 145 | check-latest: true 146 | cache: false 147 | 148 | - name: Install Build Dependencies 149 | run: | 150 | sudo apt-get update 151 | sudo apt-get install -y \ 152 | bison flex gperf help2man libtool-bin texinfo python3-docutils autopoint gettext ccache \ 153 | autoconf automake liblzma-dev libltdl-dev liblzo2-dev jq 154 | echo "BUILD_DATE=$(TZ='Asia/Shanghai' date +%Y%m%d)" >> $GITHUB_ENV 155 | 156 | - name: Validate Input JSON 157 | run: | 158 | jq empty <<< '${{ inputs.plugins }}' || { echo "❌ Invalid plugins JSON"; exit 1; } 159 | jq empty <<< '${{ inputs.customization }}' || { echo "❌ Invalid customization JSON"; exit 1; } 160 | 161 | - name: Export Customization & Plugin Flags 162 | run: | 163 | export_json() { 164 | local JSON=$1 165 | local PREFIX=$2 166 | echo "$JSON" | jq -r 'to_entries[] | "\(.key)=\(.value)"' | while IFS='=' read -r k v; do 167 | echo "${PREFIX}${k^^}=$v" >> $GITHUB_ENV 168 | done 169 | } 170 | 171 | export_json '${{ inputs.customization }}' "" 172 | if [ "${{ inputs.nanoversion }}" = "true" ]; then 173 | echo "⚠️ Nano version — all plugins disabled." 174 | echo '${{ inputs.plugins }}' | jq 'with_entries(.value="n")' > plugins_fixed.json 175 | else 176 | echo '${{ inputs.plugins }}' > plugins_fixed.json 177 | fi 178 | export_json "$(cat plugins_fixed.json)" "PLUGIN_" 179 | 180 | - name: Apply Configurations 181 | run: | 182 | chmod +x trunk/custom/scripts/*.sh || true 183 | bash trunk/custom/scripts/setip.sh "$LANIP" trunk/user/shared/src/defaults.h trunk/user/www/dict/CN.dict 184 | bash trunk/custom/scripts/setaccount.sh "$SIGNACCOUNT" "$SIGNPASSWORD" trunk/user/shared/src/defaults.h 185 | bash trunk/custom/scripts/setwifi.sh "$WIFI2GSSID" "$WIFI2GPSK" "$WIFI5GSSID" "$WIFI5GPSK" trunk/user/shared/src/defaults.h 186 | 187 | for key in $(env | grep '^PLUGIN_' | cut -d= -f1); do 188 | echo "CONFIG_FIRMWARE_INCLUDE_${key#PLUGIN_}=${!key}" >> "$CONFIGFILE" 189 | done 190 | 191 | if [ "${{ inputs.cpufreq }}" = "true" ]; then 192 | echo "CONFIG_FIRMWARE_INCLUDE_OC=y" >> "$CONFIGFILE" 193 | echo "CONFIG_FIRMWARE_MT7621_OC=${{ inputs.mt7621_oc }}" >> "$CONFIGFILE" 194 | fi 195 | 196 | - name: Apply Nano Optimization 197 | if: ${{ inputs.nanoversion }} 198 | run: | 199 | for fs in ANTFS FAT EXFAT EXT2 EXT3 EXT4 XFS FUSE SWAP; do 200 | sed -i "s/CONFIG_FIRMWARE_ENABLE_${fs}=y/CONFIG_FIRMWARE_ENABLE_${fs}=n/" "$CONFIGFILE" 201 | done 202 | modules=(UVC HID SERIAL AUDIO XFRM QOS IMQ IFB NFSD NFSC CIFS NTFS_3G LPRD U2EC TCPDUMP HDPARM PARTED 203 | SMBD WINS SMBD_SYSLOG FTPD RPL2TP EAP_PEAP HTTPS SFTP DROPBEAR DROPBEAR_FAST_CODE OPENSSH OPENVPN SSWAN 204 | OPENSSL_EC OPENSSL_EXE XUPNPD MINIDLNA FIREFLY FFMPEG_NEW TRANSMISSION TRANSMISSION_WEB_CONTROL ARIA 205 | ARIA_WEB_CONTROL CURL SCUTCLIENT GDUT_DRCOM DOGCOM MINIEAP NJIT_CLIENT SOFTETHERVPN_SERVER SOFTETHERVPN_CLIENT 206 | SOFTETHERVPN_CMD VLMCSD TTYD MSD_LITE LRZSZ HTOP NANO IPERF3 DUMP1090 RTL_SDR MTR SOCAT SRELAY MENTOHUST 207 | FRPC FRPS REDSOCKS SHADOWSOCKS XRAY V2RAY TROJAN SSOBFS SINGBOX NAIVEPROXY ADBYBY DNSFORWARDER SMARTDNS 208 | ADGUARDHOME ZEROTIER ALIDDNS DDNSTO ALDRIVER SQM WIREGUARD ) 209 | for m in "${modules[@]}"; do 210 | sed -i "s/CONFIG_FIRMWARE_INCLUDE_${m}=y/CONFIG_FIRMWARE_INCLUDE_${m}=n/" "$CONFIGFILE" 211 | done 212 | 213 | - name: Build Firmware 214 | run: | 215 | make ${{ inputs.target }} TOOLCHAIN=${{ inputs.toolchain }} 216 | mkdir -p trunk/output 217 | base="${FIRMWARE_AUTHOR}-${{ inputs.target }}-4.4-${{ inputs.toolchain }}" 218 | [ "${{ inputs.nanoversion }}" = "true" ] && base="${base}-nano" 219 | [ "${{ inputs.cpufreq }}" = "true" ] && base="${base}-cpufreq-${{ inputs.mt7621_oc }}" 220 | base="${base}-${BUILD_DATE}" 221 | i=1 222 | for f in trunk/images/*.trx; do 223 | suffix="" 224 | [ $i -gt 1 ] && suffix="-$i" 225 | mv "$f" "trunk/output/${base}${suffix}.trx" 226 | i=$((i+1)) 227 | done 228 | 229 | - uses: actions/upload-artifact@main 230 | with: 231 | name: ${{ inputs.target }}-${{ inputs.toolchain }}-${{ env.BUILD_DATE }} 232 | path: trunk/output/*.trx 233 | 234 | - uses: softprops/action-gh-release@master 235 | if: ${{ inputs.release }} 236 | with: 237 | tag_name: ${{ env.BUILD_DATE }} 238 | name: ${{ env.BUILD_DATE }} 239 | body: | 240 | Build Summary: 241 | - Date: ${{ env.BUILD_DATE }} 242 | - Target: ${{ inputs.target }} 243 | - Toolchain: ${{ inputs.toolchain }} 244 | - Nano: ${{ inputs.nanoversion }} 245 | - CPU OC: ${{ inputs.cpufreq }} (${{ inputs.mt7621_oc }}) 246 | - Plugins: ${{ inputs.plugins }} 247 | - Custom: ${{ inputs.customization }} 248 | files: trunk/output/*.trx 249 | 250 | - uses: dev-drprasad/delete-older-releases@master 251 | if: ${{ inputs.oldreleases }} 252 | with: 253 | keep_latest: 1 254 | keep_min_download_counts: 1 255 | delete_tags: true 256 | env: 257 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 258 | 259 | - uses: Mattraks/delete-workflow-runs@main 260 | if: ${{ inputs.oldworkflow }} 261 | with: 262 | retain_days: 0 263 | keep_minimum_runs: 1 -------------------------------------------------------------------------------- /.github/workflows/build_padavan_multi_targets.yml: -------------------------------------------------------------------------------- 1 | # Build TurBoTse's Padavan 4.4 Kernel (Multi-target) 2 | 3 | name: Custom Multi-Target Build 4 | 5 | on: 6 | workflow_dispatch: 7 | inputs: 8 | targets: 9 | description: "Comma-separated list of router devices (e.g., K2P,MI-R3G)" 10 | required: true 11 | type: string 12 | default: K2P,R2100,MI-R3G 13 | toolchain: 14 | description: "Select compilation toolchain" 15 | required: true 16 | type: choice 17 | options: 18 | - mipsel-linux-musl 19 | - mipsel-linux-uclibc 20 | default: mipsel-linux-musl 21 | cpufreq: 22 | description: "Enable CPU Overclocking" 23 | type: boolean 24 | default: false 25 | mt7621_oc: 26 | description: "1000Mhz=0x312 1100Mhz=0x362 1120Mhz=0x372 1200Mhz=0x3B2" 27 | type: choice 28 | options: [ '0x312', '0x362', '0x372', '0x3B2' ] 29 | plugins: 30 | description: 'Plugin JSON, e.g. {"ss":"y","xray":"n"}' 31 | required: true 32 | type: string 33 | default: '{"shadowsocks":"y","v2ray":"n","xray":"y","trojan":"n","ssobfs":"y","smartdns":"y","vlmcsd":"y","ttyd":"n","iperf3":"n"}' 34 | customization: 35 | description: 'Customization JSON' 36 | required: true 37 | type: string 38 | default: '{"lanip":"192.168.2.1","signaccount":"admin","signpassword":"admin","wifi2gssid":"Padavan","wifi2gpsk":"1234567890","wifi5gssid":"Padavan-5G","wifi5gpsk":"1234567890"}' 39 | nanoversion: 40 | description: "Build Nano Version" 41 | type: boolean 42 | default: false 43 | release: 44 | description: "Upload to GitHub Release" 45 | type: boolean 46 | default: true 47 | oldreleases: 48 | description: "Delete Old Releases" 49 | type: boolean 50 | default: true 51 | oldworkflow: 52 | description: "Delete Old Workflows" 53 | type: boolean 54 | default: true 55 | 56 | env: 57 | FIRMWARE_AUTHOR: TurBoTse 58 | TOOLCHAIN: ${{ inputs.toolchain }} 59 | TOOLCHAIN_URL: https://github.com/TurBoTse/padavan/releases/download/toolchain/${{ inputs.toolchain }}.tar.xz 60 | CONFIGFILE: trunk/configs/templates/${{ inputs.target }}.config 61 | 62 | jobs: 63 | prepare: 64 | runs-on: ubuntu-latest 65 | outputs: 66 | matrix: ${{ steps.set-matrix.outputs.matrix }} 67 | steps: 68 | - name: Generate build matrix 69 | id: set-matrix 70 | run: | 71 | targets="${{ github.event.inputs.targets }}" 72 | matrix=$(echo "$targets" | jq -R 'split(",") | map({target: .})' | jq -c .) 73 | echo "matrix={\"include\": $matrix}" >> $GITHUB_OUTPUT 74 | 75 | build: 76 | name: Build (${{ matrix.target }}-${{ inputs.toolchain }}) 77 | needs: prepare 78 | runs-on: ubuntu-latest 79 | permissions: 80 | contents: write 81 | actions: write 82 | strategy: 83 | fail-fast: false 84 | matrix: ${{ fromJson(needs.prepare.outputs.matrix) }} 85 | 86 | steps: 87 | - uses: actions/checkout@main 88 | with: 89 | path: current 90 | fetch-depth: 1 91 | - uses: actions/checkout@main 92 | with: 93 | repository: TurBoTse/padavan 94 | ref: main 95 | fetch-depth: 1 96 | 97 | - uses: hendrikmuhs/ccache-action@main 98 | with: 99 | key: ${{ matrix.target }}-${{ inputs.toolchain }} 100 | 101 | - uses: actions/setup-go@main 102 | with: 103 | go-version: '1.24.x' 104 | check-latest: true 105 | cache: false 106 | 107 | - name: Install Build Dependencies 108 | run: | 109 | sudo apt-get update 110 | sudo apt-get install -y \ 111 | bison flex gperf help2man libtool-bin texinfo python3-docutils autopoint gettext ccache \ 112 | autoconf automake liblzma-dev libltdl-dev liblzo2-dev jq 113 | echo "BUILD_DATE=$(TZ='Asia/Shanghai' date +%Y%m%d)" >> $GITHUB_ENV 114 | 115 | - name: Validate Input JSON 116 | run: | 117 | jq empty <<< '${{ inputs.plugins }}' || { echo "❌ Invalid plugins JSON"; exit 1; } 118 | jq empty <<< '${{ inputs.customization }}' || { echo "❌ Invalid customization JSON"; exit 1; } 119 | 120 | - name: Export Customization & Plugin Flags 121 | run: | 122 | export_json() { 123 | local JSON=$1 124 | local PREFIX=$2 125 | echo "$JSON" | jq -r 'to_entries[] | "\(.key)=\(.value)"' | while IFS='=' read -r k v; do 126 | echo "${PREFIX}${k^^}=$v" >> $GITHUB_ENV 127 | done 128 | } 129 | 130 | export_json '${{ inputs.customization }}' "" 131 | if [ "${{ inputs.nanoversion }}" = "true" ]; then 132 | echo "⚠️ Nano version — all plugins disabled." 133 | echo '${{ inputs.plugins }}' | jq 'with_entries(.value="n")' > plugins_fixed.json 134 | else 135 | echo '${{ inputs.plugins }}' > plugins_fixed.json 136 | fi 137 | export_json "$(cat plugins_fixed.json)" "PLUGIN_" 138 | 139 | - name: Apply Configurations 140 | run: | 141 | chmod +x trunk/custom/scripts/*.sh || true 142 | bash trunk/custom/scripts/setip.sh "$LANIP" trunk/user/shared/src/defaults.h trunk/user/www/dict/CN.dict 143 | bash trunk/custom/scripts/setaccount.sh "$SIGNACCOUNT" "$SIGNPASSWORD" trunk/user/shared/src/defaults.h 144 | bash trunk/custom/scripts/setwifi.sh "$WIFI2GSSID" "$WIFI2GPSK" "$WIFI5GSSID" "$WIFI5GPSK" trunk/user/shared/src/defaults.h 145 | 146 | for key in $(env | grep '^PLUGIN_' | cut -d= -f1); do 147 | echo "CONFIG_FIRMWARE_INCLUDE_${key#PLUGIN_}=${!key}" >> "$CONFIGFILE" 148 | done 149 | 150 | if [ "${{ inputs.cpufreq }}" = "true" ]; then 151 | echo "CONFIG_FIRMWARE_INCLUDE_OC=y" >> "$CONFIGFILE" 152 | echo "CONFIG_FIRMWARE_MT7621_OC=${{ inputs.mt7621_oc }}" >> "$CONFIGFILE" 153 | fi 154 | 155 | - name: Apply Nano Optimization 156 | if: ${{ inputs.nanoversion }} 157 | run: | 158 | for fs in ANTFS FAT EXFAT EXT2 EXT3 EXT4 XFS FUSE SWAP; do 159 | sed -i "s/CONFIG_FIRMWARE_ENABLE_${fs}=y/CONFIG_FIRMWARE_ENABLE_${fs}=n/" "$CONFIGFILE" 160 | done 161 | modules=(UVC HID SERIAL AUDIO XFRM QOS IMQ IFB NFSD NFSC CIFS NTFS_3G LPRD U2EC TCPDUMP HDPARM PARTED 162 | SMBD WINS SMBD_SYSLOG FTPD RPL2TP EAP_PEAP HTTPS SFTP DROPBEAR DROPBEAR_FAST_CODE OPENSSH OPENVPN SSWAN 163 | OPENSSL_EC OPENSSL_EXE XUPNPD MINIDLNA FIREFLY FFMPEG_NEW TRANSMISSION TRANSMISSION_WEB_CONTROL ARIA 164 | ARIA_WEB_CONTROL CURL SCUTCLIENT GDUT_DRCOM DOGCOM MINIEAP NJIT_CLIENT SOFTETHERVPN_SERVER SOFTETHERVPN_CLIENT 165 | SOFTETHERVPN_CMD VLMCSD TTYD MSD_LITE LRZSZ HTOP NANO IPERF3 DUMP1090 RTL_SDR MTR SOCAT SRELAY MENTOHUST 166 | FRPC FRPS REDSOCKS SHADOWSOCKS XRAY V2RAY TROJAN SSOBFS SINGBOX NAIVEPROXY ADBYBY DNSFORWARDER SMARTDNS 167 | ADGUARDHOME ZEROTIER ALIDDNS DDNSTO ALDRIVER SQM WIREGUARD ) 168 | for m in "${modules[@]}"; do 169 | sed -i "s/CONFIG_FIRMWARE_INCLUDE_${m}=y/CONFIG_FIRMWARE_INCLUDE_${m}=n/" "$CONFIGFILE" 170 | done 171 | 172 | - name: Build Firmware 173 | run: | 174 | make ${{ matrix.target }} TOOLCHAIN=${{ inputs.toolchain }} 175 | mkdir -p trunk/output 176 | base="${FIRMWARE_AUTHOR}-${{ matrix.target }}-4.4-${{ inputs.toolchain }}" 177 | [ "${{ inputs.nanoversion }}" = "true" ] && base="${base}-nano" 178 | [ "${{ inputs.cpufreq }}" = "true" ] && base="${base}-cpufreq-${{ inputs.mt7621_oc }}" 179 | base="${base}-${BUILD_DATE}" 180 | i=1 181 | for f in trunk/images/*.trx; do 182 | suffix="" 183 | [ $i -gt 1 ] && suffix="-$i" 184 | mv "$f" "trunk/output/${base}${suffix}.trx" 185 | i=$((i+1)) 186 | done 187 | 188 | - uses: actions/upload-artifact@main 189 | with: 190 | name: ${{ matrix.target }}-${{ inputs.toolchain }}-${{ env.BUILD_DATE }} 191 | path: trunk/output/*.trx 192 | 193 | - uses: softprops/action-gh-release@master 194 | if: ${{ inputs.release }} 195 | with: 196 | tag_name: ${{ env.BUILD_DATE }} 197 | name: ${{ env.BUILD_DATE }} 198 | body: | 199 | Build Summary: 200 | - Date: ${{ env.BUILD_DATE }} 201 | - Target: ${{ matrix.target }} 202 | - Toolchain: ${{ inputs.toolchain }} 203 | - Nano: ${{ inputs.nanoversion }} 204 | - CPU OC: ${{ inputs.cpufreq }} (${{ inputs.mt7621_oc }}) 205 | - Plugins: ${{ inputs.plugins }} 206 | - Custom: ${{ inputs.customization }} 207 | files: trunk/output/*.trx 208 | 209 | - uses: dev-drprasad/delete-older-releases@master 210 | if: ${{ inputs.oldreleases }} 211 | with: 212 | keep_latest: 1 213 | keep_min_download_counts: 1 214 | delete_tags: true 215 | env: 216 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 217 | 218 | - uses: Mattraks/delete-workflow-runs@main 219 | if: ${{ inputs.oldworkflow }} 220 | with: 221 | retain_days: 0 222 | keep_minimum_runs: 1 223 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # 📦 Padavan 4.4 固件自动构建(支持多设备 / 插件 / 超频) 3 | 4 | 基于 [TurBoTse](https://github.com/TurBoTse/padavan) 的 Padavan 项目,支持多目标设备编译、插件定制、Nano 精简版构建等,完全通过 GitHub Actions 云端构建,无需本地环境! 5 | 6 | - 修改好固件配置文件再点击 [Actions](../../actions) → [Custom Build](../../actions/workflows/build_padavan.yml) → Run workflow 7 | 8 | ![run workflow](public/run-workflow.webp) 9 | 10 | 11 | ## 🧩 功能特点 | Features 12 | 13 | - ✅ 支持多设备并行构建(K2P、R2100、MI-R3G 等) 14 | - ✅ 支持定制默认 IP / WiFi / 管理账号等 15 | - ✅ 可选插件编译(如 Shadowsocks、Xray、SmartDNS 等) 16 | - ✅ 支持 MT7621 CPU 超频(最高至 1200MHz) 17 | - ✅ Nano 精简固件构建模式 18 | - ✅ 自动上传至 Releases,支持旧版本清理 19 | 20 | ## 🚀 快速开始 | Quick Start 21 | 22 | ### ✅ 1. 点击 GitHub Actions → 选择 "Custom Multi-Target Build" 23 | 24 | 25 | ### 📝 2. 填写构建参数 | Fill in Build Inputs 26 | 27 | | 输入项 | 说明 | 示例 | 28 | |--------|------|------| 29 | | `targets` | 路由器型号(逗号分隔)| `K2P,R2100` | 30 | | `toolchain` | 工具链选择 | `mipsel-linux-musl` | 31 | | `cpufreq` | 启用 CPU 超频 | `true/false` | 32 | | `mt7621_oc` | 超频频率代码 | `1000Mhz=0x312 1100Mhz=0x362 1120Mhz=0x372 1200Mhz=0x3B2` | 33 | | `plugins` | 插件 JSON 配置 | `{"ss":"y","xray":"n"}` | 34 | | `customization` | 固件定制(默认 IP、密码等) | `{"lanip":"192.168.2.1"}` | 35 | | `nanoversion` | 是否构建精简版 | `false` | 36 | | `release` | 上传到 Release | `true` | 37 | | `oldreleases` | 删除旧 Release | `true` | 38 | | `oldworkflow` | 删除旧 Workflow | `true` | 39 | 40 | 41 | ### ⚙️ 3. 等待构建完成 | Wait for Build 42 | 43 | 44 | ### 📥 4. 下载固件 | Download Firmware 45 | 46 | 47 | 在右侧的 **Releases** 页面中下载对应路由器的 `.trx` 固件文件: 48 | 49 | 命名格式如下: 50 | 51 | ``` 52 | TurBoTse-K2P-4.4-mipsel-linux-musl-nano-cpufreq-0x362-20250520.trx 53 | ``` 54 | 55 | 56 | ## 🔧 JSON 插件配置示例 | Plugin JSON Example 57 | 58 | ```json 59 | { 60 | "ss": "y", 61 | "v2ray": "n", 62 | "xray": "y", 63 | "trojan": "y", 64 | "ssobfs": "y", 65 | "smartdns": "y", 66 | "vlmcsd": "y", 67 | "ttyd": "n", 68 | "iperf3": "n" 69 | } 70 | ``` 71 | 72 | ## 🛠️ 自定义设置 | Customization JSON 示例 73 | 74 | ```json 75 | { 76 | "lanip": "192.168.2.1", 77 | "signaccount": "admin", 78 | "signpassword": "admin", 79 | "wifi2gssid": "Padavan", 80 | "wifi2gpsk": "1234567890", 81 | "wifi5gssid": "Padavan-5G", 82 | "wifi5gpsk": "1234567890" 83 | } 84 | ``` 85 | 86 | ## 💡 常见问题 | FAQ 87 | 88 | - **插件无效?** 请确认 `plugins` JSON 正确、配置项拼写无误。 89 | - **构建失败?** 检查 config.log 日志(已自动上传为 Artifact)。 90 | - **怎么添加新设备?** 只需在 `targets` 中添加设备代码,并确保对应 `.config` 文件存在。 91 | 92 | ## 🙏 致谢 | Credits 93 | 94 | - [TurBoTse](https://github.com/TurBoTse) 95 | - [Padavan Project](https://github.com/hanwckf/rt-n56u) 96 | - [GitHub Actions](https://github.com/features/actions) 97 | -------------------------------------------------------------------------------- /doc/actions.png: -------------------------------------------------------------------------------- 1 | (This is a placeholder for actions.png) -------------------------------------------------------------------------------- /doc/build.png: -------------------------------------------------------------------------------- 1 | (This is a placeholder for build.png) -------------------------------------------------------------------------------- /doc/inputs.png: -------------------------------------------------------------------------------- 1 | (This is a placeholder for inputs.png) -------------------------------------------------------------------------------- /doc/release.png: -------------------------------------------------------------------------------- 1 | (This is a placeholder for release.png) -------------------------------------------------------------------------------- /doc/run-workflow.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TurBoTse/Padavan-Build/e8ea2b483f395e97e0d8d97e461e414ff2999bc0/doc/run-workflow.webp --------------------------------------------------------------------------------