我们的全部 API
为了使 F-Droid 值得信赖,我们需要透明。让人们可以轻易关注我们使用的所有流程和系统帮助我们保持安全。这些是关于发布流程的关键信息的 API。
活跃包
通过 https://f-droid.org/api/v1/packages
可访问一个每应用 API, 它可用来查询主存储库中应用的信息。JSON API 目前列出了已发布和建议的版本。存档的应用和包在此 API 中不可用。
示例请求:
GET https://f-droid.org/api/v1/packages/org.fdroid.fdroid HTTP/1.1
示例响应:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"packageName": "org.fdroid.fdroid",
"suggestedVersionCode": 1009000,
"packages": [
{
"versionName": "1.10-alpha0",
"versionCode": 1010000
},
{
"versionName": "1.9",
"versionCode": 1009000
}
]
}
shields.io 已经使用这个 API 来提供 F-Droid 徽章,像这样。
存储库索引
F-Droid 是围绕所有可用的应用和软件包的签名索引构建的。 这是一个 JSON 文件,尽管它更像是一个索引而不是一个 API,因为所有信息都通过一个文件分发。 * https://f-droid.org/repo/index-v2.json * https://f-droid.org/repo/index-v1.json * https://f-droid.org/archive/index-v2.json * https://f-droid.org/archive/index-v1.json
从 index-v2 开始,支持仅包含更改的文件,称为差异(“diff”)文件。 还有一个单独的入口点,由 JAR 和 GPG 签名签署,并列出可用的索引和差异文件。
- https://f-droid.org/repo/entry.jar
- https://f-droid.org/repo/entry.json
- https://f-droid.org/repo/entry.json.asc
v1 仓库索引以签名的 JAR 文件的形式出现,该文件包含 index-v1.json。 最好的方法是验证 JAR 签名,然后提取 index-v1.json ,如果验证通过的话。 fdroidserver Python 库提供 fdroidserver.download_repo_index()
使这很容易完成。
还有用于验证下列 JSON 文件的 GPG 签名:
- https://f-droid.org/repo/index-v2.json.asc
- https://f-droid.org/repo/index-v1.json.asc
- https://f-droid.org/archive/index-v2.json.asc
- https://f-droid.org/archive/index-v1.json.asc
应用搜索 API
我们有了一个基础的 web-api 用来执行对 f-droid 存储库的全文搜索。
应用构建元数据
f-droid.org 中的每个应用在 fdroiddata 中有一个相应的构建元数据文件 。为了鼓励更多有创意的应用,我们将数据以标准格式存储在易于获取的地方。全部应用集合以 YAML 格式存储。文件可以通过 Application ID 使用 GitLab Raw URL https://gitlab.com/fdroid/fdroiddata/-/raw/master/metadata/<ApplicationID>.yml
(例如 https://gitlab.com/fdroid/fdroiddata/-/raw/master/metadata/org.fdroid.fdroid.yml)直接访问。 存储库索引和 GitLab Repository Files API 可以用于请求 可用的 Application ID。这些文件也可以通过 GitHub 上的镜像获取,例如 https://raw.githubusercontent.com/f-droid/fdroiddata/master/metadata/org.fdroid.fdroid.yml
f-droid.org 构建服务器状态
构建循环的四个主要步骤为:checkupdates,build,update 和 deploy。每个步骤有一个包含状态信息的 JSON 文件。步骤运行完成后此文件将立即发布。当前运行的步骤发布在_running_。
- https://f-droid.org/repo/status/running.json
- https://f-droid.org/repo/status/build.json
- https://f-droid.org/repo/status/update.json
- https://f-droid.org/repo/status/deploy.json
使用这些 JSON API 的例子可以参见 F-Droid Monitor 网站和 F-Droid Build Status 应用。
镜像和存储库监视器
mirror-monitor 和 repo-monitor 分别是检查 f-droid.org 镜像和第三方存储库状态的自动化任务。它们提供了一个单一大文件 JSON 日志记录了所有运行的检查:
- f-droid.org 镜像状态:https://fdroid.gitlab.io/mirror-monitor/report.json
- 第三方存储库状态:https://fdroid.gitlab.io/repo-monitor/report.json
可重复构建
verification.f-droid.org 是一个重构器,它从 f-droid.org 重新构建官方发行版, 然后检查它们是否可重复构建。每个包都有一个基于包名的入口点: https://verification.f-droid.org/org.fdroid.fdroid.json
然后,每个已检查的 APK 都有一个 JSON 文件, 其中的文件名格式为 <ApplicationId>_<VersionCode>.apk.json
,示例: https://verification.f-droid.org/org.fdroid.fdroid_1010050.apk.json
还有一个所有成功验证过的 APK 的清单:https://verification.f-droid.org/verified.json
二进制透明度日志
二进制透明度指所有发布的包应当应当如它们发布的原样记录。这提供了检查给出的二进制文件是否由发布者制作,或来自其他地方,如漏洞。fdroidserver 拥有作为发布过程的一部分管理二进制透明度日志的内建工具。它已经在 f-droid.org 上启用: https://gitlab.com/fdroid/f-droid.org-transparency-log
因为 Gradle 和 Google Android Tools team 没有发布一个,F-Droid 做了。基本 API 是一个 JSON 文件包含包含已发布 URL 的列表。每个 URL 包含一个日志过程得到的 SHA-256 校验和列表。也有其他被跟踪的文件,取决于发布者提供什么。
- https://gitlab.com/fdroid/gradle-transparency-log/-/raw/master/checksums.json
- https://gitlab.com/fdroid/android-sdk-transparency-log/-/raw/master/checksums.json
issuebot
issuebot 在应用合并请求和打包请求 (RFP) 上运行以对评审者提供关于应用的信息。大部分这些信息也以 JSON 格式提供。每个报告由来自在特定应用上运行的模块的数据组成。有两个入口点:
- https://fdroid.gitlab.io/rfp/issuebot/applicationIds.json
- https://fdroid.gitlab.io/rfp/issuebot/sourceUrls.json
指标
使用数据从多个 F-Droid 网站生成并发布,不包含个人识别信息 (PII)。每周发布一个 JSON 文件,每个网站发布一个 JSON 索引文件。例如,这是一周的搜索指标:https://fdroid.gitlab.io/metrics/search.f-droid.org/2021-01-18.json
尽管并非真正的 API,
Git 统计数据
每个 git 存储库有很多令人感兴趣的元数据。GitStats 项目从这些数据中生成漂亮的图表。这不算一个 API,但它相关因为它使用公开项目数据。可从此处访问每个中心化 git 存储库的预生成页面:https://fdroid.gitlab.io/。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论