Skip to content

Jacob-Tan666/Jacob-Android-Root-Network-Modules

Repository files navigation

Jacob Android Root Network Modules

Build modules Platform Root managers

面向 Android ARM64 Root 环境的透明代理与定向流量模块集合。本仓库统一管理三个可安装模块、自研 clnc-go 内核源码、第三方组件版本锁定、可重现打包脚本与 GitHub Actions 持续集成。

Warning

这些模块会修改 iptables、DNS 和转发路径,可能影响本机及热点设备的全部网络。请先在可恢复的测试设备上验证,并确保能够进入安全模式或 Recovery 禁用模块。

项目目标

  • 用同一套版本锁和校验和管理 Mihomo、Zashboard、yq、curl 与 GeoIP MetaDB。
  • 从单一份受测试的 clnc-go 源码构建所有 ARM64 内核,避免模块之间版本漂移。
  • 将可公开的源码与个人订阅、UUID、Token 和节点配置严格分离。
  • 使本地构建和 GitHub Actions 构建使用相同入口,产物可追溯到明确版本和 SHA-256。

模块选择

模块 当前版本 核心组件 默认启动 典型用途
Box for Root v2.0.1 Mihomo + Zashboard 禁用 完整节点代理、订阅、DNS 接管、本机与热点透明代理
Jacob Box Chain v1.1.13 clnc-go + Mihomo + Zashboard 禁用 百度第一跳与自有节点第二跳的链式代理
Jacob 定向流量 v1.0.8 clnc-go 严格禁用 只使用百度 HTTP CONNECT 第一跳的精简透明 TCP 转发

Box for Root 和 Jacob Box Chain 默认使用 tproxy 模式,Mihomo TProxy 端口为 9898、Redirect 端口为 9797、DNS 端口为 1053。Jacob 定向流量的 clnc-go 透明入口为 6650,本地 SOCKS5 入口为 1081

流量路径

flowchart LR
    A[Android 本机或热点设备] --> B[iptables / TProxy / REDIRECT]
    B --> C{模块}
    C -->|Box for Root| D[Mihomo]
    C -->|Box Chain| E[Mihomo + clnc-go]
    C -->|定向流量| F[clnc-go]
    D --> G[节点 / DIRECT]
    E --> H[百度第一跳 + 第二跳节点]
    F --> I[cloudnproxy.baidu.com:443]
Loading

Important

三个模块的透明路由规则会相互冲突。同一时间只应启用其中一个。

锁定组件

components.lock.json 记录官方仓库、Release 资产、下载 URL 与 SHA-256。构建脚本会先校验下载物,哈希不匹配时立即停止,不会把未验证文件写入模块。

组件 版本 用途 上游
Mihomo v1.19.28 代理核心、DNS、规则与透明入站 MetaCubeX/mihomo
Zashboard v3.15.0 Mihomo Web Dashboard Zephyruso/zashboard
yq v4.53.3 YAML 配置处理 mikefarah/yq
curl 8.21.0 订阅、Geo 数据与连通性请求 stunnel/static-curl
GeoIP MetaDB latest@2026-07-14 Mihomo GeoIP 规则数据 MetaCubeX/meta-rules-dat
Go toolchain 1.26.5 测试并交叉编译 clnc-go go.dev

仓库结构

.
|-- packages/
|   |-- box-for-root/          # Box for Root 模块源码
|   |-- box-chain/             # Jacob Box Chain 模块源码
|   `-- directed-traffic/      # 定向流量模块与 clnc-go 源码
|-- scripts/
|   |-- Build.ps1              # 下载、校验、编译和打包
|   |-- Test.ps1               # 元数据、凭据扫描、Go 测试与 vet
|   `-- Update-Components.ps1  # 检查或刷新第三方组件锁
|-- .github/workflows/ci.yml   # GitHub Actions 构建
|-- components.lock.json       # 第三方组件版本与哈希
`-- README.md

构建期间会产生以下 Git 忽略目录:

目录 内容 是否可公开
.cache/ 已下载组件和构建暂存 不上传
dist/ 使用无凭据示例配置的发布 ZIP 可公开
local/ 本机节点、UUID 和订阅配置 不可公开
dist-local/ 注入本机配置的私用 ZIP 不可公开

环境要求

构建主机

  • Windows PowerShell 5.1+ 或 PowerShell 7(推荐)。
  • Go 1.26.5,或位于仓库根目录 _go_toolchain/go/bin/go.exe 的本地工具链。
  • 可用的 tar 命令和能够访问 GitHub Release 的网络。

Android 设备

  • ARM64 / arm64-v8a Android 设备。
  • Magisk、KernelSU、APatch 或 Kitsune Mask 之一。
  • 内核支持 SO_ORIGINAL_DST,iptables 支持 nat/REDIRECT、TProxy 及 owner --gid-owner
  • 使用热点接管时,ROM 和内核还必须允许模块管理转发与硬件 offload。

快速构建

git clone https://github.com/Jacob-Tan666/Jacob-Android-Root-Network-Modules.git
Set-Location Jacob-Android-Root-Network-Modules

# 1. 验证锁文件、模块元数据、公开 YAML 与 clnc-go
pwsh ./scripts/Test.ps1

# 2. 构建可公开的无凭据 ZIP
pwsh ./scripts/Build.ps1

产物位于 dist/

Box_for_Root_v2.0.1.zip
Jacob_Box_Chain_v1.1.13.zip
Jacob_Directed_Traffic_v1.0.8.zip
SHA256SUMS

Build.ps1 会完成以下操作:

  1. components.lock.json 读取下载地址和哈希。
  2. 下载或复用缓存的 Mihomo、Zashboard、yq、curl 和 GeoIP。
  3. 逐个验证 SHA-256,并验证 Mihomo 与 curl 解包后二进制哈希。
  4. 运行 clnc-go 测试,交叉编译 Linux ARM64 静态二进制。
  5. 为三个模块分别创建独立暂存树,注入对应组件。
  6. 生成模块内 checksums.txt 和发布目录 SHA256SUMS
  7. 验证 ZIP 使用 Android 可识别的 / 路径分隔符且必需文件齐全。

个人配置与私用构建

公开仓库只提供无节点示例:

  • Box for Root:packages/box-for-root/payload/box/mihomo/config.example.yaml
  • Jacob Box Chain:packages/box-chain/jacob_box/mihomo/chain/second-hop.example.yaml

如需保留自己的节点,请创建:

local/box-for-root.config.yaml
local/box-chain.second-hop.yaml

然后执行:

pwsh ./scripts/Build.ps1 -IncludeLocalConfig

私用产物输出到 dist-local/local/dist-local/ 均已加入 .gitignore,但提交前仍应使用 git status 和凭据扫描复核。

安装与使用

  1. 确认其他 VPN、透明代理和同类 Root 模块已停止。
  2. 在 Root 管理器中选择从本地安装,并选择一个模块 ZIP。
  3. 安装完成后重启设备。三个模块默认均不会盲目开机启动。
  4. 在模块管理器中点击 Action 启动或停止模块,仔细检查环境诊断和连通性结果。
  5. 确认本机 TCP、HTTPS、DNS 与热点客户端均符合预期后,再考虑启用开机自启。

运行数据目录

模块 Android 数据目录 主要日志
Box for Root /data/adb/box /data/adb/box/run/
Jacob Box Chain /data/adb/jacob_box /data/adb/jacob_box/run/
Jacob 定向流量 /data/adb/jacob_directed_traffic /data/adb/jacob_directed_traffic/run/traffic.log

定向流量模块每 5 秒持久化一次经 clnc-go 隧道的上下行载荷统计,但该数据不等同于运营商计费口径。

组件升级

# 只检查版本化组件是否有新版
pwsh ./scripts/Update-Components.ps1 -CheckOnly

# 更新版本、资产 URL 和 SHA-256
pwsh ./scripts/Update-Components.ps1

# 复核 module.prop 版本后重新测试和构建
pwsh ./scripts/Test.ps1
pwsh ./scripts/Build.ps1

Update-Components.ps1 不会自动替你决定模块语义版本。上游核心或面板变更后,维护者必须人工复核配置兼容性、更新 module.propCHANGELOG.md,再在 Android 实机验证。

持续集成

.github/workflows/ci.yml 在以下场景运行:

  • 推送到 main
  • Pull request。
  • 手动触发 workflow_dispatch

CI 使用 Windows Runner 和 Go 1.26.5,先执行 Test.ps1,然后构建无凭据发布包,最后上传名为 jacob-android-root-modules 的 Artifact。

故障排查

构建时 SHA-256 不匹配

  • 不要禁用校验或手工替换缓存文件。
  • 删除对应 .cache/components/ 文件后重试。
  • 如上游重新上传了同名资产,必须从官方 Release 重新核对并更新锁文件。

Action 启动后无网络

  • 再次点击 Action 让模块回滚 iptables 规则并停止服务。
  • 检查默认 IPv4 路由、移动数据状态、核心日志和端口占用。
  • 确认没有同时启用另一个本项目模块或第三方 VPN/TProxy 模块。

Dashboard 无法访问

  • 确认 Mihomo 正在运行,且 external-controllerexternal-ui 没有被订阅配置覆盖。
  • 默认 Controller 端口为 9090,使用局域网访问前请先设置 API Secret 并配置防火墙。
  • 不要把无 Secret 的 0.0.0.0:9090 长期暴露到不可信网络。

安装后循环重启或无法进入系统

进入 Root 管理器安全模式或 Recovery,禁用或删除最近安装的模块,再重启设备。不要在未确认内核与 iptables 能力时启用开机自启。

安全与隐私

  • 禁止提交订阅链接、可用 UUID、Token、节点密码、私钥或包含设备标识的日志。
  • 公开构建始终使用无凭据示例,不保证安装后立即具备可用代理节点。
  • 自动修改配置、订阅更新、GitHub Token 和镜像下载均默认关闭或留空。
  • 请只在当地法律、网络服务条款和运营商政策允许的范围内使用。

安全问题的报告方式见 SECURITY.md

参与维护

请先阅读 CONTRIBUTING.md。任何组件升级提交都应包含:

  • 锁文件版本、URL 和 SHA-256 变更。
  • 对应 module.prop 版本和 CHANGELOG.md 记录。
  • Test.ps1 与公开构建通过证明。
  • 至少一种受支持 Android Root 环境的实机验证结果。

许可证状态

本仓库尚未声明开源许可证。仓库公开不等于自动授予复制、修改、再分发或商业使用权。请由权利人在接受外部贡献或再分发前选择并添加 LICENSE

About

Reproducible Magisk, KernelSU, APatch and Kitsune network modules with Mihomo and clnc-go.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages