云取 YunGet

隐私说明

网盘凭证存在哪、会发给谁,以及哪些数据从来不离开这台设备。

docs/PRIVACY.md在 GitHub 上查看原文下载

这是一款装在手机上的本地应用。它没有后端服务器,我们也看不到任何使用数据 —— 这句话背后是可以逐条核对的:下面列出它什么时候联网、数据存在哪里、哪些事情它从来不做。

它会联网的时候#

什么时候去哪里
解析分享链接、浏览目录、取直链、下载对应网盘的官方接口与 CDN 地址
检查更新api.github.com 上本仓库的 Release 列表
导入 Gopeed 内核api.github.com 上上游内核仓库的 Release;或你选的镜像、网盘通道
浏览 GitHub 上的分享api.github.com、raw.githubusercontent.com
下载 GitHub 上的文件直连,或可配置的加速镜像
你自己粘贴的链接你就让它去哪里

用 DoH 的时候,域名解析请求会发往你选定的那家公共解析服务(阿里、腾讯、Google、Cloudflare 之一)。

除此之外没有出站连接。没有心跳,没有后台偷偷发起的请求。

它不做的事#

  • 没有统计。不收集设备信息、安装量、功能点击。
  • 没有广告,也没有广告 SDK。
  • 没有崩溃上报。崩溃报告只写在设备本地,可以在应用里查看、复制、分享 —— 但不会自动发给任何人。
  • 不上传日志。导出日志只有"分享到其他应用"和"保存到下载目录"两条路,都需要你手动操作。
  • 不把网盘凭证发给对应网盘之外的任何地方。 Cookie 只出现在对网盘接口和网盘直链的请求里。

数据存在哪里#

内容位置是否加密
网盘凭证(Cookie、token 等)应用数据库,按平台分表加密,见下节
下载任务与进度应用数据库否(其中请求头一项见下面的说明)
下载任务的请求头应用数据库否 —— 这里存的 Cookie、Referer、User-Agent 是明文
GitHub Token(如果你填了)应用设置(SharedPreferences)加密,用同一套密钥
诊断日志应用私有目录,上限 1MB,写满后自动截半否
崩溃报告应用私有目录否
下载的分片与临时文件应用私有缓存目录否
Gopeed 内核应用私有目录否

关于那个明文项,值得直说:应用数据库本身受 Android 的应用沙箱保护(别的应用读不到, 卸载会一并删除),但设备被 root、或者有人能直接拿到这台设备的数据库文件时, 里面的 Cookie 是可以被读出来的,而 Cookie 等价于登录状态。 介意的话,别把设备交给别人,也别用被 root 的设备。

凭证是怎么加密的#

  • 算法 AES-256-GCM(128 位认证标签),密钥由 Android Keystore 生成,不可导出。
  • 每条凭证在加密时都带一个用途标识(AAD,例如"夸克 Cookie""迅雷 refreshToken"), 用它把一条字段的密文搬到另一条字段上是解不开的。
  • 密钥刻意没有绑定"使用前必须验证指纹/锁屏密码"。这样做牺牲了一点强度, 换来的是不会因为用户改了锁屏密码就让所有凭证一起失效。
  • 密钥万一真的失效(例如系统层面重置了安全凭证),应用会清掉读不出来的那部分数据并提示重新登录, 不会反复报错卡住。

导出认证备份时#

「导出网盘认证」会生成一个 .yunget 文件,里面的内容强制加密:

  • 你设的口令经 PBKDF2-HMAC-SHA256(随机 16 字节盐、210000 次迭代)派生密钥, 再用 AES-GCM 加密。口令至少 8 位。
  • 文件会保存到公共下载目录 —— 也就是说,任何能读到这个目录的应用都可能拿到它。 传给别人之后记得删掉。
  • 口令没有找回途径,也没有后门。忘了就只能重新登录每个网盘。
  • 备份里包含蓝奏云的账号名与密码(那个平台的登录方式决定了这一点),所以这个文件值得当作密码对待。

导出日志时#

日志里可能含有下载直链(网盘直链自带签名,等于一把有时效的钥匙)、文件名、 以及部分请求信息。代码里对 Cookie、Authorization、token、sign 这类字段做了脱敏, 但不是每一行都过脱敏 —— 带完整签名的直链仍可能出现在日志里。

所以:贴到 Issue 之前自己扫一遍,或者只发给信任的人。

官网站点#

官网站点是纯静态页面,没有分析脚本、没有 Cookie、没有从第三方 CDN 拉来的资源。 里面的更新日志是发布数据,在更新网站时于本地抓取后写进文件,访客打开页面不会触发任何外部请求。

发现不一致怎么办#

这里写的都是代码在做的。如果哪一条和实际行为对不上,那是需要修的 bug —— 请在 Issues 里指出来。

← 全部文档