v2rayN 中的更新系统负责保持应用程序、其代理核心、地理数据文件和服务器订阅的最新状态。本文档详细介绍了 v2rayN 如何处理各种组件的更新、更新系统的架构以及相应的更新工作流程。
v2rayN 更新系统管理以下组件的更新:
通过统一的界面,用户可以检查更新、下载并应用它们,以确保应用程序保持最新的功能和安全补丁。
更新系统采用分层架构,具有明确定义的职责。
来源:v2rayN/ServiceLib/Services/UpdateService.cs1-617 v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs1-315 v2rayN/ServiceLib/Services/DownloadService.cs1-312 v2rayN/AmazTool/UpgradeApp.cs1-116
更新过程对所有组件都遵循一致的模式。
来源:v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs76-117 v2rayN/ServiceLib/Services/UpdateService.cs12-236
协调所有更新操作的核心组件
关键方法
CheckUpdateGuiN - 处理 v2rayN 应用程序更新CheckUpdateCore - 管理代理核心(v2fly、Xray 等)的更新UpdateGeoFileAll - 更新地理数据文件UpdateSubscriptionProcess - 更新服务器订阅来源:v2rayN/ServiceLib/Services/UpdateService.cs12-616
管理更新流程的用户界面交互
来源:v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs22-314
处理与更新相关的所有网络操作
来源:v2rayN/ServiceLib/Services/DownloadService.cs11-311
CheckUpdateViewModel 调用 UpdateService.CheckUpdateGuiNUpdateService 检查 GitHub 上的最新版本CheckUpdateViewModel.UpgradeN() 来应用更新AmazTool,后者会:更新过程使用一个名为 AmazTool 的独立工具来处理主应用程序运行时可能的文件替换。
来源:v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs150-166 v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs218-238 v2rayN/AmazTool/UpgradeApp.cs9-115
CheckUpdateViewModel 调用 UpdateService.CheckUpdateCore 并传入核心类型UpdateService 将远程版本与已安装版本进行比较CheckUpdateViewModel.UpgradeCore() 将核心包解压缩到相应的 bin 目录来源:v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs168-186 v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs240-293 v2rayN/ServiceLib/Services/UpdateService.cs53-105
CheckUpdateViewModel 调用 UpdateService.UpdateGeoFileAllUpdateService 从配置的源下载最新的地理数据文件geosite.dat - 基于域的路由数据geoip.dat - 基于 IP 的路由数据来源:v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs133-147 v2rayN/ServiceLib/Services/UpdateService.cs238-616
UpdateService.UpdateSubscriptionProcess来源:v2rayN/ServiceLib/Services/UpdateService.cs107-236
更新系统可通过多个选项进行配置:
| 设置 | 描述 |
|---|---|
| CheckPreReleaseUpdate (检查预发布更新) | 是否在更新检查中包含预发布版本 |
| SelectedCoreTypes (选定的核心类型) | 在更新检查中包含哪些核心 |
| GeoSourceUrl (地理数据源 URL) | 地理数据文件的自定义 URL |
| SrsSourceUrl (SRS 源 URL) | Singbox 规则集文件的自定义 URL |
| SubConvertUrl (订阅转换 URL) | 订阅转换服务的 URL |
这些设置存储在应用程序的配置中,并通过设置 UI 进行管理。
来源:v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs32-38 v2rayN/ServiceLib/Services/UpdateService.cs486-488 v2rayN/ServiceLib/Services/UpdateService.cs566-568
更新系统旨在跨不同平台运行。
系统会检测平台和架构,以确保下载正确的文件。
来源: v2rayN/ServiceLib/Services/UpdateService.cs426-475 v2rayN/ServiceLib/ViewModels/CheckUpdateViewModel.cs278-285
更新系统是 v2rayN 的关键组成部分,可确保用户能够获取最新的功能、安全补丁和地理数据。它为更新应用程序的所有组件提供了一个统一的界面,同时处理特定于平台的manages并跨不同环境维护一致的用户体验。