固定包:Android 依赖管理和 F-Droid 推送请求
发布于 2021-10-15,发布者为GNU/Linux 发行版如此受欢迎的一个原因是依赖管理内置于操作系统中。在 Debian 中,所有安装的软件都打包为 .deb,并且全部从 Debian 存储库安装。Android 一直缺乏这种依赖管理,我们中的许多人非常想要这样的功能。Android 的模式是所有依赖都应该包含在应用的 APK 文件中,而操作系统只提供最基本的 API。许多应用依赖于其他安装的应用。Android 和 Google Play 都无法表示这种关系。
多年来关于如何为 Android 实现良好的依赖管理进行了各种实验。F-Droid 中最近进行的依赖管理实验是“推送请求”。核心思想是为每个存储库设置一个依赖列表。例如,由于所有 Guardian Project 应用都支持 Tor,因此使用 Guardian Project 存储库意味着 Tor 将被自动安装是有道理的。根据过去几年的经验,很明显,这可以通过其他方式得到更好的处理。应用可以检查是否安装了它所需的应用。该应用应询问用户是否需要 Tor,然后引导他们完成安装过程。当时实施推送请求时还没有内置 F-Droid 的 ROM 项目。现在,将 Tor 作为 ROM 的一部分而不是通过推送请求显然更好。CalyxOS 的设置向导为设置核心依赖项提供了出色的 Android 原生用户体验。
我们现在正在从官方 F-Droid 客户端中移除对推送请求的支持。很明显,其他方法更适合 Android,因此最好消除与此功能相关的虽然小但仍然存在的安全风险。推送请求的“管道”仍将保留在代码库中,因此白标 分支仍然可以使用它。它对于全自动、无界面应用商店或作为标准设置的一部分的自动安装等仍然很有用。
