云取 YunGet

文档

下面每一篇都是仓库里的一个文件,官网与 GitHub 读的是同一份源 ——改一处,两处都对。每页都留了原文入口,想拿原始文件随时可以拿。

三分钟上手

  1. 从 下载页取当前版本的 APK;
  2. 允许「未知来源」安装(应用没有上架任何应用商店);
  3. 在「网盘」页登录你要用的网盘 —— 不登录只能看到文件名,拿不到可下载的直链;
  4. 复制一条分享链接,切回应用,点提示里的「粘贴」,解析、浏览、选中要下的文件;
  5. 任务出现在「下载」页,可以暂停、继续、删除、打开。
shell
# 想自己编译一版:
git clone https://github.com/jiayuxuan123/YunGet.git
cd YunGet
./gradlew :app:assembleRelease
# 产物:app/build/outputs/apk/release/app-release.apk
认证备份换机不必逐个重登
导出口令 → 密钥 → AES-GCM 加密
导入同一口令解密后逐条写回
密钥存储系统密钥库(Android Keystore)
是否联网不联网 —— 文件由你自己保管

口令不保存、不上传;忘了口令就只能重新登录

全部文档

项目说明

它是什么、支持哪些网盘、能做什么、怎么从源码构建 —— 就是仓库里的那篇 README。

README.md

使用说明

从粘贴一条分享链接开始:解析、浏览、取直链、下载,以及登录与凭证怎么处理。

docs/GUIDE.md

常见问题

解析失败、速度慢、换机要重登、更新检不出来 —— 这些问题的成因与处理办法。

docs/FAQ.md

从源码构建

需要的 JDK 与 SDK、签名怎么配、测试怎么跑,以及国内网络环境下的仓库镜像。

docs/BUILD.md

下载引擎

TurboDL 负责什么、应用里为什么不止一个引擎、什么时候会用到哪一个。

docs/ENGINES.md

写一个插件

插件是一段 JavaScript:能做什么、不能做什么,以及从零写一个能跑的解析器。

docs/PLUGIN-DEV.md

插件 ABI 参考

脚本能用的每一样东西:plugin / host 两个对象、能力、错误码与所有上限。

docs/PLUGIN-API.md

打包与发布

清单怎么写、签名怎么算、怎么提 PR 进官方源、怎么自建一个源、怎么发新版本。

docs/PLUGIN-PUBLISH.md

插件安全模型

信任四级、校验链,以及这份机制不做(也不打算假装做了)的那些承诺。

docs/PLUGIN-SECURITY.md

开源协议(AGPL-3.0)

本项目基于 GNU AGPL-3.0 开源,这里是协议原文,一字未改。

LICENSE

隐私说明

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

docs/PRIVACY.md

使用条款与免责声明

使用者的责任、软件提供到什么程度、下载内容的版权归属。

docs/TERMS.md

官网每一页 = 仓库一个文件13 篇
README.md项目说明
docs/GUIDE.md使用说明
docs/FAQ.md常见问题
docs/BUILD.md从源码构建
docs/ENGINES.md下载引擎
docs/PLUGIN-DEV.md写一个插件
docs/PLUGIN-API.md插件 ABI 参考
docs/PLUGIN-PUBLISH.md打包与发布
docs/PLUGIN-SECURITY.md插件安全模型
LICENSE开源协议(AGPL-3.0)
NOTICE署名与致谢
docs/PRIVACY.md隐私说明
docs/TERMS.md使用条款与免责声明

改仓库里的文件、重建站点,官网就跟着变 —— 两边不会各说各话

文档从哪来两类
仓库文件13 篇 · 与 GitHub 读同一份源
由代码生成0 篇 · 如清单字段参考
原文入口每页都留了 raw 文件链接
构建python website/build.py(纯标准库)

官网一份、GitHub 一份如果各写一遍,迟早会各说各话 —— 所以这里让两者同源

技术栈

Kotlin · Jetpack Compose · Material 3 · Room · OkHttp · TurboDL · KSP

下载引擎与 HLS 都由 TurboDL 提供,所以引擎的改进可以单独升级、也可以被别的应用复用。应用自己负责的是网盘解析、文件浏览、任务管理与界面。

下载引擎内置 TurboDL 0.2.1.0
分片方式HTTP Range 分片并发 + 动态分块 + 工作窃取
块与连接块数约为连接数的四倍
断点续传分片状态落盘,按已写完的字节接着下
收尾阶段空闲连接接手剩余部分,消除单线程长尾
其它引擎可切换到 aria2 / Gopeed

引擎不认识任何协议;HLS 也是通过插件接进来的