Files
ucvl-zonghengjia-android/README-UCVL.md
T

42 lines
4.3 KiB
Markdown
Raw Permalink Normal View History

# 纵横家 Android 客户端
版本 `1.0.1` 候选;包名 `cn.toplc.zonghengjia`。这是公司 Android 客户端的 GPL-3.0 衍生源码,不包含服务器端、账号、节点凭据或公司签名私钥。
## 已实现
- 公司账号登录、浏览器注册、设备授权、个人信息、套餐/额度/有效期。
- 由平台自动分配节点,客户端只显示实际工作节点,不提供节点选择。
- 完整保留平台下发的路由规则,支持智能/全局代理;使用 Android VpnService + HEV 隧道接管其他应用。
- 仅统计 proxy 出站的速度/流量,两条低高度曲线;直连不计入代理统计。
- Android Keystore 加密会话、同一证书覆盖升级保留配置。
- VPN 后台每 60 秒检查授权,401/403 时断开并清除会话;临时网络错误不误当账号撤销。
- 退出等待服务停止,TLS 清理在后台线程执行;系统 VPN 关闭后由 Android 恢复原网络。
## 验收边界
`acceptance/` 保存实际测试记录,不把编译成功当作手机实测。原生内核三节点 × 两模式 HTTPS、系统 VPN 独立 UID、退出/后台回收、同证书覆盖升级测试已通过。独立源码副本重新下载依赖并从头构建,通过 26 项单测;生成的 APK 解包内容与候选构建逐项相同。没有 Android 实体手机测试,尚未宣称与 Windows 全功能等价。
当前没有实现 Android 未知目标失败的全量学习闭环、持续故障自动换节点和应用内下载安装升级流程。公司已确认的规则会随连接配置下发。暂不作为全公司稳定版通知。
## 从源码构建
1. 安装 JDK 21、Python 3、Android SDK(platforms;android-37、build-tools;37.0.0 和 platform-tools);设置 `JAVA_HOME`、`ANDROID_HOME`。Windows 建议使用不含中文的项目路径。
2. 运行 `python Restore-Dependencies.py`,恢复锁定的 AAR/JNI。文件逐一校验 SHA256;不读取公司密钥。
3. 在 `V2rayNG` 运行 `gradlew :app:testPlaystoreReleaseUnitTest :app:assemblePlaystoreRelease`(Linux/macOS 用 `./gradlew`)。Gradle wrapper 为 9.4.1,AGP/Kotlin/Maven 依赖锁定在 `gradle/libs.versions.toml`。
4. 构建生成的 release APK 未签名。用自己的 Android keystore、`zipalign` 和 `apksigner` 签名后可安装;自行签名不能覆盖公司原证书安装的包,先备份数据再卸载旧包。私钥不属于本源码分发内容。
5. 公司发布工具 `Sign-Candidate.ps1` 使用本地私有 `.tools/signing/signing.properties`;此文件和 keystore 永不入库。不必使用公司密钥即可构建和运行修改版。
测试专用的 `acceptanceProbe` 是独立 UID 网络探针,不随客户端打包,不对员工发布。需要时用 `-PUCVL_ACCEPTANCE=true :acceptanceProbe:assembleDebug` 构建。`src/androidTest` 需要隔离模拟器和临时授权测试会话;仓库不附真实会话。
## 来源与许可
- v2rayNG 2.2.1,源提交 `39d2513`,https://github.com/2dust/v2rayNG ,GPL-3.0。保留原始 `LICENSE`、版权、原始说明和依赖许可;2026-09-03 UCVL 修改包含公司界面/API、完整路由桥接、流量显示、授权回收与测试。
- AndroidLibXrayLite v26.5.19,`4c3a3cd051ac6a10d27ba1347a05fff2697ea272`;对应 Xray-core `1bdb488c9ec0`,见其 `go.mod/go.sum` 及原始许可。AAR 与上游 release SHA256 一致。
- HEV SOCKS5 Tunnel `dfabaa9cadf8894eb8ebfa0f75b1fee331869b34` 及递归子模块源代码保留。可用 Android NDK 28.2.13676358 和 `compile-hevtun.sh` 自行重建;发布用 JNI 来自上游 v2rayNG 2.2.1 APK,逐 ABI 哈希锁定。
- QuickieExtended quickie-foss 1.14.0、Toasty 1.5.2;其余 AndroidX、OkHttp、Gson、MMKV 等按各自许可使用。详见 `V2rayNG/app/src/main/assets/open_source_licenses.html` 和版本目录。
- 源码副本中的 `AndroidLibXrayLite/`、`hev-socks5-tunnel/` 为带原始许可的上游快照,包含递归子模块。`SOURCE-PROVENANCE.json` 列明每个完整提交;不依赖公司私有仓库。
本程序依 GPL-3.0 提供,不提供任何担保;可以按许可证复制、修改及再分发。公司名称/Logo 保留作为原始来源标识,不表示修改后的第三方版本获得公司服务授权。公司服务器和其他平台的私有源码不在此次公开范围。
客户端公开源码:https://pro.ucvl.cn/admin/ucvl-zonghengjia-android