2.3 KiB
2.3 KiB
F-Droid Flavor Swap Audit & Execution
Date: 2026-03-28
Status: ✅ SUCCESS - Clean swap, no code changes needed
Flavor Differences
The Element X Android build flavors are minimal:
| Aspect | Gplay | F-Droid |
|---|---|---|
SHORT_FLAVOR_DESCRIPTION |
"G" | "F" |
FLAVOR_DESCRIPTION |
"GooglePlay" | "FDroid" |
| Push Provider | Firebase (FCM) | UnifiedPush only |
| Flavor-specific source dirs | None | None |
Key finding: No app/src/gplay or app/src/fdroid directories exist — flavors only differ by build config strings and conditional dependencies.
Push Provider Architecture
if (ModulesConfig.pushProvidersConfig.includeFirebase) {
"gplayImplementation"(projects.libraries.pushproviders.firebase) // Gplay only
}
if (ModulesConfig.pushProvidersConfig.includeUnifiedPush) {
implementation(projects.libraries.pushproviders.unifiedpush) // Both flavors
}
Firebase push is gplay-only via gplayImplementation. UnifiedPush is included in both.
Google Dependencies Check
- google-services.json: Not present in repo ✅
- Google Services plugin: Commented out in build.gradle.kts ✅
- Firebase App Distribution: Used for CI only, not runtime dependency ✅
Custom Code (ADA) Check
Searched features/wallet/ and libraries/matrix/ for:
gplay,GPlay,firebase,Firebase,FCM,fcm,google-services
Result: No matches. Our wallet code has zero Google/Gplay dependencies. ✅
Build Result
BUILD SUCCESSFUL in 1m 42s
3808 actionable tasks: 23 executed, 1 from cache, 3784 up-to-date
APK Outputs
| Variant | Size |
|---|---|
| arm64-v8a | 206M |
| armeabi-v7a | 93M |
| universal | 382M |
| x86 | 100M |
| x86_64 | 210M |
Location: /tmp/element-x-android/app/build/outputs/apk/fdroid/debug/
APK Download
Serving arm64 APK on Lucy:
http://192.168.0.5:8888
Changes Required
None. The swap from :app:assembleGplayDebug to :app:assembleFdroidDebug is purely a build target change. No source code modifications needed.
Recommendation
For ADA, F-Droid is the cleaner choice:
- No Firebase/Google Play Services dependencies
- Simpler push architecture (UnifiedPush only)
- No google-services.json required
- Better for privacy-focused crypto wallet users