Skip to content

Add F-Droid flavor without Firebase/Google services#198

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/create-fdroid-flavor-without-firebase
Draft

Add F-Droid flavor without Firebase/Google services#198
Copilot wants to merge 3 commits intomainfrom
copilot/create-fdroid-flavor-without-firebase

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 28, 2026

F-Droid disallows Google services/Firebase, requiring a separate build flavor for distribution via F-Droid and Obtainium. Adds a fdroid product flavor stripped of all Google dependencies alongside the renamed gplay flavor.

Flavor split

  • flavorDimensions "distribution" with gplay and fdroid flavors
  • Firebase plugins (google-services, crashlytics) applied conditionally — only when google-services.json is present, so fdroid builds need no secrets
  • Firebase BOM/Crashlytics/Analytics, Play Billing, and Play Services Auth scoped to gplayImplementation

Source sets

File gplay fdroid
ImmichApplication.kt Original (Firebase Crashlytics tree) Simple Timber tree, no crash reporting
DonateFragment.kt Original (Play Billing flow) Stub — shows toast directing to GitHub, pops back
DonateService.kt Original Empty stub (no billing APIs)

Manifest (fdroid)

app/src/fdroid/AndroidManifest.xml removes via tools:node="remove":

  • com.android.vending.BILLING permission
  • com.google.android.gms.permission.AD_ID entry
  • Cast Connect meta-data

CI

  • android.yml: two parallel jobs (build-gplay, build-fdroid); fdroid job skips GOOGLE_SERVICES_BASE64
  • release.yml: builds both flavors and uploads ImmichTV-gplay-{version}.apk and ImmichTV-fdroid-{version}.apk as release assets

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • jitpack.io
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED -Xmx2048m -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/REDACTED/.gradle/wrapper/dists/gradle-8.13-bin/5xuhj0ry160q40clulazy9h7d/gradle-8.13/lib/gradle-daemon-main-8.13.jar (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

Copilot AI changed the title [WIP] Add F-Droid flavor without Firebase and Google services Add F-Droid flavor without Firebase/Google services Mar 28, 2026
Copilot AI requested a review from giejay March 28, 2026 08:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FR] Allow installation via F-Droid\Obtanium\etc.

2 participants