Bug 1237342 - Drop support for Android API 14 from Firefox builds. r?nalexander
--- a/mobile/android/app/base/build.gradle
+++ b/mobile/android/app/base/build.gradle
@@ -3,17 +3,17 @@ buildDir "${topobjdir}/gradle/build/mobi
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
targetSdkVersion 22
- minSdkVersion 14
+ minSdkVersion 15
// Used by Robolectric based tests; see TestRunner.
buildConfigField 'String', 'BUILD_DIR', "\"${project.buildDir}\""
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -3,17 +3,17 @@ buildDir "${topobjdir}/gradle/build/mobi
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
targetSdkVersion 22
- minSdkVersion 14
+ minSdkVersion 15
applicationId mozconfig.substs.ANDROID_PACKAGE_NAME
testApplicationId 'org.mozilla.roboexample.test'
testInstrumentationRunner 'org.mozilla.gecko.FennecInstrumentationTestRunner'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
--- a/mobile/android/b2gdroid/config/mozconfigs/common
+++ b/mobile/android/b2gdroid/config/mozconfigs/common
@@ -29,23 +29,23 @@ MOZ_SZIP_FLAGS="-D auto -f auto"
ac_add_options --enable-elf-hack
ANDROID_NDK_VERSION="r10e"
ANDROID_NDK_VERSION_32BIT="r10c"
# Build B2GDroid
ac_add_options --enable-application=mobile/android/b2gdroid
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
ac_add_options --with-android-ndk="$topsrcdir/android-ndk-r10e"
ac_add_options --with-android-sdk="$topsrcdir/android-sdk-linux"
ac_add_options --with-android-gnu-compiler-version=4.9
-ac_add_options --with-android-version=14
+ac_add_options --with-android-version=15
ac_add_options --with-system-zlib
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
# Treat warnings as errors in directories with FAIL_ON_WARNINGS.
ac_add_options --enable-warnings-as-errors
ac_add_options --with-mozilla-api-keyfile=/builds/mozilla-fennec-geoloc-api.key
export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE=/builds/crash-stats-api.token
--- a/mobile/android/config/mozconfigs/android-api-11/debug
+++ b/mobile/android/config/mozconfigs/android-api-11/debug
@@ -1,15 +1,15 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
# Global options
ac_add_options --enable-debug
# Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
ac_add_options --with-branding=mobile/android/branding/nightly
# Treat warnings as errors (modulo ALLOW_COMPILER_WARNINGS).
--- a/mobile/android/config/mozconfigs/android-api-11/l10n-nightly
+++ b/mobile/android/config/mozconfigs/android-api-11/l10n-nightly
@@ -2,17 +2,17 @@
# L10n
ac_add_options --with-l10n-base=../../l10n-central
# Global options
ac_add_options --disable-tests
# Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-system-zlib
ac_add_options --enable-updater
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
export MOZILLA_OFFICIAL=1
export MOZ_DISABLE_GECKOVIEW=1
--- a/mobile/android/config/mozconfigs/android-api-11/l10n-release
+++ b/mobile/android/config/mozconfigs/android-api-11/l10n-release
@@ -2,17 +2,17 @@
# L10n
ac_add_options --with-l10n-base=..
# Global options
ac_add_options --disable-tests
# Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-system-zlib
ac_add_options --enable-updater
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
export MOZILLA_OFFICIAL=1
export MOZ_DISABLE_GECKOVIEW=1
--- a/mobile/android/config/mozconfigs/android-api-11/nightly
+++ b/mobile/android/config/mozconfigs/android-api-11/nightly
@@ -1,14 +1,14 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
ac_add_options --enable-profiling
# Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-branding=mobile/android/branding/nightly
# This will overwrite the default of stripping everything and keep the symbol table.
# This is useful for profiling with eideticker. See bug 788680
STRIP_FLAGS="--strip-debug"
--- a/mobile/android/config/mozconfigs/android-api-11/release
+++ b/mobile/android/config/mozconfigs/android-api-11/release
@@ -1,12 +1,12 @@
. "$topsrcdir/mobile/android/config/mozconfigs/common"
# Android
-ac_add_options --with-android-min-sdk=14
+ac_add_options --with-android-min-sdk=15
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-branding=mobile/android/branding/beta
ac_add_options --enable-updater
export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -8,19 +8,19 @@ MOZ_APP_VENDOR=Mozilla
MOZ_APP_VERSION=$FIREFOX_VERSION
MOZ_APP_VERSION_DISPLAY=$FIREFOX_VERSION_DISPLAY
MOZ_APP_UA_NAME=Firefox
MOZ_BRANDING_DIRECTORY=mobile/android/branding/unofficial
MOZ_OFFICIAL_BRANDING_DIRECTORY=mobile/android/branding/official
# MOZ_APP_DISPLAYNAME is set by branding/configure.sh
-# We support Android SDK version 14 and up by default.
+# We support Android SDK version 15 and up by default.
# See the --enable-android-min-sdk and --enable-android-max-sdk arguments in configure.in.
-MOZ_ANDROID_MIN_SDK_VERSION=14
+MOZ_ANDROID_MIN_SDK_VERSION=15
# There are several entry points into the Firefox application. These are the names of some of the classes that are
# listed in the Android manifest. They are specified in here to avoid hard-coding them in source code files.
MOZ_ANDROID_APPLICATION_CLASS=org.mozilla.gecko.GeckoApplication
MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp
MOZ_ANDROID_SEARCH_INTENT_CLASS=org.mozilla.search.SearchActivity
MOZ_SAFE_BROWSING=1
--- a/mobile/android/thirdparty/build.gradle
+++ b/mobile/android/thirdparty/build.gradle
@@ -3,17 +3,17 @@ buildDir "${topobjdir}/gradle/build/mobi
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
targetSdkVersion 22
- minSdkVersion 14
+ minSdkVersion 15
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
--- a/python/mozbuild/mozbuild/android_version_code.py
+++ b/python/mozbuild/mozbuild/android_version_code.py
@@ -13,22 +13,22 @@ import time
# build ID use the v1 version scheme.
V1_CUTOFF = 20150801000000 # YYYYmmddHHMMSS
def android_version_code_v0(buildid, cpu_arch=None, min_sdk=0, max_sdk=0):
base = int(str(buildid)[:10])
# None is interpreted as arm.
if not cpu_arch or cpu_arch in ['armeabi', 'armeabi-v7a']:
# Increment by MIN_SDK_VERSION -- this adds 9 to every build ID as a
- # minimum. Our split APK starts at 14.
+ # minimum. Our split APK starts at 15.
return base + min_sdk + 0
elif cpu_arch in ['x86']:
# Increment the version code by 3 for x86 builds so they are offered to
# x86 phones that have ARM emulators, beating the 2-point advantage that
- # the v14+ ARMv7 APK has. If we change our splits in the future, we'll
+ # the v15+ ARMv7 APK has. If we change our splits in the future, we'll
# need to do this further still.
return base + min_sdk + 3
else:
raise ValueError("Don't know how to compute android:versionCode "
"for CPU arch %s" % cpu_arch)
def android_version_code_v1(buildid, cpu_arch=None, min_sdk=0, max_sdk=0):
'''Generate a v1 android:versionCode.
@@ -50,21 +50,21 @@ def android_version_code_v1(buildid, cpu
The bits labelled 'x', 'p', and 'g' are feature flags.
The bit labelled 'x' is 1 if the build is for an x86 architecture and 0
otherwise, which means the build is for an ARM architecture. (Fennec no
longer supports ARMv6, so ARM is equivalent to ARMv7 and above.)
The bit labelled 'p' is a placeholder that is always 0 (for now).
- The bit labelled 'g' is 1 if the build is an ARM build targeting API 14+
+ The bit labelled 'g' is 1 if the build is an ARM build targeting API 15+
and 0 otherwise, which means the build targets Android API 9-10 (Gingerbread).
Fennec no longer supports Android API 8 or earlier. After Bug 1155801 it
- no longer supports API 11-13. API 9 is still supported due to significant usage.
+ no longer supports API 11-14. API 9 is still supported due to significant usage.
We throw an explanatory exception when we are within one calendar year of
running out of build events. This gives lots of time to update the version
scheme. The responsible individual should then bump the range (to allow
builds to continue) and use the time remaining to update the version scheme
via the reserved high order bits.
N.B.: the reserved 0 bit to the left of the highest order 't' bit can,
@@ -104,19 +104,19 @@ def android_version_code_v1(buildid, cpu
# for architecture and APK splits.
version |= base << 3
# None is interpreted as arm.
if not cpu_arch or cpu_arch in ['armeabi', 'armeabi-v7a']:
# 0 is interpreted as SDK 9.
if not min_sdk or min_sdk == 9:
pass
- # This used to compare to 11. The 14+ APK directly supersedes 11+, so
+ # This used to compare to 11. The 15+ APK directly supersedes 11+, so
# we reuse this check.
- elif min_sdk == 14:
+ elif min_sdk == 15:
version |= 1 << 0
else:
raise ValueError("Don't know how to compute android:versionCode "
"for CPU arch %s and min SDK %s" % (cpu_arch, min_sdk))
elif cpu_arch in ['x86']:
version |= 1 << 2
else:
raise ValueError("Don't know how to compute android:versionCode "
--- a/python/mozbuild/mozbuild/test/backend/common.py
+++ b/python/mozbuild/mozbuild/test/backend/common.py
@@ -30,17 +30,17 @@ test_data_path = mozpath.join(test_data_
CONFIGS = defaultdict(lambda: {
'defines': [],
'non_global_defines': [],
'substs': [('OS_TARGET', 'WINNT')],
}, {
'android_eclipse': {
'defines': [
- ('MOZ_ANDROID_MIN_SDK_VERSION', '14'),
+ ('MOZ_ANDROID_MIN_SDK_VERSION', '15'),
],
'non_global_defines': [],
'substs': [
('ANDROID_TARGET_SDK', '16'),
],
},
'binary-components': {
'defines': [],
--- a/python/mozbuild/mozbuild/test/test_android_version_code.py
+++ b/python/mozbuild/mozbuild/test/test_android_version_code.py
@@ -19,20 +19,20 @@ class TestAndroidVersionCode(unittest.Te
x86_api9 = 2015070822
self.assertEqual(android_version_code_v0(buildid, cpu_arch='armeabi', min_sdk=9, max_sdk=None), arm_api9)
self.assertEqual(android_version_code_v0(buildid, cpu_arch='armeabi-v7a', min_sdk=11, max_sdk=None), arm_api11)
self.assertEqual(android_version_code_v0(buildid, cpu_arch='x86', min_sdk=9, max_sdk=None), x86_api9)
def test_android_version_code_v1(self):
buildid = '20150825141628'
arm_api9 = 0b01111000001000000001001001110000
- arm_api14 = 0b01111000001000000001001001110001
+ arm_api15 = 0b01111000001000000001001001110001
x86_api9 = 0b01111000001000000001001001110100
self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi', min_sdk=9, max_sdk=None), arm_api9)
- self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi-v7a', min_sdk=14, max_sdk=None), arm_api14)
+ self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi-v7a', min_sdk=15, max_sdk=None), arm_api15)
self.assertEqual(android_version_code_v1(buildid, cpu_arch='x86', min_sdk=9, max_sdk=None), x86_api9)
def test_android_version_code_v1_underflow(self):
'''Verify that it is an error to ask for v1 codes predating the cutoff.'''
buildid = '201508010000' # Earliest possible.
arm_api9 = 0b01111000001000000000000000000000
self.assertEqual(android_version_code_v1(buildid, cpu_arch='armeabi', min_sdk=9, max_sdk=None), arm_api9)
with self.assertRaises(ValueError) as cm: