Skip to content

Account Sync

AngelaNexus Wiki Sync edited this page Oct 1, 2026 · 1 revision

AngelaNexus 账户、云同步与备份恢复规范

目标

AngelaNexus 五个平台共用同一个用户账户体系,但共享的是用户账户公共数据,不是把各平台本地状态强行做成完全相同。

目标平台:Android / iOS / Windows / macOS / Linux。

三层数据模型

1. Account Shared Data — 云端公共数据

登录同一 AngelaNexus 账户后,各平台可读取同一份用户公共数据:

  • 配置 Profiles
  • 订阅来源与导入来源元数据
  • 节点/代理偏好
  • 策略组与选择偏好
  • 路由策略
  • 防泄露/安全偏好
  • GFW 相关用户策略偏好
  • 规则覆写
  • UI 偏好
  • 应用通用偏好

这些数据使用平台无关的数据模型,不能因为 Android、Windows 或其他平台的实现差异而分叉成不同核心语义。

2. Platform State — 账户关联但平台独立

以下状态可以随账户同步“偏好”,但实际执行状态保持平台差异:

  • Android VPN 授权状态
  • iOS Network Extension 状态
  • Windows TUN/WFP 状态
  • macOS Network Extension/TUN 状态
  • Linux TUN/routing 状态
  • 系统代理设置
  • 后台服务状态
  • 托盘/菜单栏状态
  • 平台 UI 布局
  • 平台快捷键
  • 平台网络接口选择

跨平台恢复时只恢复语义上可迁移的设置;平台不支持的字段必须明确标记为“平台不支持”,不得伪造成功。

3. Local / Device-only Data — 永不进入普通云同步

默认不上传:

  • 密钥
  • Access Token / Refresh Token
  • 私钥
  • VPN/系统授权凭据
  • 设备密钥
  • OS Credential Manager / Keychain / Keystore 内容
  • 本地日志
  • 临时缓存
  • 当前 VPN 会话
  • 当前内核运行时状态

这些数据由各平台安全存储负责。

账户与同步原则

  1. 同一账户在五个平台使用同一账户身份。
  2. 云端保存公共数据的规范化版本。
  3. 平台差异由 Platform Bridge 解释,不污染 Shared UI/Core。
  4. 云同步不是“把整个设备复制到另一台设备”。
  5. 同步失败不能导致本地配置丢失。
  6. 离线时继续使用本地数据;重新联网后再同步。
  7. 冲突必须可解释、可恢复,不能静默覆盖用户数据。
  8. 删除操作需要可追踪的版本/变更记录,避免旧设备重新上线后把已删除内容恢复回来。

备份与恢复

APP 必须提供独立的:

  • 立即备份
  • 自动备份设置
  • 从云备份恢复
  • 从本地备份文件恢复
  • 备份历史
  • 备份版本/时间/来源平台查看
  • 恢复前预览
  • 选择性恢复
  • 恢复后校验

云备份

云备份保存账户公共数据的版本快照。恢复到另一平台时:

  1. 验证账户身份;
  2. 验证备份格式与版本;
  3. 展示将恢复的数据;
  4. 将平台无关数据恢复到 Shared Core;
  5. 只应用目标平台支持的 Platform State;
  6. 对不支持的字段给出明确提示;
  7. 完成后重新进行安全策略、配置格式和内核绑定校验。

本地备份

统一备份格式:angelanexus-backup。

备份文件必须带:

  • format
  • formatVersion
  • schemaVersion
  • accountId
  • createdAt
  • sourcePlatform
  • included-data manifest

默认不包含安全凭据和设备密钥。

如果未来提供“包含敏感凭据的加密备份”,必须作为独立、高风险、明确确认的功能,并使用端到端加密设计;不能把凭据悄悄加入普通备份。

平台差异示例

数据/能力 Android iOS Windows macOS Linux
账户身份 共享 共享 共享 共享 共享
Profiles 共享 共享 共享 共享 共享
路由策略 共享 共享 共享 共享 共享
安全策略 共享 共享 共享 共享 共享
GFW 用户策略 共享 共享 共享 共享 共享
VPN 授权 Android 独立 iOS 独立 平台独立 平台独立 平台独立
系统代理 平台实现 平台限制 平台实现 平台实现 平台实现
安全凭据 Keystore Keychain OS Credential Store Keychain Secret Service/系统机制
当前内核进程 本机 本机 本机 本机 本机
当前网络接口 本机 本机 本机 本机 本机

UI 要求

“账户与数据”作为 Settings 中的独立模块:

  • 账户
  • 云同步
  • 备份与恢复
  • 同步状态
  • 最后同步时间
  • 设备列表
  • 数据版本
  • 冲突处理
  • 隐私与数据范围

首页只显示简洁同步状态,不把账户同步信息挤占核心代理操作区域。

安全边界

云账户系统不能成为绕过本地安全策略的入口。任何恢复的数据重新进入 Core 后,都必须经过现有安全策略、配置验证、格式嗅探、内核能力检查和 fail-closed 边界验证。

账户登录成功 ≠ 代理已经启动。

云同步成功 ≠ 配置已经在本机生效。

恢复完成 ≠ VPN/TUN 已经建立。

所有状态必须由真实 Platform/Core 状态确认。

Clone this wiki locally