本收录政策的目的是确保所有包括在 F-Droid 主存储库中的应用支持 F-Droid 的核心使命:提供受信赖的方式来发现和分享尊重隐私、自由和开源的安卓应用。 即使一款应用不满足这些标准,你仍然可以通过单独的存储库将应用提供给 F-Droid 用户。
自由软件要求:
存储库中的所有应用都必须是自由开源软件 (FLOSS) - 例如,在 GPL 或 Apache 许可证下发布。通过检查源代码并从发布的源代码构建应用,我们尽最大努力保证满足这一要求。我们根据拥有良好记录的广受信任的组织的决定确定哪些许可证是 FLOSS 的。具体来说,我们承认下列标准:Debian 自由软件指南 (DFSG)、自由软件基金会 (FSF)、 GNU,以及自由软件倡议 (OSI) (在 System Package Data Exchange (SPDX) 上阅读所有标准的简短概况)。
包括 JAR 文件在内的二进制依赖项必须原子源码编译或 Debian 存储库下载。预构建的二进制文件应该只来自已授权的可信来源。
艺术作品和字体在内无涉应用实际功能的资产可使用包含项目特定游戏美术作品的不那么严格的许可证,但在使用非商业许可证时必须允许再分发。所有资产均需拥有有效的法律许可或在公有领域,并且不侵犯版权。
所有应用严格禁止部署专有跟踪或广告库和分析工具,如 Google Play 服务、Firebase 和 Crashlytics,以及专有广告/跟踪 SDK。当这些功能变得必需时,上游开发者有两个选项:使用 FLOSS 替代品或者构建无需这些依赖项的应用版本。
应用构建的透明性和可重复性
F-Droid 基础设施从公开可得的源代码编译应用来验证所分发的二进制匹配它们的源码。完整的应用构建过程需要 100% FLOSS 的工具链,包括 Debian 打包的工具。严禁使用专有的应用构建工具,这些工具包括 Oracle 的 JDK 以及一些预发布的工具链。虽然我们试图从源码构建一切,有时预构建的 FLOSS 二进制文件是唯一可行的方法。下列来源可被允许提供预构建的二进制文件:
- Debian “main” 软件包存档。
- 应用可以从可信 Maven 存储库下载特定状态的预构建 FLOSS 二进制文件。这些存储库包括 Maven Central、Google Maven、OSS Sonatype、OSS JFrog、JitPack.io 和 Clojars。这些二进制文件必须仍然是自由许可的,只是包含在这些存储库中的一个是不够的。
- 在 Debian 提供替代解决方案前,Android SDK、Flutter SDK 和 Hermes 可以使用官方的预构建二进制文件。
- 使用来自 PyPI Wheels、Nix cache、Rust/Rustup、Golang 和 Node.js (当前版本)和编译器的预构建 FLOSS 二进制文件或不包括在 Debian 中的构建工具是可以接受的。但只要有可能,这些选项的优先级应该低于 Debian 打包的依赖项。
安全性和法律合规性
- F-Droid 不注册任何 API 密钥。即使密钥由第三方提供,我们也会将它们包含在二进制和源代码版本中。
- 所有捐赠链接需要由上游开发者验证以阻止未经授权的更改。F-Droid 贡献者可考虑
funding.json、
FUNDING.yml
或 README 文件。此外,可通过来自和应用源代码相同的账户的消息进行验证。比如
https://gitlab.com/foobar/myapp的作者@foobar,如果该账户和 F-Droid 在同一个 GitLab 实例上,如gitlab.com。应用的主站点也可以托管捐赠链接。 - 应用不准侵犯第三方权利,包括第三方知识产权,如版权和商标。应用需要获得必需的商标和版权权利。任何有匹配另一个域名的重复 android application ID 的应用都会被自动拒绝。
- F-Droid 使用称为 负面特征 的预定义标签,用来警示应用在用户自由、隐私或其他方面的问题,有负面特征的应用未必没有资格被收录。
应用构建和验证流程
- Unique ID: 所有应用必需有自己独立的 “Application ID”。
- Your domain: 建议使用源自开发者本人所拥有的域名的 Application ID。
- Forks: 即使原应用不在 F-Droid 存储库中,Fork 应用也需要获得不同于原应用的新 Android ID,而且它们必须收到相应的名称、图标和字符串改动,包括译文调整。本收录政策不接受只进行微小的形象重塑缺少有意义改进的应用。
- 依赖项处理: 库文件依赖必须从源码构建或在可信的 Maven 存储库内提供。 在 Debian 打包完成前,允许预构建的 SDK(Android/Flutter) 使用 scanignore。
- 自动检查: F-Droid 维护者通过验证流程审核应用,这一流程检验许可证合规和源码可得性、可构建性以及收录政策遵从性。审核者对非自由依赖项、专有代码、跟踪特性、广告元素和其他负面特性执行检查。
- 人工审核: 我们的贡献者会人工审核应用并自主决定是否标记问题。
我们的使命和我们的收录政策
我们的使命是安全透明地分发自由开源应用,给全球所有年龄的用户提供有用和尊重隐私的应用。
做收录决定时,我们会思考我们的核心使命获得确定在主存储库中包含什么类型内容的指引 ,我们也会借鉴以往先例。如果待收录应用和之前排除在外的应用相类似,这一点会纳入考量。除了确定应用是否支持我们的使命外,我们在做收录决定时同样会考虑应用是否适合包括儿童在内的所有 F-Droid 用户。
我们承认这不是精密的科学,但我们试着做出合理和理智的收录政策决定。如果你相信一款应用被错误排除在外,可以发电子邮件到 team@f-droid.org 申述,一名未参与将该应用排除在外决定的团队成员将斟酌你的申诉。
请记住即使一款应用被排除在主存储库外,你也可以选择通过自己的或第三方的应用存储库让 F-Droid 用户获得该应用。
政策强制执行
- 在开发者修复问题前,存储库会删除或拒绝不合规的应用。F-Droid 社区鼓励开发者携手实现合规。
- 重新构建失败(如需要 Play 服务)或包含未披露的负面特性的应用会被拒。
- 在对应用做出必要的修正后,上游开发者可以请求重新审核。
- F-Droid 保留对屡教不改者采取各种行动的权力,这些行动包括警告和临时封禁或永久内容删除,同时提供恰当的通知和申诉选项。本文档会记录所有的删除操作。
