适用于一切的 API!

为了让 F-Droid 值得信赖,我们需要保持透明。让人们轻松关注我们使用的所有流程和系统有助于我们保持安全。Debian 和其他 GNU/Linux 发行版在过去几十年中已经证明的一件事是,透明度是安全交付软件的有效成分。这确保了在 f-droid.org 上发布的应用和软件包仅来自上游开发人员的源代码。审查上游开发人员的源代码有助于这些开发人员安全地交付他们的代码。这些审查也是 F-Droid 在发布软件时如何首先代表用户的基础。为此,我们一直在大力推进发布 JSON API,这些 API 包含了我们发布尊重用户且受信任的自由软件的所有流程的关键信息。

存储库索引

F-Droid 是围绕所有可用应用和软件包的签名索引构建的。这是一个 JSON 文件,尽管由于所有信息都在一个文件中它更像是一个索引而不是 API。它可用于任何用途,并且有一些项目受益于此。fossdroid.comf-droid.org 中所有可用应用的替代 Web 视图。Aurora,F-Droid Classic,G-Droid 和 M-Droid 是替代的 Android 客户端应用。

存储库索引采用签名 JAR 文件的形式,其中包含 index-v1.json。最好的方法是验证 JAR 签名,然后如果验证成功则提取 index-v1.jsonfdroidserver Python 库提供了 fdroidserver.download_repo_index() 使这很容易做到。也可以使用任何 ZIP 库来读取 index-v1.json

应用构建元数据

f-droid.org 中的每款应用均有相应的构建元数据文件, 它们位于fdroiddata。 为了鼓励更具创造性的重用, 我们以标准格式将数据保存在便于找到的地方。 整个应用集合为 YAML 格式。 文件可直接根据应用 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 可用来查询 哪些应用 ID 可用。

f-droid.org 构建服务器状态

构建循环的四个主要步骤为:checkupdatesbuildupdatedeploy。每个步骤有一个包含状态信息的 JSON 文件。步骤运行完成后此文件将立即发布。当前运行的步骤发布在_running_。

使用这些 JSON API 的例子可以参见 F-Droid Monitor 网站和 F-Droid Build Status 应用。

镜像和存储库监视器

mirror-monitorrepo-monitor 分别是检查 f-droid.org 镜像和第三方存储库状态的自动化任务。它们提供了一个单一大文件 JSON 日志记录了所有运行的检查:

可重复构建

verification.f-droid.org 是一个重构建器,用于重构建来自 f-droid.org 的官方发布,以检查它们是否可重复构建。每个经过检查的 APK 都有一个 JSON 文件与其对应,其文件名遵循 <ApplicationId>_<VersionCode>.apk.json 的格式,例如: https://verification.f-droid.org/org.fdroid.fdroid_1010050.apk.json

二进制透明度日志

二进制透明度指所有发布的包应当应当如它们发布的原样记录。这提供了检查给出的二进制文件是否由发布者制作,或来自其他地方,如漏洞。fdroidserver 拥有作为发布过程的一部分管理二进制透明度日志的内建工具。它已经在 Guardian Project 存储库启用了:https://github.com/guardianproject/binary_transparency_log

也有一个对 f-droid.org 运行二进制透明度日志的原型。https://gitlab.com/eighthave/f-droid.org-binary-transparency

因为 Gradle 和 Google Android Tools team 没有发布一个,F-Droid 做了。基本 API 是一个 JSON 文件包含包含已发布 URL 的列表。每个 URL 包含一个日志过程得到的 SHA-256 校验和列表。也有其他被跟踪的文件,取决于发布者提供什么。

issuebot

issuebot 在应用合并请求和打包请求 (RFP) 上运行以对评审者提供关于应用的信息。大部分这些信息也以 JSON 格式提供。每个报告由来自在特定应用上运行的模块的数据组成。有两个入口点:

指标

使用数据多个 F-Droid 网站生成并发布,不包含个人识别信息 (PII)。每周发布一个 JSON 文件,每个网站发布一个 JSON 索引文件。例如,这是一周的搜索指标:https://fdroid.gitlab.io/metrics/search.f-droid.org/2021-01-18.json

Git 统计数据

每个 git 存储库有很多令人感兴趣的元数据。GitStats 项目从这些数据中生成漂亮的图表。这不算一个 API,但它相关因为它使用公开项目数据。可从此处访问每个中心化 git 存储库的预生成页面:https://fdroid.gitlab.io/