- 客户端显示有新版本了。为什么之前没通知我这个更新?
- 为什么 F-Droid 需要这些权限?
- 我可以下载应用,但随后”安装”被禁用。为什么?
- 为什么客户端不显示每个应用的安装/下载次数?
- 如何使用 NFC 或 Android Beam 发送或设置 F-Droid 应用?
- 如何通过蓝牙或 Wi-Fi 发送应用?
- F-Droid 使用的安全模式是什么?
- 如何在我的系统上隐藏 F-Droid?
客户端显示有新版本了。为什么之前没通知我这个更新?
如果你已经在设置中开启更新通知,这可能意味着我们不建议在你的设备上使用这个新版本。
在客户端的版本列表中,推荐的版本 由 “建议” 标签标识。这是最接近当前版本 – 应用开发人员发布在源码存储库并希望用户安装的版本。列表中可能有比这更新的版本 – 它们可能是,例如,测试或 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 服务器日志获得。然而,这将是一个毫无意义的数字,因为:
- 我可能会下载一个应用,然后决定不安装它
- 我可能会下载并安装一个应用,然后立即卸载掉,因为我并不喜欢它
- 我可能会下载一百万次我的应用,让它看起来广受欢迎
此外,在技术层面上,我们甚至不跟踪这些信息。虽然后端服务器确实跟踪每个 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?
Sometimes you may want to hide F-Droid app for some reasons. F-Droid 1.x version has a function to change the app icon in the launcher to a calculator. A real calculator is opened from the icon and you can input a secret code to get F-Droid back. Sounds interesting, right? But if you long press on the calculator icon and open the app info, you can see the app name and the icon which are not changed. There is not too much an app can do to hide itself. But there are some alternative approaches which work better. Do note that these tricks can’t trick a professional checker. If you really want to hide something, just destroy your device completely. Always choose the approach based on your threat model, there is no perfect approach for everyone.
在启动器中隐藏图标
很多启动器支持让应用在抽屉内隐身。自带启动器可能支持该功能。如果自带启动器不支持,你可以从 F-Droid 获取一个这样的启动器,比如 KISS 启动器。在不同的启动器中,用户界面也不一样。一般来说,你可以在启动器的设置中选择一些应用,这些应用不会显示在抽屉中。你仍然可以添加它们到主屏幕并快速删除它们。如果检查者只检查启动器中的应用列表,这个方法奏效。但如果检查者检查系统设置中的应用列表,那么仍能找到所有安装的应用。
在私密空间中安装 F-Droid
私密空间是 Android 15 新加的功能。你可以在私密空间中安装 F-Droid,当私密空间锁定时,F-Droid 不会出现在启动器和系统设置的应用列表中。不过检查者仍可以强迫你打开私密空间——如果这些人可以一开始强迫你打开手机。你甚至可以在启动器中隐藏私密空间条目,这样除非你在搜索栏中输入关键词,否则不会显示 F-Droid。然而,AOSP 中的当前实现不支持自定义关键词,所以如果检查者知道此功能,可以相当轻松地打开私密空间。一些自定义系统支持类似但更强大的功能,比如在一些系统中,你可以你可以设置不同的 pin 码或指纹来直接从锁屏打开私密空间。如果你的系统支持这样的功能,你可以试一试。
