{"id":18914,"date":"2026-09-28T09:24:31","date_gmt":"2026-09-28T16:24:31","guid":{"rendered":"https:\/\/jasonsblog.ddns.net\/?p=18914"},"modified":"2026-09-28T09:25:24","modified_gmt":"2026-09-28T16:25:24","slug":"f-droid-grew-up-not-everything-came-with-it","status":"publish","type":"post","link":"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/09\/28\/f-droid-grew-up-not-everything-came-with-it\/","title":{"rendered":"F-Droid Grew Up. Not Everything Came With It."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A very detailed article on the new version of <a href=\"https:\/\/f-droid.org\/en\/\" target=\"_blank\" rel=\"noopener\">F-Droid<\/a>, but I&#8217;m also testing out <a href=\"https:\/\/jasonsblog.ddns.net\/index.php\/2026\/09\/27\/obtainium\/\" target=\"_blank\" rel=\"noopener\">Obtainium<\/a>. The hardcore privacy types have moved to Obtainium that lets you install apps directly from developers, e.g. their Github, Gitlab, HTTPS&#8230; F-Droid compiles the packages themselves and sign them with their own keys, which can delay security updates and leave some versions behind the developer&#8217;s released version. I looked through my F-Droid apps and any I found that were older I setup in Obtainium, along with a couple apps I just want to be updated faster like Mullvad VPN&#8230; There is some value in how F-Droid does this as they&#8217;re using the source code and might find any issues with the app before they publish it. Also, F-Droid allows you to use repos from the developers that support F-Droid. And Obtainium seems to be mainly a single developer, which is something to keep in mind. I did notice that F-Droid picks up the Obtainium apps in it&#8217;s installed apps list, but since Obtainium will install apps faster it shouldn&#8217;t be an issue. The good thing is this gives you access to a lot of apps outside the Google Play Store and even makes it possible to not even use it, or switch to Aurora over microG if using a ROM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/reclaimthenet.org\/f-droid-grew-up-not-everything-came-with-it\" target=\"_blank\" rel=\"noopener\">https:\/\/reclaimthenet.org\/f-droid-grew-up-not-everything-came-with-it<\/a><\/p>\n\n\n<div class=\"wp-block-ub-divider ub_divider ub-divider-orientation-horizontal\" id=\"ub_divider_66a0cc9a-958c-48d8-890d-c79d24ffc74d\"><div class=\"ub_divider_wrapper\" style=\"position: relative; margin-bottom: 2px; width: 100%; height: 2px; \" data-divider-alignment=\"center\"><div class=\"ub_divider_line\" style=\"border-top: 2px solid #ccc; margin-top: 2px; \"><\/div><\/div><\/div>\n\n\n<h5 class=\"wp-block-heading\">F-Droid is betting that an app store can be easier to use without becoming another machine for harvesting attention and data.<\/h5>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/media.reclaimthenet.org\/images\/2026\/09\/uZ0VTHswkhOw.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">By Rick Findlay<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid, the free and open source alternative to Google Play for Android, has been around for over a decade and offers thousands of apps. The project is now doing what it calls a \u201ccomplete redesign\u201d of its official app, and \u201cthe largest app update in 10 years.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid is how you can get free and open source apps on your Android phone or tablet without having to use Google Play. In its own words, \u201cFor the longest time, the experience of clicking install or update was forced to be second rate by Android.\u201d Now F-Droid says it has fixed that with the new version, that comes after more than a year of work and 14 test releases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The new F-Droid app has a minSdk of 24, which means that the minimum Android version supported is 7.0 (Nougat), while the targetSdk is 37. The versionName in the build file is 2.0.0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid\u2019s new version will be rolled out over the coming weeks. Two questions are on the mind of anyone using the app: what changed, and what will the upgrade cost them in terms of lost functionality? As for what it costs to upgrade, F-Droid users will no longer have the F-Droid Privileged Extension or the rebuilt Nearby. Android 6 is also no longer supported, and the panic-triggered app wiping feature is gone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A completely new F-Droid<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid\u2019s new design brings the free and open-source (FOSS) app store more in line with Google\u2019s Material Design, and it does this without copying the Big Tech look and feel, or function.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cThe user experience was redesigned to integrate smoothly with current Android patterns, like Material Design, while keeping familiar F-Droid interactions in place,\u201d the project says. The main navigation has been cut down to three: Discover, Search, My Apps, with Settings and Nearby Swap moved to the top bar, \u201cstill only a tap away from the top bar, but no longer compete for space in the main navigation.\u201d Categories are now a part of the Discover section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid is funded by donations and grants, and the work on this version was supported by the Open Technology Fund\u2019s User Experience &amp; Discovery Lab, which brought in Ura Design to \u201cconduct user testing, develop user stories, and refine our Human Interface Guidelines.\u201d The result is a set of onboarding screens that take the user through the app, rather than hiding features \u201cbehind complex settings,\u201d and F-Droid does this without tracking you, or trying to \u201cengage\u201d you to spend increasingly more time in the app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key components of the app were \u201creworked and rewritten using Kotlin Compose, the standard toolkit these days,\u201d and the entire thing was not just a surface level rewrite, as is evident from the changelog that mentions fixing \u201coverlay issues in landscape mode on small screens\u201d and \u201cRTL presentation of updates,\u201d meaning the app now works better on small screens, and in right-to-left languages, and has separate TV banners for full and basic versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid comes in two build flavors, basic and full, with the difference being that Nearby and the panic features are only available in the full version.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Discover finally makes F-Droid browsable<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Finding the right app is now easier, thanks to the way F-Droid has expanded and rearranged its categories. The app\u2019s own \u201cecosystem\u201d has been growing to \u201cthousands of applications,\u201d and that growth has made app discovery \u201cincreasingly challenging,\u201d F-Droid admits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It used to be that users would have to sift through broad categories that were not very helpful &#8211; but now there are \u201cmany more specialized categories,\u201d \u201chelping you get closer to the kind of app you want in just a few taps, even before you start searching.\u201d The headline example given is the Games category, that has been \u201ccompletely reworked\u201d and now has \u201c17 different game genres.\u201d But that count of 17 is arrived at by adding three other categories to the 14 that end in the word Game. Those are Dice, Emulator, and Visual Novel. The full list runs to <a href=\"https:\/\/gitlab.com\/fdroid\/fdroiddata\/-\/blob\/master\/config\/categories.yml\"><u>116 categories<\/u><\/a>, and they cover a wide range of uses, from VPN &amp; Proxy, Firewall, and Password &amp; 2FA, to Emergency Action.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid is now grouping categories into higher-level \u201cmeta\u201d categories, and these are shown on the Discover screen, that also displays newly added, recently updated, and most downloaded apps. Categories are now described, and these descriptions feed the app\u2019s discovery feature; for example, the description for Action Game is \u201cAction, sport, racing and platformer games.\u201d The category system is so important that it was still being tweaked and expanded in the months before release. In fact, the categories are now so detailed that they reveal what type of apps are considered useful and popular among privacy and security-minded users who opt for F-Droid over the mainstream stores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All the work on the categories was done to make it easy for users to find the right app, and once they do, the ranking of search results is designed to show them the newest, recently updated, or most downloaded ones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The good news is that F-Droid achieves this without resorting to any behavioral tracking or engagement optimization techniques that Big Tech uses to keep users locked into their \u201cecosystems\u201d for as long as possible. F-Droid users are not pawns in the same game of attention and personal data harvesting, and are not treated as such.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/media.reclaimthenet.org\/images\/2026\/09\/D3tbywzzUKX4.jpg\" alt=\"F-Droid Basic app interface showing sections for new apps, recently updated, most downloaded, and categories.\" style=\"width:386px;height:auto\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Search has become genuinely useful<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid\u2019s search used to be a tool that matched what you typed with app names in its repository. Now, with the 2.0 version, the search looks at app descriptions, categories, and translated content as well. This is a big deal, because F-Droid\u2019s app names are often not descriptive, to the point where they are useless for anyone not already in the know. Who would think to search for \u201cOrganic Maps\u201d when looking for an alternative to Google Maps, or \u201cKeePassDX\u201d when in need of a password manager?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But now, thanks to the new search, you can find these apps by searching for what they actually do.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As F-Droid itself explains, the new search makes it \u201ceasier to find apps based on what they do rather than what they\u2019re called.\u201d This is especially important for new users, who are not familiar with the names F-Droid has given the apps it includes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Search now also covers translated content, and F-Droid says that users can now find apps \u201cmore reliably in their own language.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In particular, F-Droid mentions that \u201cthe new search system provides much better support for CJK writing systems, helping users find relevant apps more reliably in their own language.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A look at the changelog for F-Droid shows that support for Chinese, Japanese, and Korean languages was improved in several steps, starting from March 30 with \u201cimprove Chinese search queries\u201d and \u201cFix CJK language search in app lists and my apps,\u201d and continuing with \u201cFix name and summary localization in app details.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And if a user types the same query multiple times, there is no need to type it again, as recent searches are now remembered.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other improvements to search included moving it to the bottom navigation bar, remembering recent searches, searching in category descriptions, showing all categories in the empty state of the search screen, and several bug fixes and minor UI improvements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gitlab.com\/fdroid\/fdroidclient\/-\/blob\/master\/CHANGELOG.md\"><u>One entry in the changelog<\/u><\/a> is particularly telling: on March 30, F-Droid added the ability to \u201cauto repair corrupted search index.\u201d This is the kind of fix that doesn\u2019t come from developers imagining what could go wrong, but from users actually encountering a problem and reporting it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Filters are F-Droid 2.0&#8217;s power-user secret<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid is an app store that, unlike the behemoths like Google Play, gives users fine-grained control over what they are, and aren\u2019t shown in the store\u2019s catalog.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That control is now better than ever with the release of the new F-Droid client version 2.0, which brings the ability to combine multiple filter criteria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But F-Droid is also a store that \u201cwarns\u201d its users about the presence of what it calls anti-features \u2013 and these are not minor things. An app can be flagged for containing ads, tracking and reporting a user\u2019s activity, or promoting non-free network services, or depending on them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same goes for non-free dependencies, add-ons, and assets, as well as known vulnerabilities, weak security signatures, or the fact that the source code is no longer available, which means no more updates. Then there\u2019s the \u201ctethered\u201d category, an app that depends on a certain instance of a network service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With F-Droid 2.0, users can now combine filters in a way that was not possible before: by category, device compatibility, and anti-features, all at the same time. That means somebody using an old phone can now search for apps that are compatible with their device and that do not have the \u201cTracking\u201d anti-feature, which means the app \u201ctracks and reports your activity,\u201d and that is something no commercial app store, such as Google Play, allows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For users who do not want to be tracked, the new version of F-Droid provides a powerful tool. As the project itself puts it, \u201cyou can choose to view only Action Games that are compatible with your device and exclude apps that depend on non-free network services.\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/media.reclaimthenet.org\/images\/2026\/09\/ofTy1jCyph8l.jpg\" alt=\"F-Droid app store interface showing updates for CoMaps, Organic Maps, and DAVx5, plus installed apps like ProtonVPN and Aurora.\" style=\"width:366px;height:auto\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installing apps no longer feels second-class<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Clicking install or update on F-Droid used to bring to life what the free and open source app store calls a \u201csecond rate\u201d experience, forced onto users by Google\u2019s Android. This happened because after the download was finished, users were first presented with a system prompt, and then had to give <a href=\"https:\/\/reclaimthenet.org\/android-sideloading-restrictions\"><u>permission to install apps<\/u><\/a> from unknown sources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid says that thanks to the EU\u2019s Digital Markets Act (DMA) and <a href=\"https:\/\/reclaimthenet.org\/google-opens-android-to-rival-app-stores-after-antitrust-ruling\"><u>similar anti-trust actions<\/u><\/a> around the world, Android has been pressured into offering all app stores an option to make this process smoother and more automatic. And F-Droid now uses this new system: \u201cThis allows F-Droid to use a unified installer for all F-Droid installs, whether built into the OS or you installed it on your device yourself.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid users with phones that run Android 14 or newer get to experience the new, streamlined install process, while those with older handsets are out of luck. F-Droid says it \u201cbrings the F-Droid install experience on official Android devices much closer to what the built-in app store can provide,\u201d and this is thanks to a feature called pre-approval that lets users approve permissions when choosing an app, rather than after the download finishes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Somebody in Shanghai with an ordinary phone would not get the new flow. The reason is not the government, but a large number of Chinese ROMs that have not implemented pre-approval properly. \u201cMany Chinese ROMs have as of 2026 not properly implemented pre-approval. They either return `3: INSTALL_FAILED_ABORTED: User rejected permissions` or not return anything at all,\u201d <a href=\"https:\/\/gitlab.com\/fdroid\/fdroidclient\/-\/blob\/master\/app\/src\/main\/kotlin\/org\/fdroid\/install\/SessionInstallManager.kt\"><u>a code comment explains<\/u><\/a>. The country or a locale country of \u201ccn\u201d is used to determine that pre-approval should be switched off entirely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/gitlab.com\/fdroid\/fdroidclient\/-\/work_items\/3254\"><u>work on fixing this<\/u><\/a>, which was opened in April 2026, and closed in June, did not bring a fix for the problem, but a workaround. F-Droid 2.0.0 changelog reveals that the solution was to \u201cCancel install pre-approval if the request fails, falling back to system prompt.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>My Apps: updates become something you don&#8217;t have to think about<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid 2.0 will fetch and install app updates by default, and the refresh gesture is gone. \u201cRather than preserving a familiar action, we focused on removing the need for it,\u201d says the project\u2019s site. \u201cThe best refresh button is the one you never have to press.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid is also the store that will still run on a phone with Android 7, and will still offer apps that target that version. But if that\u2019s the version of Android your phone is running, none of the apps will update themselves, because, as the F-Droid code puts it, that\u2019s \u201cnot supported below Android 12.\u201d And if you were able to update your operating system to, say, Android 13, but the maintainer of the app you\u2019re using never got around to changing its targetSdk from 29 to 30, that app won\u2019t update either.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The store that has the best chance of still carrying that app that\u2019s no longer updated, but still works just fine on your phone, is F-Droid. But in order for F-Droid\u2019s 2.0 to be able to silently update that app, the app would have had to be kept current in the first place. The F-Droid client will continue to support old Android versions, and old apps, but won\u2019t enable silent updates for them. As the project\u2019s code remarks, the arithmetic involved in all this \u201cneeds to be adjusted as new Android versions are released.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The changelog mentions \u201cenable auto-compression for downloads,\u201d \u201callow user to never show metered network warning dialog,\u201d and \u201cprevent self-updates from getting stuck, allow updates to be canceled when waiting.\u201d F-Droid explains that the reason for these changes is that its users are a diverse group with different needs when it comes to data usage. \u201cMany users have cheap access to mobile data, while mobile data is prohibitively expensive for others. Some users have heightened privacy requirements, so they need to control their network traffic. While others are using limited devices which bog down when F-Droid updates in the background,\u201d the free and open source app store said.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Privacy features have changed, and one important feature is missing<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid puts it like this: \u201cSome F-Droid users operate in environments where simply having certain apps installed or even using F-Droid can attract unwanted attention.\u201d Those users have been using F-Droid\u2019s features such as the ability to use the app with Tor, as well as \u201cpanic\u201d and \u201cdisguise\u201d features.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid has long supported Tor for all network connections and Tor Onion Services for repositories and mirrors. But in version 2.0, auto-detection of Tor is gone, and users are advised to use \u201cTor VPN\u201d as the recommended approach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cGoing forward, Tor VPN is the recommended approach for easy Tor support, and the Proxy Settings are still available for those who need manual control,\u201d F-Droid said, explaining that the reason for the change was that the landscape around Tor support has changed, and now, besides Orbot, there is TorVPN, TorServices, and more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The panic features let a user wipe certain sensitive things fast in an emergency, triggered by an app like Ripple. They are still in 2.0 and F-Droid calls them \u201can important part of supporting users with elevated security needs.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But the panic functionality is not the same as before. F-Droid says that while the feature is still available, the app-wiping part of it has not yet been ported to 2.0. In fact, F-Droid advises those who rely on this feature to \u201cpostpone updating to F-Droid 2.0 while we evaluate bringing the feature back.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid\u2019s app-hiding feature, now, is a single activity-alias in the app\u2019s manifest, called \u201c.IconCalculatorActivity,\u201d that is disabled by default, and carries a calculator icon, but no actual functionality. This is a far cry from the first iteration of the feature that turned the entire F-Droid into a working calculator, with the open source app store functionality hidden beneath it. The calculator functionality was removed in F-Droid 2.0, as the changelog reveals: \u201cRemove calculator functionality, the app hiding is now just an icon and name change.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid explains that the new, basic form of app-hiding is not about providing strong protection, but about making users aware of the limits of the feature. \u201cThis feature is designed so that users can better understand the limits of the disguise,\u201d the project said. The fake calculator icon and name are meant to be a quick way to hide the app from casual snoopers &#8211; but F-Droid wants users to be aware that the app will still be visible in the \u201cApps\u201d settings, and can be detected during a forensic inspection. \u201cThis informs users that the F-Droid app will still appear in the \u2018Apps\u2019 settings and would be detectable during forensic inspection,\u201d F-Droid said. The project added that it adopted the simple icon and name change scheme because it had by then become a standard among other apps, such as Orbot, TorVPN, and Signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And while the company is asking for feedback from those who use the panic mode to know \u201chow and when it is used,\u201d the release of 2.0 came with one related issue still open.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It concerns the part of the panic mode that is still available, which is to hide the app. But the ticket, opened on September 13, and last updated on September 23, the day before the 2.0 announcement, shows that the work was not finished, and the hide option still \u201cdoes not explain what will happen and how to reverse.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What else disappeared or changed?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid Privileged Extension (FPE) is not supported in 2.0. F-Droid explains that the component, which lets the app install and update other apps without prompting the user, is not needed any more as the new version, 2.0, brings full support for Android\u2019s \u201csession\u201d installer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This means that F-Droid 2.0 can update apps in the background on any recent Android version, without the need for FPE. FPE was a way for F-Droid to do this on ROMs that included it, but that was the only way it worked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Android 6 is out. The new version of the app requires at least Android 7 to run, and F-Droid explains why: \u201cSome new tools also depend on fixes in Android itself, one such fix was added in Android 7 forcing us to drop support for Android 6.\u201d The build file backs that up, setting the minimum to Android 7.0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another change affects <a href=\"https:\/\/f-droid.org\/en\/2026\/03\/28\/how-to-include-repos-in-rom.html\"><u>custom ROMs that ship F-Droid<\/u><\/a>. They can include their own repositories, and until now, they were doing this by using an XML file. That method is now obsolete, and those who build these ROMs are advised to switch to using a JSON file, but also to ship both files for the time being, until version 2.0 of F-Droid stabilizes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid is blunt about it: \u201cThe old method of adding repositories using an XML file will not work in F-Droid 2.0. We suggest to ship both, the JSON and the XML file as soon as possible until F-Droid 2.0 has stabilized.\u201d The new method involves placing the additional_repos.json file in one of the following locations: \/system_ext\/etc\/fdroid\/, \/product\/etc\/fdroid\/ or \/vendor\/etc\/fdroid\/. The file can also be placed in a subdirectory with the name of the package, if a ROM wants to make the repository available to a single app.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Nearby isn&#8217;t finished yet<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nearby, also called Nearby Swap, is the feature that lets two devices running the F-Droid client connect directly, i.e., without the need for a server, in order to transfer apps from one device to another. This is a unique feature that can be particularly useful in scenarios where the network is filtered, censored, expensive, or otherwise not reliable, or simply watched.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s not a new feature, but it is one that the F-Droid community has been waiting to see revamped and improved as part of the client\u2019s new major release, F-Droid 2.0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, 2.0 includes only the old Nearby, carried over from the previous iteration, and not the rebuilt one that the community has been waiting for. In fact, F-Droid has now announced that the work on the new Nearby is ongoing, and has been for a long time \u2013 the work item on <a href=\"https:\/\/gitlab.com\/fdroid\/fdroidclient\/-\/work_items\/3010\"><u>the project\u2019s issue tracker<\/u><\/a> is from May 2025, and was last updated in April this year. The announcement suggests that the community can now \u201chelp shape the next generation of the feature before it reaches a wider audience.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What users got instead in 2.0 is the old feature, \u201cported\u201d to the new codebase, as the project\u2019s changelog from April 7 shows. The July 10 entry reveals that the work on implementing the old Nearby in 2.0 was completed, and that it was based on the \u201cstable implementation.\u201d The same entry also shows that the new F-Droid client has two limitations regarding Nearby: it does not work on Android 7.x and the connection can only happen on the same network subnet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And there\u2019s another thing: the feature only ships with the full version of the app. Anyone running the basic build is out of luck for the time being. The changelog entry from August 20 explains that Nearby was a source of crashes in 2.0, so a fix went in to \u201cPrevent nearby crashes from affecting users not using nearby.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The announcement of the new Nearby, meanwhile, invites the community to get involved by testing the new implementation and providing feedback, while the code is on GitLab.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The overhaul you can&#8217;t see<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid says the interface is now built with Jetpack Compose and that the app is written in Kotlin, \u201cthe language that has become the standard for modern Android development.\u201d This might seem like a technicality of little interest to end users. The reason it is not is that the smaller the pool of developers who can read a codebase, the longer everything takes, and F-Droid says the point of the rewrite was \u201cto lower the barrier for new contributors.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The goal of the rewrite was to make it easier for new contributors to join, and to make the whole project more sustainable, the free and open source (FOSS) app\u2019s developers said. According to them, the choice of Kotlin was logical since it has become the standard for Android development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid also says that the changes made provide a foundation for the project\u2019s further development over the next decade, while at this point, they bring a number of improvements to the user interface and performance, including faster queries of the database.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other changes include \u201cmany unit tests,\u201d \u201cscreenshot tests for most the UI states,\u201d and changes that make it easier to identify and fix problems, such as disabling proguard optimization and adding more information to crash reports.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The new version also brings a change to the way logs are collected, using a unique identifier (UID) for logcat \u201cif available to get logs from previous processes.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project received funding from several sources, including the Open Technology Fund\u2019s User Experience and Discovery Lab, which supported research and design work, and the Open Technology Fund\u2019s FOSS Sustainability Fund, NGI, and the Calyx Institute. Torsten Grote\u2019s work on the code was funded by <a href=\"https:\/\/nlnet.nl\/project\/F-Droid-App\/\"><u>NLnet<\/u><\/a> through the Mobifree fund, while Ura Design was in charge of the user interface and user experience research and design.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid also underwent a security audit conducted by the Open Technology Fund\u2019s Security Lab and <a href=\"https:\/\/convocation.design\/\"><u>Convocation<\/u><\/a>, the results of which have not been made public. F-Droid says it \u201canalysed and addressed all findings relevant to the new application.\u201d The full report, however, has not been cleared for publication yet, and this publication has not seen it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What the changes add up to<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cFor the longest time, the experience of clicking install or update was forced to be second rate by Android,\u201d said F-Droid, and that has now changed. The project has announced version 2.0 of its app, and claims that the improvements are a result of \u201cpressure from the EU\u2019s Digital Markets Act (DMA) and anti-trust actions around the world.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What the new version brings to the user interface is the same on every device, and that includes browsing, expanded categories, search that looks into descriptions and translations, as well as filters that can be combined.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s a different story with two other features that improve the experience of using F-Droid: full control over updates, and \u201cpre-approval\u201d \u2013 that is, the confirmation moving to the moment the user picks the app, rather than arriving once the download has finished. Those work only on Android 12 or newer, and only if the app targets recent API levels.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not only that, but these features also require Android 14 or newer to work in full, i.e., without having to watch over the installation. F-Droid\u2019s users, however, skew towards running the app on older hardware, as well as on de-Googled ROMs, and on devices running small apps maintained by a single person.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All these groups will continue to experience \u201cfriction\u201d when using <a href=\"https:\/\/reclaimthenet.org\/an-introduction-to-sideloading-android-apps\"><u>the alternative app store<\/u><\/a>. And one feature that has been removed from the new version is the possibility to \u201cwipe\u201d an app in a panic, by quickly uninstalling it. Those who used this option are advised to \u201cpostpone updating to F-Droid 2.0\u201d \u2013 while those who are upgrading will have to make do with an option to \u201cdisguise\u201d an app by changing its icon and name.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>F-Droid&#8217;s next decade<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid 2.0 has arrived, bringing with it both a UI overhaul and a new technical foundation. The release has been in the making for over a year, and the new iteration has been preceded by 14 test releases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid says that the changes made in this version are not only skin-deep, but also provide \u201ca foundation for the next decade of F-Droid development.\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But what has changed, and what is the cost of upgrading to this new version?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid 2.0 drops support for Android 6, and doesn\u2019t use the F-Droid Privileged Extension (FPE). Users who relied on the panic trigger to wipe apps in an emergency will have to do without it for now, as that part has not made it into this release. The rebuilt Nearby service is also not in this version, and custom ROM builders will have to switch from XML to additional_repos.json.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fate of app wiping and the new Nearby remains to be seen, as does the publication of the audit report.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid invites users to \u201cwelcome feedback\u201d on both the decision to drop FPE and on whether to bring back app wiping.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This release was preceded by a long development period, and came with an open ticket regarding the app\u2019s hide feature, and a work item for the Nearby service that was last updated in April.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F-Droid says that the changes in 2.0 provide a foundation for the next decade of development. That decade will apparently start with a new UI, but without the promised audit, and with the Nearby service and app-wiping features still in limbo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A very detailed article on the new version of F-Droid, but I&#8217;m also testing out Obtainium. The hardcore privacy types have moved to Obtainium that lets you install apps directly from developers, e.g. their Github, Gitlab, HTTPS&#8230; F-Droid compiles the packages themselves and sign them with their own keys, which can delay security updates and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-18914","post","type-post","status-publish","format-standard","hentry","category-tech"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"featured_image_src":null,"author_info":{"display_name":"Jason","author_link":"https:\/\/jasonsblog.ddns.net\/index.php\/author\/jturning\/"},"_links":{"self":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/comments?post=18914"}],"version-history":[{"count":3,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18914\/revisions"}],"predecessor-version":[{"id":18917,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/posts\/18914\/revisions\/18917"}],"wp:attachment":[{"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/media?parent=18914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/categories?post=18914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jasonsblog.ddns.net\/index.php\/wp-json\/wp\/v2\/tags?post=18914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}