The Waterfox for Android browser is based on Fenix.
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/
For feature development, you can build a local development version quickly:
-
Build GeckoView:
./mach build
-
Open in Android Studio:
- Open Android Studio
- Select the
fenixproject as the module to debug/release - Select
waterfoxDebugas the build variant - You can now debug and develop features directly in Android Studio
To create a production-equivalent build locally (similar to what CI does):
-
Initialise submodules and set up environment variables:
git submodule update --init --recursive export GRADLE_MAVEN_REPOSITORIES="https://maven.google.com/,https://repo.maven.apache.org/maven2/,https://plugins.gradle.org/m2/,https://maven.mozilla.org/maven2/" export MOZ_BUILD_DATE="$(date +'%Y%m%d%H0000')"
-
Build GeckoView for multiple architectures:
For ARM (armeabi-v7a):
export MOZCONFIG=".mozconfig-arm-linux-androideabi" rustup target add thumbv7neon-linux-androideabi ./mach build export GRADLE_INVOKED_WITHIN_MACH_BUILD=1 ./mach gradle :geckoview:assembleRelease ./mach gradle :geckoview:publishReleasePublicationToMavenRepository python3 scripts/create-maven-zip.py --objdir "obj-arm-linux-androideabi" --include-snapshots --require-aar
For ARM64 (arm64-v8a):
export MOZCONFIG=".mozconfig-aarch64-linux-android" rustup target add aarch64-linux-android ./mach build export GRADLE_INVOKED_WITHIN_MACH_BUILD=1 ./mach gradle :geckoview:assembleRelease ./mach gradle :geckoview:publishReleasePublicationToMavenRepository python3 scripts/create-maven-zip.py --objdir "obj-aarch64-linux-android" --include-snapshots --require-aar
For x86_64:
export MOZCONFIG=".mozconfig-x86_64-linux-android" rustup target add x86_64-linux-android ./mach build export GRADLE_INVOKED_WITHIN_MACH_BUILD=1 ./mach gradle :geckoview:assembleRelease ./mach gradle :geckoview:publishReleasePublicationToMavenRepository python3 scripts/create-maven-zip.py --objdir "obj-x86_64-linux-android" --include-snapshots --require-aar
-
Build Fat AAR:
export MOZ_ANDROID_FAT_AAR_ARMEABI_V7A="$(pwd)/obj-arm-linux-androideabi/gradle/target.maven.zip" export MOZ_ANDROID_FAT_AAR_ARM64_V8A="$(pwd)/obj-aarch64-linux-android/gradle/target.maven.zip" export MOZ_ANDROID_FAT_AAR_X86_64="$(pwd)/obj-x86_64-linux-android/gradle/target.maven.zip" ./mach build
-
Build Release APKs:
./gradlew assembleWaterfoxRelease
-
Output Locations: After building, your files will be located at:
APK files:
objdir/gradle/build/mobile/android/fenix/app/outputs/apk/waterfox/release/