- 客户端显示有新版本了。为什么之前没通知我这个更新?
- 为什么 F-Droid 需要这些权限?
- 我可以下载应用,但随后”安装”被禁用。为什么?
- 为什么客户端不显示每个应用的安装/下载次数?
- 如何使用 NFC 或 Android Beam 发送或设置 F-Droid 应用?
- 如何通过蓝牙或 Wi-Fi 发送应用?
- F-Droid 使用的安全模式是什么?
- How can I hide F-Droid on my system?
客户端显示有新版本了。为什么之前没通知我这个更新?
Assuming you have update notifications switched on (in Settings) this probably means the newer version is not recommended for your device.
In the list of versions in the client, the recommended version is identified by a “Suggested” label. This is the version which is closest to the current version – the version that the developers of the application publish in their source code repository and want users to install. There may be newer versions than this in the list – they could be, for example, test or beta versions. You can install these, but update notifications are not shown because the Version Code (Android’s scheme for version numbering) is greater than the CurrentVersionCode defined in the repository metadata.
对于第三方存储库,也有可能是维护者忘记更新他们存储库元数据中的当前版本。
You can install a non-recommended version from the Versions list manually or on the app page, in the menu, F-Droid client offers an option to “Allow beta updates” that will always mark the highest available and compatible version as an update.
为什么 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+ 评论。
Newer Android versions have a system feature for this already, so a 3-rd party app is not needed anymore.
为什么客户端不显示每个应用的安装/下载次数?
为了显示有多少人安装了一个应用,我们必须对用户进行监视——换句话说,跟踪人们在自己的设备上安装和卸载应用的行为并获取相关数据。我们现在不这样做,将来也不会这样做。
理论上,下载次数可以通过我们的 Web 服务器日志获得。然而,这将是一个毫无意义的数字,因为:
- 我可能会下载一个应用,然后决定不安装它
- 我可能会下载并安装一个应用,然后立即卸载掉,因为我并不喜欢它
- 我可能会下载一百万次我的应用,让它看起来广受欢迎
此外,在技术层面上,我们甚至不跟踪这些信息。虽然后端服务器确实跟踪每个 APK 的点击量,但这些实际上是由多个前端服务器提供的缓存。 这意味着一次点击可能代表一次下载,或百万次。 理论上我们可以解决这个问题,但我们对此没有足够的兴趣。
最后,即使假设有任何这些信息,它实际上意味着什么?你要使用一个应用,只是因为有很多人这样做,或者忽略它,因为很少有人发现它?这是决定一个东西对你是否有用的明智方法吗?也许你应该尝试一下。
Some stats are published from the main servers, excluding mirrors. Since client version 2.0 these stats are used to display the “Most downloaded” list in the Discover screen, sorted by their last update.
如何使用 NFC 或 Android Beam 发送或设置 F-Droid 应用?
自 v1.20 版本起,F-Droid 客户端不再支持这些功能,因相关底层代码自 Android 10 起已被废弃,而 Android 14 SDK 则已经删除了这些代码。更多信息见 此处。
如何通过蓝牙或 Wi-Fi 发送应用?
这是使用 F-Droid 中的”附近” 选项卡(以前称为”交换”)完成的。 请参阅此处进行演练。
F-Droid 使用的安全模式是什么?
F-Droid 安全模型从 HTTPS 连接和签名元数据开始。它一直在发展,灵感来自 Debian,更新框架 等。你可以在此处阅读详细信息:安全模型。
How can I hide F-Droid on my system?
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.
Hide the icon from the launcher
Many launchers support hiding apps from the drawer. It’s likely the stock launcher supports it. If it’s not supported in the stock launcher, you can get one from F-Droid, e.g., the KISS launcher. In different launchers the UI is different. Generally you can choose some apps in the settings of the launcher and they won’t show in the drawer. You can still add them to the home screen and remove them quickly. If the checker only checks the app list in the launcher, this approach works. But if the checker looks at the app list in system settings, then they can still find all the installed apps.
Install the app in Private Space
Private Space is a new feature added in Android 15. You can install F-Droid in Private Space and it won’t be shown in the launcher nor the app list in the system settings when the Private Space is locked. But the checker can still force you to open Private Space though - if they can force you to open the phone in the first place. You can even hide the Private Space entry from the launcher so that it’s not shown unless you input a keyword in the search bar. However, the current implementation in AOSP doesn’t support custom keywords so if the checker knows this function, they can open Private Space pretty easily. Some custom systems support similar but more powerful functions, e.g., in some systems, you can set a different pin or fingerprint to open the Private Space from the lock screen directly. If your system support such functions, you can have a try.
