Skip to content
chornous.dev

Type two or more letters. Esc closes.

Index of sheets
Theme

Sheet 03 · Writing

All notes

F-Droid 2.0: a Kotlin and Compose rewrite, automatic updates, and no more Android 6

F-Droid announced 2.0 on September 24, 2026, its largest client update in ten years. The app moved to Kotlin and Jetpack Compose, installs through Android's session installer with pre-approval, updates apps by default, and dropped Android 6 and the Privileged Extension.

Pl. 78 · pipeline drawing generated from the slug “f-droid-2-0-compose-rewrite”

The F-Droid project announced F-Droid 2.0 on September 24, 2026, after more than a year of work and 14 test releases. The team calls it the largest update to its Android client in ten years. The rollout reaches users over the coming weeks.

The redesign gets the screenshots. For developers, the interesting parts sit underneath: the codebase, the installer and a default that changes how your updates reach people.

What changed, by audience

Changes in F-Droid 2.0, from the announcement
You areChangeEffect
App publisherUpdates install by defaultNew versions reach users without a manual check
App publisherSearch covers descriptions, categories and translationsYour description text now drives discovery
App publisherMany more specialized categories, grouped under meta categoriesUsers browsing a narrow category find a closer match
ROM maintainerPrivileged Extension not supported2.0 ignores FPE even when installed
ROM maintainerAdditional repos still ship by defaultUsers see them in the Repositories overview
User on Android 6Support droppedOlder F-Droid releases keep working
ContributorKotlin and Jetpack Compose codebaseStandard Android stack, lower barrier to a first patch

The installer

For years, Android gave third-party stores a worse install flow than the built-in one. The F-Droid team credits the EU's Digital Markets Act and antitrust actions for pushing Android to offer all stores a smoother path, and the team built 2.0 around it.

F-Droid now uses one unified installer for all installs, whether the OS ships F-Droid or you installed it yourself. The installer calls Android's pre-approval API, so on supported devices you confirm the install at the moment you tap it, before the download finishes. The whole design leans on Android's session installer, which lets F-Droid run background updates on any recent Android version.

That choice explains two removals. The F-Droid Privileged Extension existed to give the client install rights the platform wouldn't grant. With the session installer doing that job, 2.0 doesn't use FPE even when it's present. And one of the Android fixes the new tools depend on arrived in Android 7, so Android 6 lost support.

Automatic updates change your release process

F-Droid 2.0 fetches and installs app updates by default. Pull-to-refresh no longer checks repositories; the manual check moved to the overflow menu on My Apps. Users who set their own preferences keep them.

For a publisher, the gap between a release landing in the repository and a user running it shrinks. A regression used to reach people when they chose to check for updates. Now it reaches your F-Droid users on their next background check. If you don't run a beta channel or staged testing before tagging a release, 2.0 is a reason to start.

Discovery depends on your metadata

Search in 2.0 reads app descriptions, categories and translated text, and handles Chinese, Japanese and Korean better than before. Filters combine category, device compatibility and anti-features, so a user can hide apps that depend on non-free network services.

Three things follow for publishers:

  1. Rewrite your summary and description around what the app does, in the words a user would search for. Names matter less when descriptions are searchable.
  2. Pick the most specific category that fits. The Games category alone now splits into 17 genres.
  3. Keep translations current. Translated text is searchable, and a stale translation now hides your app from people searching in that language.

What didn't make it

Two features are missing from the first 2.0 release. Nearby, the offline app-sharing feature, is getting a new implementation that isn't ready. The panic-triggered app wipe, used with apps like Ripple, didn't return, and the team suggests users who depend on it postpone the update while they evaluate bringing it back. The "use Tor" setting migrates to generic proxy settings, with Tor VPN as the recommended route.

An independent security review by the Open Technology Fund's Security Lab and Convocation covered 2.0. The team says it addressed all findings relevant to the new app and will publish the full report once cleared.

This week

  1. Sep 24, 2026

    F-Droid 2.0 announced. Staged rollout begins.
  2. Coming weeks

    Rollout reaches the full user base.

If you publish on F-Droid, reread your app's description and category with search in mind, and add a test pass before your next tag, since your users will get it without asking. If you ship a ROM, check update behavior without the Privileged Extension. If you've wanted to contribute to F-Droid but bounced off the old codebase, the Kotlin and Compose rewrite is a good moment to try again.

Volodymyr Chornous