FAQ - 客户端

客户端显示有新版本了。为什么之前没通知我这个更新?

如果你已经在设置中开启更新通知,这可能意味着我们不建议在你的设备上使用这个新版本。

在客户端的版本列表中,推荐的版本 由 “建议” 标签标识。这是最接近当前版本 – 应用开发人员发布在源码存储库并希望用户安装的版本。列表中可能有比这更新的版本 – 它们可能是,例如,测试或 beta 版本。你可以安装这些版本,但不会显示更新通知,因为版本代码(Android 的版本编号方案)高于存储库元数据定义的 CurrentVersionCode。

对于第三方存储库,也有可能是维护者忘记更新他们存储库元数据中的当前版本。

可以手动从版本列表安装不推荐的版本,或者 F-Droid 客户端应用页面上菜单提供了“允许测试更新”的选项,会始终将可用的最高且兼容版本标记为更新。

为什么 F-Droid 需要这些权限?

F-Droid 是一个应用商店,这意味着它已经完全负责寻找、下载和安装应用。这意味着它实际上已经拥有了所有权限。例如,一个没有权限的恶意应用商店可以在安装时修改每一个应用,并通过这些修改的应用授予自己所有的权限。一个应用商店应该是自由软件并被公开审核的重要性正在于此。F-Droid 满足这两个条件。也就是说,F-Droid 声明了它实际使用的权限,因此它对自己正在做的事情是诚实和透明的。

以下是 F-Droid 当前使用的权限:

从 f-droid.org 和其他应用存储库下载应用:
android.permission.INTERNET
在开机时自动启动,以便它能接收更新:
android.permission.RECEIVE_BOOT_COMPLETED
用于让 nearby 服务获得当前的 Wi-Fi 状态,并提示用户在交换应用时开启 Wi-Fi:
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_NETWORK_STATE
android.permission.CHANGE_NETWORK_STATE
android.permission.CHANGE_WIFI_MULTICAST_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.ACCESS_WIFI_STATE
用于让 nearby 服务查看蓝牙状态,并提示用户在交换应用时启用蓝牙:
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BLUETOOTH_CONNECT
通过存储库详情屏幕交换存储库信息,并可选地辅助 nearby 交换连接:
android.permission.NFC
允许用户从 nearby 服务开启 Wi-Fi AP 热点模式:
android.permission.WRITE_SETTINGS
允许 nearby 服务保持运行,只要用户使其保持运行状态:
android.permission.WAKE_LOCK
发现并使用外部存储中兼容的存储库和镜像:
android.permission.READ_EXTERNAL_STORAGE
android.permission.MANAGE_EXTERNAL_STORAGE
检测何时插入了 USB 盘以对其进行扫描来发现兼容的存储库和镜像:
android.permission.USB_PERMISSION
临时保存并使用外部存储上的已下载文件:
android.permission.WRITE_EXTERNAL_STORAGE

F-Droid 特权扩展 在此处同样相关,尽管它不属于 Android 的权限声明体系。安装特权扩展授予其 priv-app权限 , 这给予 F-Droid 对 Android 的系统级访问特权。 特权扩展对安全性的改进是通过允许自动应用更新,以及确保用户手机上 “未知来源” 设置处于关闭状态实现的。特权扩展按照“最小特权”原则进行设计,只有在绝对需要时才授予提升的权限,而且这些权限尽可能受到限制。 为了使外部审阅者有可能确认这一点,我们已经让特权扩展尽可能地小巧和简单。

我可以下载应用,但随后”安装”被禁用。为什么?

某些用户安装了 Twilight 等应用,这些应用可以直接在其他应用上方绘制图形。出于安全原因,Android 明智地不允许在此类应用运行时安装应用。若非如此,此类应用可能会绘制一个假的”安装”按钮来覆盖真正的按钮,导致用户安装不需要的应用。在通过 F-Droid 安装应用之前禁用此类应用即可解决问题。

有关更多详细信息,请参阅 Issue 151 或 此 Google+ 评论。

较新的 Android 版本已经有调节屏幕色温的系统功能,因此不再需要第三方应用。

为什么客户端不显示每个应用的安装/下载次数?

为了显示有多少人安装了一个应用,我们必须对用户进行监视——换句话说,跟踪人们在自己的设备上安装和卸载应用的行为并获取相关数据。我们现在不这样做,将来也不会这样做。

理论上,下载次数可以通过我们的 Web 服务器日志获得。然而,这将是一个毫无意义的数字,因为:

  1. 我可能会下载一个应用,然后决定不安装它
  2. 我可能会下载并安装一个应用,然后立即卸载掉,因为我并不喜欢它
  3. 我可能会下载一百万次我的应用,让它看起来广受欢迎

此外,在技术层面上,我们甚至不跟踪这些信息。虽然后端服务器确实跟踪每个 APK 的点击量,但这些实际上是由多个前端服务器提供的缓存。 这意味着一次点击可能代表一次下载,或百万次。 理论上我们可以解决这个问题,但我们对此没有足够的兴趣。

最后,即使假设有任何这些信息,它实际上意味着什么?你要使用一个应用,只是因为有很多人这样做,或者忽略它,因为很少有人发现它?这是决定一个东西对你是否有用的明智方法吗?也许你应该尝试一下。

一些 统计数字 从主服务器发布,镜像服务器不发布。自 2.0 客户端版本起,这些统计数字用于在“发现”屏幕中展示“下载最多”列表,按照它们的上次更新时间排序。

如何使用 NFC 或 Android Beam 发送或设置 F-Droid 应用?

自 v1.20 版本起,F-Droid 客户端不再支持这些功能,因相关底层代码自 Android 10 起已被废弃,而 Android 14 SDK 则已经删除了这些代码。更多信息见 此处。

如何通过蓝牙或 Wi-Fi 发送应用?

这是使用 F-Droid 中的”附近” 选项卡(以前称为”交换”)完成的。 请参阅此处进行演练。

F-Droid 使用的安全模式是什么?

F-Droid 安全模型从 HTTPS 连接和签名元数据开始。它一直在发展,灵感来自 Debian,更新框架 等。你可以在此处阅读详细信息:安全模型。

如何在我的系统上隐藏 F-Droid?

很多应用可以更改它们的图标,甚至应用名。可以在启动器中看到这些变化。F-Droid 可以将图标变成一个计算器应用。之前有计算器功能,该功能已被去除。 在所有情况下,这只会改变 F-Droid 客户端如何特别地在“启动器”中显示,而不是所有地方。例如,如果长按计算器图标并打开应用信息,就可以看到实际的应用名和图标。要隐藏自己,应用做不了太多。但有一些可能对你更有效的替代方法。请注意,这些伎俩骗不过有经验的检查者。如果真需要保护隐私,请彻底摧毁你的设备。始终根据 威胁模型 选择方法,没有适合所有人的完美方法。

在启动器中隐藏图标

很多启动器支持让应用在抽屉内隐身。自带启动器可能支持该功能。如果自带启动器不支持,你可以从 F-Droid 获取一个这样的启动器,比如 KISS 启动器。在不同的启动器中,用户界面也不一样。一般来说,你可以在启动器的设置中选择一些应用,这些应用不会显示在抽屉中。你仍然可以添加它们到主屏幕并快速删除它们。如果检查者只检查启动器中的应用列表,这个方法奏效。但如果检查者检查系统设置中的应用列表,那么仍能找到所有安装的应用。

在私密空间中安装 F-Droid

私密空间是 Android 15 新加的功能。你可以在私密空间中安装 F-Droid,当私密空间锁定时,F-Droid 不会出现在启动器和系统设置的应用列表中。不过检查者仍可以强迫你打开私密空间——如果这些人可以一开始强迫你打开手机。你甚至可以在启动器中隐藏私密空间条目,这样除非你在搜索栏中输入关键词,否则不会显示 F-Droid。然而,AOSP 中的当前实现不支持自定义关键词,所以如果检查者知道此功能,可以相当轻松地打开私密空间。一些自定义系统支持类似但更强大的功能,比如在一些系统中,你可以你可以设置不同的 pin 码或指纹来直接从锁屏打开私密空间。如果你的系统支持这样的功能,你可以试一试。