F-Droid Inclusion Gate - non-free Gradle dependency map

F-Droid migration check for build.gradle: flags Play Services, Firebase, Crashlytics, Play Billing and tracker SDKs the Inclusion Policy forbids, with the FOSS replacement line for each. Runs entirely in your browser — nothing is uploaded.

Full version: whole-workspace F-Droid migration plan + CI gate — $29 once, one licence key per person or team seat

Same engine as the VS Code extension, byte for byte.

Get the full version $29

The whole workspace: a dated F-Droid migration plan across every module, the foss/play flavour split per item, and a CI gate that fails a build adding new non-free use.

One payment, one licence key for this tool. The key is shown right after payment.

Buy the full version — $29
Want the full version?
Enter your email and we send the download link.
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

F-Droid Inclusion Gate - non-free Gradle dependency map

Migrate from Google Play Services to F-Droid: the build.gradle lines that fail F-Droid's build

10 non-free items in one sample build.gradle.kts stop an Android developer from shipping that app on F-Droid; the scan gave 14 findings in all. Six of them carry most of the work: Firebase Cloud Messaging, Crashlytics, Play Services Location, Google Maps, ML Kit barcode scanning and Play Billing.

F-Droid's Inclusion Policy is direct about it. Proprietary tracking or advertising libraries and analytics tools "such as Google Play Services and Firebase and Crashlytics and proprietary ad/tracking SDKs are strictly forbidden in all applications." Developers must implement "either a FLOSS alternative or a build flavour that does not require these dependencies." And apps "which fail to rebuild (such as requiring Play Services) or contain undisclosed anti-features will receive a rejection."

Why this quarter? Since August 31 2026, Google Play requires new apps and app updates to target Android 16 (API level 36). Teams making that change are already inside build.gradle, and a foss product flavour next to play is one more change in the same file.

What the check reads

F-Droid builds every app from source. Its tool, fdroidserver, carries a list of non-free library signatures and a list of allowed Maven repositories: Maven Central, Google Maven, Sonatype, JFrog, JitPack and Clojars. F-Droid Inclusion Gate turns those two lists and the policy text into 25 rules that run on the Gradle file you have open in VS Code, or on text you paste into the free web page.

Six lines and their replacements

  1. com.google.firebase:firebase-messaging becomes org.unifiedpush.android:connector.
  2. com.google.firebase:firebase-crashlytics becomes ch.acra:acra-mail. ACRA is Apache-2.0. Keep it opt-in and off by default, or F-Droid adds the Tracking anti-feature.
  3. com.google.android.gms:play-services-location becomes android.location.LocationManager, which is part of the platform and needs no dependency.
  4. com.google.android.gms:play-services-maps becomes org.osmdroid:osmdroid-android (Apache-2.0) or org.maplibre.gl:android-sdk (BSD-2).
  5. com.google.mlkit:barcode-scanning becomes com.journeyapps:zxing-android-embedded (Apache-2.0).
  6. com.android.billingclient:billing-ktx moves to playImplementation inside a play flavour. The foss flavour links a donation page instead.

The other four items in the sample were the Firebase BOM, Firebase Analytics, the Crashlytics Gradle plugin and Play in-app review. There were also four warnings: the google-services plugin, jcenter(), a Maven repository outside the allowed list, and no foss flavour at all.

The flavour split

You do not have to delete Firebase from the Play build. Declare two flavours in one dimension, foss and play, and change implementation to playImplementation for every non-free line. The tool then reports those lines as info, isolated in the play flavour. The migrated sample gives 0 errors and 2 info lines. F-Droid's build recipe then points at the foss flavour.

What it does not do

It reads Gradle text. It does not open an APK and cannot see a non-free library pulled in transitively by a free-looking one. F-Droid reviewers still read the source and decide. The check removes the obvious build failures before that review.

Free and paid

The open file is free, with every item, line and replacement, and no key. A licence key covers the whole workspace: a dated migration plan across every module, the flavour split per item, and a CI gate that fails a build that adds new non-free use.

15 seconds — what it actually does

Questions people ask

What does F-Droid Inclusion Gate do?

It reads an Android build.gradle, build.gradle.kts or libs.versions.toml and lists every dependency, plugin and Maven repository that the F-Droid Inclusion Policy treats as non-free, with the line number and the FOSS replacement line: UnifiedPush for Firebase Cloud Messaging, ACRA for Crashlytics, osmdroid or MapLibre for Google Maps, ZXing for ML Kit barcode scanning. It has 25 rules.

Who is F-Droid Inclusion Gate for?

Android developers and small app teams who ship on Google Play and want the same app on F-Droid, maintainers answering an F-Droid reviewer about Play Services or Firebase, and open-source projects adding a foss product flavour next to their play flavour, for example while they update targetSdk to API 36 for Google Play's August 31 2026 requirement.

Why not just run fdroidserver or ask a chatbot?

fdroidserver's scanner is free software, but it expects F-Droid's build metadata and a checked-out source tree, so it is not an editor check. A chatbot does not carry fdroidserver's signature list or its allowed Maven repositories, and may suggest microG, which replaces Play Services on the phone but leaves the proprietary client library in your build. This extension flags each line in the editor, before you submit.

What is free and what needs a licence key?

Free, with no key: the open Gradle file is checked in full, every non-free item is named with file, line and replacement, and the web version at getreadystack.com runs the same engine. The $29 licence key adds the whole workspace: a dated migration plan across every module, the foss/play flavour split for each item, and a CI gate that fails a build adding new non-free use.

What does the alternative cost?

The F-Droid route itself costs nothing: F-Droid builds and signs the app, and its scanner is free software. The real cost is time. A build that fails on a leftover Firebase or Play Services line goes back to the developer, so fixing it after submission means another wait on review. The $29 key is paid once, not a subscription, and the free check needs no key.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.