I was able to build Fennec 45 with a similar set of changes as I see in the manifest (not removing the tests directories, though, just disabling them – as an aside, why delete them wholesale?)

Diff to replay on top of FIREFOX_AURORA_45_BASE 276310:99137d6d4061

diff --git a/mobile/android/confvars.sh b/mobile/android/confvars.sh --- a/mobile/android/confvars.sh +++ b/mobile/android/confvars.sh @@ -54,68 +54,68 @@ MOZ_APP_STATIC_INI=1 if test "$COMPILE_ENVIRONMENT"; then MOZ_ENABLE_SZIP=1 fi # Enable navigator.mozPay MOZ_PAY=1 # Enable UI for healthreporter -MOZ_SERVICES_HEALTHREPORT=1 +MOZ_SERVICES_HEALTHREPORT= # Enable runtime locale switching. MOZ_LOCALE_SWITCHER=1 # Enable second screen and casting support for external devices. MOZ_DEVICES=1 # Enable second screen using native Android libraries, provided we're # not resource constrained. if test -z "$MOZ_ANDROID_RESOURCE_CONSTRAINED"; then - MOZ_NATIVE_DEVICES=1 + MOZ_NATIVE_DEVICES= fi # Enable install tracking SDK if we have Google Play support; MOZ_NATIVE_DEVICES # is a proxy flag for that support. if test "$RELEASE_BUILD"; then if test "$MOZ_NATIVE_DEVICES"; then - MOZ_INSTALL_TRACKING=1 + MOZ_INSTALL_TRACKING= fi fi # Mark as WebGL conformant MOZ_WEBGL_CONFORMANT=1 # Enable the Search Activity. MOZ_ANDROID_SEARCH_ACTIVITY=1 # Enable the Mozilla Location Service stumbler. -MOZ_ANDROID_MLS_STUMBLER=1 +MOZ_ANDROID_MLS_STUMBLER= # Enable adding to the system downloads list. MOZ_ANDROID_DOWNLOADS_INTEGRATION=1 # Enable Tab Queue MOZ_ANDROID_TAB_QUEUE=1 # Use the low-memory GC tuning. export JS_GC_SMALL_CHUNK_SIZE=1 # Enable GCM registration on Nightly builds only. if test "$NIGHTLY_BUILD"; then - MOZ_ANDROID_GCM=1 + MOZ_ANDROID_GCM= fi # Enable C++ APZ on Nightly builds only. if test "$NIGHTLY_BUILD"; then MOZ_ANDROID_APZ=1 fi # Enable checking that add-ons are signed by the trusted root -MOZ_ADDON_SIGNING=1 +MOZ_ADDON_SIGNING= # Enable the Switchboard A/B framework code. # Note: The framework is always included in the app. This flag controls # usage of the framework. -MOZ_SWITCHBOARD=1 +MOZ_SWITCHBOARD= # Disable GeckoView by default. export MOZ_DISABLE_GECKOVIEW=1

mozconfig:

# Build Firefox for Android: ac_add_options --enable-application=mobile/android ac_add_options --target=arm-linux-androideabi ac_add_options --with-android-min-sdk=14 ac_add_options --disable-eme ac_add_options --disable-crashreporter ac_add_options --disable-updater ac_add_options --disable-maintenance-service ac_add_options --disable-tests ac_add_options --with-branding=mobile/android/branding/unofficial # With the following Android SDK and NDK: ac_add_options --with-android-sdk="/home/anrp/.mozbuild/android-sdk-linux" ac_add_options --with-android-ndk="/home/anrp/.mozbuild/android-ndk-r10e" mk_add_options MOZ_MAKE_FLAGS="-j10"

… and it basically just worked (bonus: addon signing is disabled.) Note that this build, while not tying in with Play services, might still depend on the Play services being available during build – I did the streamlined bootstrap with mach, which installed all of them. I’ll try ripping out GCM from the ~/.mozbuild and see what happens.

I did this on Ubuntu 14.04-amd64, only building for armeabi (only kind of android device I have.)

Note that in Fennec tip (46?) the min SDK goes up one to 15 (otherwise there’s an error in generating the version number in some of the python build code.)