Bug 1219094 - releng work for dropping api-11 through api-14, r=rail
authorJordan Lund <jlund@mozilla.com>
Fri, 22 Jan 2016 11:08:23 -0800
changeset 324666 3752abafdf19b08a543ce4ce243b2bb7c74b664d
parent 324665 333b31c1040c085af12e7865a83df50184367107
child 324667 e7cfbfa5847cdfbdc0f103cb4c3c36238c0e976c
push id9940
push userrjesup@wgate.com
push dateSat, 23 Jan 2016 22:22:56 +0000
reviewersrail
bugs1219094
milestone46.0a1
Bug 1219094 - releng work for dropping api-11 through api-14, r=rail
mobile/android/config/mozconfigs/android-api-15/debug
mobile/android/config/mozconfigs/android-api-15/l10n-nightly
mobile/android/config/mozconfigs/android-api-15/l10n-release
mobile/android/config/mozconfigs/android-api-15/nightly
mobile/android/config/mozconfigs/android-api-15/release
mobile/android/config/mozconfigs/public-partner/distribution_sample/mozconfig1
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_b2gdroid.py
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_partner_sample1.py
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_b2gdroid.py
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py
testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py
testing/mozharness/configs/merge_day/central_to_aurora.py
testing/mozharness/configs/releases/bouncer_fennec.py
testing/mozharness/configs/single_locale/ash_android-api-11.py
testing/mozharness/configs/single_locale/ash_android-api-15.py
testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py
testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_11.py
testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_15.py
testing/mozharness/configs/single_locale/release_mozilla-release_android_api_11.py
testing/mozharness/configs/single_locale/release_mozilla-release_android_api_15.py
testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_11.py
testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py
testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_11.py
testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
testing/mozharness/scripts/mobile_l10n.py
testing/taskcluster/tasks/branches/base_job_flags.yml
testing/taskcluster/tasks/branches/mozilla-central/job_flags.yml
testing/taskcluster/tasks/branches/try/job_flags.yml
testing/taskcluster/tasks/builds/android_api_11.yml
testing/taskcluster/tasks/builds/android_api_11_b2gdroid.yml
testing/taskcluster/tasks/builds/android_api_11_partner_sample1.yml
testing/taskcluster/tasks/builds/android_api_15.yml
testing/taskcluster/tasks/builds/android_api_15_b2gdroid.yml
testing/taskcluster/tasks/builds/android_api_15_partner_sample1.yml
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/debug
@@ -0,0 +1,18 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+# Global options
+ac_add_options --enable-debug
+
+# Android
+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).
+ac_add_options --enable-warnings-as-errors
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/l10n-nightly
@@ -0,0 +1,24 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+# L10n
+ac_add_options --with-l10n-base=../../l10n-central
+
+# Global options
+ac_add_options --disable-tests
+
+# Android
+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
+
+ac_add_options --with-branding=mobile/android/branding/nightly
+
+ac_add_options --disable-stdcxx-compat
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/l10n-release
@@ -0,0 +1,25 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+# L10n
+ac_add_options --with-l10n-base=..
+
+# Global options
+ac_add_options --disable-tests
+
+# Android
+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
+
+ac_add_options --enable-official-branding
+ac_add_options --with-branding=mobile/android/branding/beta
+
+ac_add_options --disable-stdcxx-compat
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/nightly
@@ -0,0 +1,20 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+ac_add_options --enable-profiling
+
+# Android
+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"
+
+export MOZILLA_OFFICIAL=1
+export MOZ_TELEMETRY_REPORTING=1
+
+MOZ_ANDROID_GECKOLIBS_AAR=1
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/release
@@ -0,0 +1,16 @@
+. "$topsrcdir/mobile/android/config/mozconfigs/common"
+
+# Android
+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
+
+ac_add_options --enable-official-branding
+
+. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/public-partner/distribution_sample/mozconfig1
+++ b/mobile/android/config/mozconfigs/public-partner/distribution_sample/mozconfig1
@@ -1,15 +1,15 @@
-# currently a copy of mobile/android/config/mozconfigs/android-api-11/nightly
+# currently a copy of mobile/android/config/mozconfigs/android-api-15/nightly
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
 ac_add_options --enable-profiling
 
 # Android
-ac_add_options --with-android-min-sdk=11
+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"
 
deleted file mode 100644
--- a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_b2gdroid.py
+++ /dev/null
@@ -1,9 +0,0 @@
-config = {
-    'base_name': 'Android armv7 API 11+ b2gdroid %(branch)s',
-    'stage_platform': 'android-api-11-b2gdroid',
-    'build_type': 'api-11-b2gdroid-opt',
-    'src_mozconfig': 'mobile/android/b2gdroid/config/mozconfigs/nightly',
-    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/b2gdroid/releng.manifest',
-    'multi_locale_config_platform': 'android',
-    'enable_nightly_promotion': True,
-}
deleted file mode 100644
--- a/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_partner_sample1.py
+++ /dev/null
@@ -1,9 +0,0 @@
-config = {
-    'base_name': 'Android armv7 API 11+ partner Sample1 %(branch)s',
-    'stage_platform': 'android-api-11-partner-sample1',
-    'build_type': 'api-11-partner-sample1-opt',
-    'src_mozconfig': None,  # use manifest to determine mozconfig src
-    'src_mozconfig_manifest': 'partner/mozconfigs/mozconfig1.json',
-    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
-    'multi_locale_config_platform': 'android',
-}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15.py
@@ -0,0 +1,8 @@
+config = {
+    'base_name': 'Android armv7 API 15+ %(branch)s',
+    'stage_platform': 'android-api-15',
+    'build_type': 'api-15-opt',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/nightly',
+    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+    'multi_locale_config_platform': 'android',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_b2gdroid.py
@@ -0,0 +1,9 @@
+config = {
+    'base_name': 'Android armv7 API 15+ b2gdroid %(branch)s',
+    'stage_platform': 'android-api-15-b2gdroid',
+    'build_type': 'api-15-b2gdroid-opt',
+    'src_mozconfig': 'mobile/android/b2gdroid/config/mozconfigs/nightly',
+    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/b2gdroid/releng.manifest',
+    'multi_locale_config_platform': 'android',
+    'enable_nightly_promotion': True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_debug.py
@@ -0,0 +1,9 @@
+config = {
+    'base_name': 'Android armv7 API 15+ %(branch)s debug',
+    'stage_platform': 'android-api-15-debug',
+    'build_type': 'api-15-debug',
+    'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/debug',
+    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+    'multi_locale_config_platform': 'android',
+    'debug_build': True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_15_partner_sample1.py
@@ -0,0 +1,9 @@
+config = {
+    'base_name': 'Android armv7 API 15+ partner Sample1 %(branch)s',
+    'stage_platform': 'android-api-15-partner-sample1',
+    'build_type': 'api-15-partner-sample1-opt',
+    'src_mozconfig': None,  # use manifest to determine mozconfig src
+    'src_mozconfig_manifest': 'partner/mozconfigs/mozconfig1.json',
+    'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+    'multi_locale_config_platform': 'android',
+}
--- a/testing/mozharness/configs/merge_day/central_to_aurora.py
+++ b/testing/mozharness/configs/merge_day/central_to_aurora.py
@@ -5,17 +5,17 @@ config = {
         {"file": "browser/config/version_display.txt", "suffix": ""},
         {"file": "config/milestone.txt", "suffix": ""},
     ],
     "replacements": [
         # File, from, to
         ("{}/{}".format(d, f),
         "ac_add_options --with-branding=mobile/android/branding/nightly",
         "ac_add_options --with-branding=mobile/android/branding/aurora")
-        for d in ["mobile/android/config/mozconfigs/android-api-11/",
+        for d in ["mobile/android/config/mozconfigs/android-api-15/",
                   "mobile/android/config/mozconfigs/android-api-9-10-constrained/",
                   "mobile/android/config/mozconfigs/android-x86/"]
         for f in ["debug", "nightly", "l10n-nightly"]
     ] + [
         # File, from, to
         ("{}/{}".format(d, f),
         "ac_add_options --with-branding=browser/branding/nightly",
         "ac_add_options --with-branding=browser/branding/aurora")
@@ -25,23 +25,23 @@ config = {
                   "browser/config/mozconfigs/win64",
                   "browser/config/mozconfigs/macosx64"]
         for f in ["debug", "nightly", "l10n-mozconfig"]
     ] + [
         # File, from, to
         ("{}/l10n-nightly".format(d),
         "ac_add_options --with-l10n-base=../../l10n-central",
         "ac_add_options --with-l10n-base=..")
-        for d in ["mobile/android/config/mozconfigs/android-api-11/",
+        for d in ["mobile/android/config/mozconfigs/android-api-15/",
                   "mobile/android/config/mozconfigs/android-api-9-10-constrained/",
                   "mobile/android/config/mozconfigs/android-x86/"]
     ] + [
         # File, from, to
         (f, "ac_add_options --enable-profiling", "") for f in
-        ["mobile/android/config/mozconfigs/android-api-11/nightly",
+        ["mobile/android/config/mozconfigs/android-api-15/nightly",
          "mobile/android/config/mozconfigs/android-api-9-10-constrained/nightly",
          "mobile/android/config/mozconfigs/android-x86/nightly",
          "browser/config/mozconfigs/linux32/nightly",
          "browser/config/mozconfigs/linux64/nightly",
          "browser/config/mozconfigs/macosx-universal/nightly",
          "browser/config/mozconfigs/win32/nightly",
          "browser/config/mozconfigs/win64/nightly"]
     ] + [
--- a/testing/mozharness/configs/releases/bouncer_fennec.py
+++ b/testing/mozharness/configs/releases/bouncer_fennec.py
@@ -1,18 +1,18 @@
 # lint_ignore=E501
 config = {
     "products": {
         "apk": {
             "product-name": "Fennec-%(version)s",
             "ssl-only": False,
             "add-locales": False,  # Do not add locales to let "multi" work
             "paths": {
-                "android-api-11": {
-                    "path": "/mobile/releases/%(version)s/android-api-11/:lang/fennec-%(version)s.:lang.android-arm.apk",
+                "android-api-15": {
+                    "path": "/mobile/releases/%(version)s/android-api-15/:lang/fennec-%(version)s.:lang.android-arm.apk",
                     "bouncer-platform": "android",
                 },
                 "android-api-9": {
                     "path": "/mobile/releases/%(version)s/android-api-9/:lang/fennec-%(version)s.:lang.android-arm.apk",
                     "bouncer-platform": "android-api-9",
                 },
                 "android-x86": {
                     "path": "/mobile/releases/%(version)s/android-x86/:lang/fennec-%(version)s.:lang.android-i386.apk",
deleted file mode 100644
--- a/testing/mozharness/configs/single_locale/ash_android-api-11.py
+++ /dev/null
@@ -1,98 +0,0 @@
-BRANCH = "ash"
-MOZ_UPDATE_CHANNEL = "nightly"
-MOZILLA_DIR = BRANCH
-OBJDIR = "obj-l10n"
-EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/nightly/latest-%s-android-api-11/en-US" % BRANCH
-HG_SHARE_BASE_DIR = "/builds/hg-shared"
-
-config = {
-    "branch": BRANCH,
-    "log_name": "single_locale",
-    "objdir": OBJDIR,
-    "is_automation": True,
-    "buildbot_json_path": "buildprops.json",
-    "purge_minsize": 10,
-    "force_clobber": True,
-    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
-    "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
-    "locales_dir": "mobile/android/locales",
-    "ignore_locales": ["en-US"],
-    "nightly_build": True,
-    'balrog_credentials_file': 'oauth.txt',
-    "tools_repo": "https://hg.mozilla.org/build/tools",
-    "tooltool_config": {
-        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
-        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
-    },
-    "exes": {
-        'tooltool.py': '/tools/tooltool.py',
-    },
-    "repos": [{
-        "repo": "https://hg.mozilla.org/projects/ash",
-        "revision": "default",
-        "dest": MOZILLA_DIR,
-    }, {
-        "repo": "https://hg.mozilla.org/build/buildbot-configs",
-        "revision": "default",
-        "dest": "buildbot-configs"
-    }, {
-        "repo": "https://hg.mozilla.org/build/tools",
-        "revision": "default",
-        "dest": "tools"
-    }, {
-        "repo": "https://hg.mozilla.org/build/compare-locales",
-        "revision": "RELEASE_AUTOMATION"
-    }],
-    "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
-    "hg_l10n_tag": "default",
-    'vcs_share_base': HG_SHARE_BASE_DIR,
-
-    "l10n_dir": "l10n-central",
-    "repack_env": {
-        # so ugly, bug 951238
-        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
-        "MOZ_OBJDIR": OBJDIR,
-        "EN_US_BINARY_URL": EN_US_BINARY_URL,
-        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
-        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
-    },
-    "upload_branch": "%s-android-api-11" % BRANCH,
-    "ssh_key_dir": "~/.ssh",
-    "merge_locales": True,
-    "make_dirs": ['config'],
-    "mozilla_dir": MOZILLA_DIR,
-    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-11/l10n-nightly" % MOZILLA_DIR,
-    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
-    "stage_product": "mobile",
-    "platform": "android",
-    "build_type": "api-11-opt",
-
-    # Balrog
-    "build_target": "Android_arm-eabi-gcc3",
-
-    # Mock
-    "mock_target": "mozilla-centos6-x86_64-android",
-    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
-                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
-                      'gtk2-devel', 'libnotify-devel', 'yasm',
-                      'alsa-lib-devel', 'libcurl-devel',
-                      'wireless-tools-devel', 'libX11-devel',
-                      'libXt-devel', 'mesa-libGL-devel',
-                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
-                      'mpfr',  # required for system compiler
-                      'xorg-x11-font*',  # fonts required for PGO
-                      'imake',  # required for makedepend!?!
-                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
-                      'valgrind', 'dbus-x11',
-                      'pulseaudio-libs-devel',
-                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
-                      'freetype-2.3.11-6.el6_1.8.x86_64',
-                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
-                      'java-1.7.0-openjdk-devel',
-                      'openssh-clients',
-                      'zlib-devel-1.2.3-27.el6.i686',
-                      ],
-    "mock_files": [
-        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
-    ],
-}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/ash_android-api-15.py
@@ -0,0 +1,98 @@
+BRANCH = "ash"
+MOZ_UPDATE_CHANNEL = "nightly"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/nightly/latest-%s-android-api-15/en-US" % BRANCH
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    "branch": BRANCH,
+    "log_name": "single_locale",
+    "objdir": OBJDIR,
+    "is_automation": True,
+    "buildbot_json_path": "buildprops.json",
+    "purge_minsize": 10,
+    "force_clobber": True,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US"],
+    "nightly_build": True,
+    'balrog_credentials_file': 'oauth.txt',
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "tooltool_config": {
+        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+    },
+    "exes": {
+        'tooltool.py': '/tools/tooltool.py',
+    },
+    "repos": [{
+        "repo": "https://hg.mozilla.org/projects/ash",
+        "revision": "default",
+        "dest": MOZILLA_DIR,
+    }, {
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "revision": "default",
+        "dest": "buildbot-configs"
+    }, {
+        "repo": "https://hg.mozilla.org/build/tools",
+        "revision": "default",
+        "dest": "tools"
+    }, {
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "revision": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+    "hg_l10n_tag": "default",
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+
+    "l10n_dir": "l10n-central",
+    "repack_env": {
+        # so ugly, bug 951238
+        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+        "MOZ_OBJDIR": OBJDIR,
+        "EN_US_BINARY_URL": EN_US_BINARY_URL,
+        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+    },
+    "upload_branch": "%s-android-api-15" % BRANCH,
+    "ssh_key_dir": "~/.ssh",
+    "merge_locales": True,
+    "make_dirs": ['config'],
+    "mozilla_dir": MOZILLA_DIR,
+    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-nightly" % MOZILLA_DIR,
+    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+    "stage_product": "mobile",
+    "platform": "android",
+    "build_type": "api-15-opt",
+
+    # Balrog
+    "build_target": "Android_arm-eabi-gcc3",
+
+    # Mock
+    "mock_target": "mozilla-centos6-x86_64-android",
+    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+                      'gtk2-devel', 'libnotify-devel', 'yasm',
+                      'alsa-lib-devel', 'libcurl-devel',
+                      'wireless-tools-devel', 'libX11-devel',
+                      'libXt-devel', 'mesa-libGL-devel',
+                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+                      'mpfr',  # required for system compiler
+                      'xorg-x11-font*',  # fonts required for PGO
+                      'imake',  # required for makedepend!?!
+                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
+                      'valgrind', 'dbus-x11',
+                      'pulseaudio-libs-devel',
+                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
+                      'freetype-2.3.11-6.el6_1.8.x86_64',
+                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+                      'java-1.7.0-openjdk-devel',
+                      'openssh-clients',
+                      'zlib-devel-1.2.3-27.el6.i686',
+                      ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+    ],
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/mozilla-central_android-api-15.py
@@ -0,0 +1,98 @@
+BRANCH = "mozilla-central"
+MOZ_UPDATE_CHANNEL = "nightly"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/nightly/latest-%s-android-api-15/en-US" % BRANCH
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    "branch": BRANCH,
+    "log_name": "single_locale",
+    "objdir": OBJDIR,
+    "is_automation": True,
+    "buildbot_json_path": "buildprops.json",
+    "purge_minsize": 10,
+    "force_clobber": True,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "locales_file": "%s/mobile/android/locales/all-locales" % MOZILLA_DIR,
+    "locales_dir": "mobile/android/locales",
+    "ignore_locales": ["en-US"],
+    "nightly_build": True,
+    'balrog_credentials_file': 'oauth.txt',
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "tooltool_config": {
+        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+    },
+    "exes": {
+        'tooltool.py': '/tools/tooltool.py',
+    },
+    "repos": [{
+        "repo": "https://hg.mozilla.org/mozilla-central",
+        "revision": "default",
+        "dest": MOZILLA_DIR,
+    }, {
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "revision": "default",
+        "dest": "buildbot-configs"
+    }, {
+        "repo": "https://hg.mozilla.org/build/tools",
+        "revision": "default",
+        "dest": "tools"
+    }, {
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "revision": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/l10n-central",
+    "hg_l10n_tag": "default",
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+
+    "l10n_dir": "l10n-central",
+    "repack_env": {
+        # so ugly, bug 951238
+        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+        "MOZ_OBJDIR": OBJDIR,
+        "EN_US_BINARY_URL": EN_US_BINARY_URL,
+        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+    },
+    "upload_branch": "%s-android-api-15" % BRANCH,
+    "ssh_key_dir": "~/.ssh",
+    "merge_locales": True,
+    "make_dirs": ['config'],
+    "mozilla_dir": MOZILLA_DIR,
+    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-nightly" % MOZILLA_DIR,
+    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+    "stage_product": "mobile",
+    "platform": "android",
+    "build_type": "api-15-opt",
+
+    # Balrog
+    "build_target": "Android_arm-eabi-gcc3",
+
+    # Mock
+    "mock_target": "mozilla-centos6-x86_64-android",
+    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+                      'gtk2-devel', 'libnotify-devel', 'yasm',
+                      'alsa-lib-devel', 'libcurl-devel',
+                      'wireless-tools-devel', 'libX11-devel',
+                      'libXt-devel', 'mesa-libGL-devel',
+                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+                      'mpfr',  # required for system compiler
+                      'xorg-x11-font*',  # fonts required for PGO
+                      'imake',  # required for makedepend!?!
+                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
+                      'valgrind', 'dbus-x11',
+                      'pulseaudio-libs-devel',
+                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
+                      'freetype-2.3.11-6.el6_1.8.x86_64',
+                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+                      'java-1.7.0-openjdk-devel',
+                      'openssh-clients',
+                      'zlib-devel-1.2.3-27.el6.i686',
+                      ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+    ],
+}
deleted file mode 100644
--- a/testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_11.py
+++ /dev/null
@@ -1,97 +0,0 @@
-BRANCH = "mozilla-beta"
-MOZ_UPDATE_CHANNEL = "beta"
-MOZILLA_DIR = BRANCH
-OBJDIR = "obj-l10n"
-EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-11/en-US"
-HG_SHARE_BASE_DIR = "/builds/hg-shared"
-
-config = {
-    "stage_product": "mobile",
-    "log_name": "single_locale",
-    "objdir": OBJDIR,
-    "is_automation": True,
-    "buildbot_json_path": "buildprops.json",
-    "purge_minsize": 10,
-    "force_clobber": True,
-    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
-    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-beta.json",
-    "locales_dir": "mobile/android/locales",
-    "locales_platform": "android",
-    "ignore_locales": ["en-US"],
-    "balrog_credentials_file": "oauth.txt",
-    "tools_repo": "https://hg.mozilla.org/build/tools",
-    "is_release": True,
-    "tooltool_config": {
-        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
-        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
-    },
-    "exes": {
-        'tooltool.py': '/tools/tooltool.py',
-    },
-    "repos": [{
-        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
-        "revision": "default",
-        "dest": MOZILLA_DIR,
-    }, {
-        "repo": "https://hg.mozilla.org/build/buildbot-configs",
-        "revision": "default",
-        "dest": "buildbot-configs"
-    }, {
-        "repo": "https://hg.mozilla.org/build/tools",
-        "revision": "default",
-        "dest": "tools"
-    }, {
-        "repo": "https://hg.mozilla.org/build/compare-locales",
-        "revision": "RELEASE_AUTOMATION"
-    }],
-    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
-    "hg_l10n_tag": "default",
-    'vcs_share_base': HG_SHARE_BASE_DIR,
-    "l10n_dir": MOZILLA_DIR,
-
-    "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-beta.py",
-    "repack_env": {
-        # so ugly, bug 951238
-        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
-        "MOZ_PKG_VERSION": "%(version)s",
-        "MOZ_OBJDIR": OBJDIR,
-        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
-        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
-    },
-    "base_en_us_binary_url": EN_US_BINARY_URL,
-    "upload_branch": "%s-android-api-11" % BRANCH,
-    "ssh_key_dir": "~/.ssh",
-    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-11/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
-    "merge_locales": True,
-    "make_dirs": ['config'],
-    "mozilla_dir": MOZILLA_DIR,
-    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-11/l10n-release" % MOZILLA_DIR,
-    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
-    "key_alias": "release",
-    # Mock
-    "mock_target": "mozilla-centos6-x86_64-android",
-    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
-                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
-                      'gtk2-devel', 'libnotify-devel', 'yasm',
-                      'alsa-lib-devel', 'libcurl-devel',
-                      'wireless-tools-devel', 'libX11-devel',
-                      'libXt-devel', 'mesa-libGL-devel',
-                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
-                      'mpfr',  # required for system compiler
-                      'xorg-x11-font*',  # fonts required for PGO
-                      'imake',  # required for makedepend!?!
-                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
-                      'valgrind', 'dbus-x11',
-                      'pulseaudio-libs-devel',
-                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
-                      'freetype-2.3.11-6.el6_1.8.x86_64',
-                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
-                      'java-1.7.0-openjdk-devel',
-                      'openssh-clients',
-                      'zlib-devel-1.2.3-27.el6.i686',
-                      ],
-    "mock_files": [
-        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
-        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
-    ],
-}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/release_mozilla-beta_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-beta"
+MOZ_UPDATE_CHANNEL = "beta"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    "stage_product": "mobile",
+    "log_name": "single_locale",
+    "objdir": OBJDIR,
+    "is_automation": True,
+    "buildbot_json_path": "buildprops.json",
+    "purge_minsize": 10,
+    "force_clobber": True,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_dir": "mobile/android/locales",
+    "locales_platform": "android",
+    "ignore_locales": ["en-US"],
+    "balrog_credentials_file": "oauth.txt",
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "is_release": True,
+    "tooltool_config": {
+        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+    },
+    "exes": {
+        'tooltool.py': '/tools/tooltool.py',
+    },
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-beta",
+        "revision": "default",
+        "dest": MOZILLA_DIR,
+    }, {
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "revision": "default",
+        "dest": "buildbot-configs"
+    }, {
+        "repo": "https://hg.mozilla.org/build/tools",
+        "revision": "default",
+        "dest": "tools"
+    }, {
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "revision": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
+    "hg_l10n_tag": "default",
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+    "l10n_dir": MOZILLA_DIR,
+
+    "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-beta.py",
+    "repack_env": {
+        # so ugly, bug 951238
+        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+        "MOZ_PKG_VERSION": "%(version)s",
+        "MOZ_OBJDIR": OBJDIR,
+        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+    },
+    "base_en_us_binary_url": EN_US_BINARY_URL,
+    "upload_branch": "%s-android-api-15" % BRANCH,
+    "ssh_key_dir": "~/.ssh",
+    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
+    "merge_locales": True,
+    "make_dirs": ['config'],
+    "mozilla_dir": MOZILLA_DIR,
+    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+    "key_alias": "release",
+    # Mock
+    "mock_target": "mozilla-centos6-x86_64-android",
+    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+                      'gtk2-devel', 'libnotify-devel', 'yasm',
+                      'alsa-lib-devel', 'libcurl-devel',
+                      'wireless-tools-devel', 'libX11-devel',
+                      'libXt-devel', 'mesa-libGL-devel',
+                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+                      'mpfr',  # required for system compiler
+                      'xorg-x11-font*',  # fonts required for PGO
+                      'imake',  # required for makedepend!?!
+                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
+                      'valgrind', 'dbus-x11',
+                      'pulseaudio-libs-devel',
+                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
+                      'freetype-2.3.11-6.el6_1.8.x86_64',
+                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+                      'java-1.7.0-openjdk-devel',
+                      'openssh-clients',
+                      'zlib-devel-1.2.3-27.el6.i686',
+                      ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+    ],
+}
deleted file mode 100644
--- a/testing/mozharness/configs/single_locale/release_mozilla-release_android_api_11.py
+++ /dev/null
@@ -1,97 +0,0 @@
-BRANCH = "mozilla-release"
-MOZ_UPDATE_CHANNEL = "release"
-MOZILLA_DIR = BRANCH
-OBJDIR = "obj-l10n"
-EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-11/en-US"
-HG_SHARE_BASE_DIR = "/builds/hg-shared"
-
-config = {
-    "stage_product": "mobile",
-    "log_name": "single_locale",
-    "objdir": OBJDIR,
-    "is_automation": True,
-    "buildbot_json_path": "buildprops.json",
-    "purge_minsize": 10,
-    "force_clobber": True,
-    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
-    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
-    "locales_dir": "mobile/android/locales",
-    "locales_platform": "android",
-    "ignore_locales": ["en-US"],
-    "balrog_credentials_file": "oauth.txt",
-    "tools_repo": "https://hg.mozilla.org/build/tools",
-    "is_release": True,
-    "tooltool_config": {
-        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
-        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
-    },
-    "exes": {
-        'tooltool.py': '/tools/tooltool.py',
-    },
-    "repos": [{
-        "repo": "https://hg.mozilla.org/releases/mozilla-release",
-        "revision": "default",
-        "dest": MOZILLA_DIR,
-    }, {
-        "repo": "https://hg.mozilla.org/build/buildbot-configs",
-        "revision": "default",
-        "dest": "buildbot-configs"
-    }, {
-        "repo": "https://hg.mozilla.org/build/tools",
-        "revision": "default",
-        "dest": "tools"
-    }, {
-        "repo": "https://hg.mozilla.org/build/compare-locales",
-        "revision": "RELEASE_AUTOMATION"
-    }],
-    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
-    "hg_l10n_tag": "default",
-    'vcs_share_base': HG_SHARE_BASE_DIR,
-    "l10n_dir": MOZILLA_DIR,
-
-    "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-release.py",
-    "repack_env": {
-        # so ugly, bug 951238
-        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
-        "MOZ_PKG_VERSION": "%(version)s",
-        "MOZ_OBJDIR": OBJDIR,
-        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
-        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
-    },
-    "base_en_us_binary_url": EN_US_BINARY_URL,
-    "upload_branch": "%s-android-api-11" % BRANCH,
-    "ssh_key_dir": "~/.ssh",
-    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-11/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
-    "merge_locales": True,
-    "make_dirs": ['config'],
-    "mozilla_dir": MOZILLA_DIR,
-    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-11/l10n-release" % MOZILLA_DIR,
-    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
-    "key_alias": "release",
-    # Mock
-    "mock_target": "mozilla-centos6-x86_64-android",
-    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
-                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
-                      'gtk2-devel', 'libnotify-devel', 'yasm',
-                      'alsa-lib-devel', 'libcurl-devel',
-                      'wireless-tools-devel', 'libX11-devel',
-                      'libXt-devel', 'mesa-libGL-devel',
-                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
-                      'mpfr',  # required for system compiler
-                      'xorg-x11-font*',  # fonts required for PGO
-                      'imake',  # required for makedepend!?!
-                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
-                      'valgrind', 'dbus-x11',
-                      'pulseaudio-libs-devel',
-                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
-                      'freetype-2.3.11-6.el6_1.8.x86_64',
-                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
-                      'java-1.7.0-openjdk-devel',
-                      'openssh-clients',
-                      'zlib-devel-1.2.3-27.el6.i686',
-                      ],
-    "mock_files": [
-        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
-        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
-    ],
-}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/release_mozilla-release_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-release"
+MOZ_UPDATE_CHANNEL = "release"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+EN_US_BINARY_URL = "http://archive.mozilla.org/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    "stage_product": "mobile",
+    "log_name": "single_locale",
+    "objdir": OBJDIR,
+    "is_automation": True,
+    "buildbot_json_path": "buildprops.json",
+    "purge_minsize": 10,
+    "force_clobber": True,
+    "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_dir": "mobile/android/locales",
+    "locales_platform": "android",
+    "ignore_locales": ["en-US"],
+    "balrog_credentials_file": "oauth.txt",
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "is_release": True,
+    "tooltool_config": {
+        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+    },
+    "exes": {
+        'tooltool.py': '/tools/tooltool.py',
+    },
+    "repos": [{
+        "repo": "https://hg.mozilla.org/releases/mozilla-release",
+        "revision": "default",
+        "dest": MOZILLA_DIR,
+    }, {
+        "repo": "https://hg.mozilla.org/build/buildbot-configs",
+        "revision": "default",
+        "dest": "buildbot-configs"
+    }, {
+        "repo": "https://hg.mozilla.org/build/tools",
+        "revision": "default",
+        "dest": "tools"
+    }, {
+        "repo": "https://hg.mozilla.org/build/compare-locales",
+        "revision": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/releases/l10n/%s" % BRANCH,
+    "hg_l10n_tag": "default",
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+    "l10n_dir": MOZILLA_DIR,
+
+    "release_config_file": "buildbot-configs/mozilla/release-fennec-mozilla-release.py",
+    "repack_env": {
+        # so ugly, bug 951238
+        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+        "MOZ_PKG_VERSION": "%(version)s",
+        "MOZ_OBJDIR": OBJDIR,
+        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+    },
+    "base_en_us_binary_url": EN_US_BINARY_URL,
+    "upload_branch": "%s-android-api-15" % BRANCH,
+    "ssh_key_dir": "~/.ssh",
+    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
+    "merge_locales": True,
+    "make_dirs": ['config'],
+    "mozilla_dir": MOZILLA_DIR,
+    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+    "key_alias": "release",
+    # Mock
+    "mock_target": "mozilla-centos6-x86_64-android",
+    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+                      'gtk2-devel', 'libnotify-devel', 'yasm',
+                      'alsa-lib-devel', 'libcurl-devel',
+                      'wireless-tools-devel', 'libX11-devel',
+                      'libXt-devel', 'mesa-libGL-devel',
+                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+                      'mpfr',  # required for system compiler
+                      'xorg-x11-font*',  # fonts required for PGO
+                      'imake',  # required for makedepend!?!
+                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
+                      'valgrind', 'dbus-x11',
+                      'pulseaudio-libs-devel',
+                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
+                      'freetype-2.3.11-6.el6_1.8.x86_64',
+                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+                      'java-1.7.0-openjdk-devel',
+                      'openssh-clients',
+                      'zlib-devel-1.2.3-27.el6.i686',
+                      ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+    ],
+}
deleted file mode 100644
--- a/testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_11.py
+++ /dev/null
@@ -1,97 +0,0 @@
-BRANCH = "mozilla-beta"
-MOZ_UPDATE_CHANNEL = "beta"
-MOZILLA_DIR = BRANCH
-OBJDIR = "obj-l10n"
-STAGE_SERVER = "ftp.stage.mozaws.net"
-EN_US_BINARY_URL = "http://" + STAGE_SERVER + "/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-11/en-US"
-HG_SHARE_BASE_DIR = "/builds/hg-shared"
-
-config = {
-    "log_name": "single_locale",
-    "objdir": OBJDIR,
-    "is_automation": True,
-    "buildbot_json_path": "buildprops.json",
-    "purge_minsize": 10,
-    "force_clobber": True,
-    "clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
-    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-beta.json",
-    "locales_dir": "mobile/android/locales",
-    "locales_platform": "android",
-    "ignore_locales": ["en-US"],
-    "balrog_credentials_file": "oauth.txt",
-    "tools_repo": "https://hg.mozilla.org/build/tools",
-    "is_release": True,
-    "tooltool_config": {
-        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
-        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
-    },
-    "exes": {
-        'tooltool.py': '/tools/tooltool.py',
-    },
-    "repos": [{
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-beta",
-        "revision": "default",
-        "dest": MOZILLA_DIR,
-    }, {
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
-        "revision": "default",
-        "dest": "buildbot-configs"
-    }, {
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
-        "revision": "default",
-        "dest": "tools"
-    }, {
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
-        "revision": "RELEASE_AUTOMATION"
-    }],
-    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s/",
-    "hg_l10n_tag": "default",
-    'vcs_share_base': HG_SHARE_BASE_DIR,
-    "l10n_dir": MOZILLA_DIR,
-
-    "release_config_file": "buildbot-configs/mozilla/staging_release-fennec-mozilla-beta.py",
-    "repack_env": {
-        # so ugly, bug 951238
-        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
-        "MOZ_PKG_VERSION": "%(version)s",
-        "MOZ_OBJDIR": OBJDIR,
-        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
-        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
-    },
-    "base_en_us_binary_url": EN_US_BINARY_URL,
-    "upload_branch": "%s-android-api-11" % BRANCH,
-    "ssh_key_dir": "~/.ssh",
-    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-11/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
-    "merge_locales": True,
-    "make_dirs": ['config'],
-    "mozilla_dir": MOZILLA_DIR,
-    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-11/l10n-release" % MOZILLA_DIR,
-    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
-
-    # Mock
-    "mock_target": "mozilla-centos6-x86_64-android",
-    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
-                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
-                      'gtk2-devel', 'libnotify-devel', 'yasm',
-                      'alsa-lib-devel', 'libcurl-devel',
-                      'wireless-tools-devel', 'libX11-devel',
-                      'libXt-devel', 'mesa-libGL-devel',
-                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
-                      'mpfr',  # required for system compiler
-                      'xorg-x11-font*',  # fonts required for PGO
-                      'imake',  # required for makedepend!?!
-                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
-                      'valgrind', 'dbus-x11',
-                      'pulseaudio-libs-devel',
-                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
-                      'freetype-2.3.11-6.el6_1.8.x86_64',
-                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
-                      'java-1.7.0-openjdk-devel',
-                      'openssh-clients',
-                      'zlib-devel-1.2.3-27.el6.i686',
-                      ],
-    "mock_files": [
-        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
-        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
-    ],
-}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/staging_release_mozilla-beta_android_api_15.py
@@ -0,0 +1,97 @@
+BRANCH = "mozilla-beta"
+MOZ_UPDATE_CHANNEL = "beta"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+STAGE_SERVER = "ftp.stage.mozaws.net"
+EN_US_BINARY_URL = "http://" + STAGE_SERVER + "/pub/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    "log_name": "single_locale",
+    "objdir": OBJDIR,
+    "is_automation": True,
+    "buildbot_json_path": "buildprops.json",
+    "purge_minsize": 10,
+    "force_clobber": True,
+    "clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
+    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-beta.json",
+    "locales_dir": "mobile/android/locales",
+    "locales_platform": "android",
+    "ignore_locales": ["en-US"],
+    "balrog_credentials_file": "oauth.txt",
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "is_release": True,
+    "tooltool_config": {
+        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+    },
+    "exes": {
+        'tooltool.py': '/tools/tooltool.py',
+    },
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-beta",
+        "revision": "default",
+        "dest": MOZILLA_DIR,
+    }, {
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "revision": "default",
+        "dest": "buildbot-configs"
+    }, {
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "revision": "default",
+        "dest": "tools"
+    }, {
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "revision": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s/",
+    "hg_l10n_tag": "default",
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+    "l10n_dir": MOZILLA_DIR,
+
+    "release_config_file": "buildbot-configs/mozilla/staging_release-fennec-mozilla-beta.py",
+    "repack_env": {
+        # so ugly, bug 951238
+        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+        "MOZ_PKG_VERSION": "%(version)s",
+        "MOZ_OBJDIR": OBJDIR,
+        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+    },
+    "base_en_us_binary_url": EN_US_BINARY_URL,
+    "upload_branch": "%s-android-api-15" % BRANCH,
+    "ssh_key_dir": "~/.ssh",
+    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
+    "merge_locales": True,
+    "make_dirs": ['config'],
+    "mozilla_dir": MOZILLA_DIR,
+    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+
+    # Mock
+    "mock_target": "mozilla-centos6-x86_64-android",
+    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+                      'gtk2-devel', 'libnotify-devel', 'yasm',
+                      'alsa-lib-devel', 'libcurl-devel',
+                      'wireless-tools-devel', 'libX11-devel',
+                      'libXt-devel', 'mesa-libGL-devel',
+                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+                      'mpfr',  # required for system compiler
+                      'xorg-x11-font*',  # fonts required for PGO
+                      'imake',  # required for makedepend!?!
+                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
+                      'valgrind', 'dbus-x11',
+                      'pulseaudio-libs-devel',
+                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
+                      'freetype-2.3.11-6.el6_1.8.x86_64',
+                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+                      'java-1.7.0-openjdk-devel',
+                      'openssh-clients',
+                      'zlib-devel-1.2.3-27.el6.i686',
+                      ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+    ],
+}
deleted file mode 100644
--- a/testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_11.py
+++ /dev/null
@@ -1,100 +0,0 @@
-BRANCH = "mozilla-release"
-MOZ_UPDATE_CHANNEL = "release"
-MOZILLA_DIR = BRANCH
-OBJDIR = "obj-l10n"
-STAGE_SERVER = "dev-stage01.srv.releng.scl3.mozilla.com"
-EN_US_BINARY_URL = "http://" + STAGE_SERVER + "/pub/mozilla.org/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-11/en-US"
-HG_SHARE_BASE_DIR = "/builds/hg-shared"
-
-config = {
-    "log_name": "single_locale",
-    "objdir": OBJDIR,
-    "is_automation": True,
-    "buildbot_json_path": "buildprops.json",
-    "purge_minsize": 10,
-    "force_clobber": True,
-    "clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
-    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
-    "locales_dir": "mobile/android/locales",
-    "locales_platform": "android",
-    "ignore_locales": ["en-US"],
-    "balrog_credentials_file": "oauth.txt",
-    "tools_repo": "https://hg.mozilla.org/build/tools",
-    "is_release": True,
-    "balrog_credentials_file": "oauth.txt",
-    "tools_repo": "https://hg.mozilla.org/build/tools",
-    "is_release": True,
-    "tooltool_config": {
-        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
-        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
-    },
-    "exes": {
-        'tooltool.py': '/tools/tooltool.py',
-    },
-    "repos": [{
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-release",
-        "revision": "default",
-        "dest": MOZILLA_DIR,
-    }, {
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
-        "revision": "default",
-        "dest": "buildbot-configs"
-    }, {
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
-        "revision": "default",
-        "dest": "tools"
-    }, {
-        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
-        "revision": "RELEASE_AUTOMATION"
-    }],
-    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s/",
-    "hg_l10n_tag": "default",
-    'vcs_share_base': HG_SHARE_BASE_DIR,
-    "l10n_dir": MOZILLA_DIR,
-
-    "release_config_file": "buildbot-configs/mozilla/staging_release-fennec-mozilla-release.py",
-    "repack_env": {
-        # so ugly, bug 951238
-        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
-        "MOZ_PKG_VERSION": "%(version)s",
-        "MOZ_OBJDIR": OBJDIR,
-        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
-        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
-    },
-    "base_en_us_binary_url": EN_US_BINARY_URL,
-    "upload_branch": "%s-android-api-11" % BRANCH,
-    "ssh_key_dir": "~/.ssh",
-    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-11/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
-    "merge_locales": True,
-    "make_dirs": ['config'],
-    "mozilla_dir": MOZILLA_DIR,
-    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-11/l10n-release" % MOZILLA_DIR,
-    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
-
-    # Mock
-    "mock_target": "mozilla-centos6-x86_64-android",
-    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
-                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
-                      'gtk2-devel', 'libnotify-devel', 'yasm',
-                      'alsa-lib-devel', 'libcurl-devel',
-                      'wireless-tools-devel', 'libX11-devel',
-                      'libXt-devel', 'mesa-libGL-devel',
-                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
-                      'mpfr',  # required for system compiler
-                      'xorg-x11-font*',  # fonts required for PGO
-                      'imake',  # required for makedepend!?!
-                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
-                      'valgrind', 'dbus-x11',
-                      'pulseaudio-libs-devel',
-                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
-                      'freetype-2.3.11-6.el6_1.8.x86_64',
-                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
-                      'java-1.7.0-openjdk-devel',
-                      'openssh-clients',
-                      'zlib-devel-1.2.3-27.el6.i686',
-                      ],
-    "mock_files": [
-        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
-        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
-    ],
-}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/single_locale/staging_release_mozilla-release_android_api_15.py
@@ -0,0 +1,100 @@
+BRANCH = "mozilla-release"
+MOZ_UPDATE_CHANNEL = "release"
+MOZILLA_DIR = BRANCH
+OBJDIR = "obj-l10n"
+STAGE_SERVER = "dev-stage01.srv.releng.scl3.mozilla.com"
+EN_US_BINARY_URL = "http://" + STAGE_SERVER + "/pub/mozilla.org/mobile/candidates/%(version)s-candidates/build%(buildnum)d/android-api-15/en-US"
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+config = {
+    "log_name": "single_locale",
+    "objdir": OBJDIR,
+    "is_automation": True,
+    "buildbot_json_path": "buildprops.json",
+    "purge_minsize": 10,
+    "force_clobber": True,
+    "clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
+    "locales_file": "buildbot-configs/mozilla/l10n-changesets_mobile-release.json",
+    "locales_dir": "mobile/android/locales",
+    "locales_platform": "android",
+    "ignore_locales": ["en-US"],
+    "balrog_credentials_file": "oauth.txt",
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "is_release": True,
+    "balrog_credentials_file": "oauth.txt",
+    "tools_repo": "https://hg.mozilla.org/build/tools",
+    "is_release": True,
+    "tooltool_config": {
+        "manifest": "mobile/android/config/tooltool-manifests/android/releng.manifest",
+        "output_dir": "%(abs_work_dir)s/" + MOZILLA_DIR,
+    },
+    "exes": {
+        'tooltool.py': '/tools/tooltool.py',
+    },
+    "repos": [{
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/mozilla-release",
+        "revision": "default",
+        "dest": MOZILLA_DIR,
+    }, {
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/buildbot-configs",
+        "revision": "default",
+        "dest": "buildbot-configs"
+    }, {
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/tools",
+        "revision": "default",
+        "dest": "tools"
+    }, {
+        "repo": "https://hg.mozilla.org/%(user_repo_override)s/compare-locales",
+        "revision": "RELEASE_AUTOMATION"
+    }],
+    "hg_l10n_base": "https://hg.mozilla.org/%(user_repo_override)s/",
+    "hg_l10n_tag": "default",
+    'vcs_share_base': HG_SHARE_BASE_DIR,
+    "l10n_dir": MOZILLA_DIR,
+
+    "release_config_file": "buildbot-configs/mozilla/staging_release-fennec-mozilla-release.py",
+    "repack_env": {
+        # so ugly, bug 951238
+        "LD_LIBRARY_PATH": "/lib:/tools/gcc-4.7.2-0moz1/lib:/tools/gcc-4.7.2-0moz1/lib64",
+        "MOZ_PKG_VERSION": "%(version)s",
+        "MOZ_OBJDIR": OBJDIR,
+        "LOCALE_MERGEDIR": "%(abs_merge_dir)s/",
+        "MOZ_UPDATE_CHANNEL": MOZ_UPDATE_CHANNEL,
+    },
+    "base_en_us_binary_url": EN_US_BINARY_URL,
+    "upload_branch": "%s-android-api-15" % BRANCH,
+    "ssh_key_dir": "~/.ssh",
+    "base_post_upload_cmd": "post_upload.py -p mobile -n %(buildnum)s -v %(version)s --builddir android-api-15/%(locale)s --release-to-mobile-candidates-dir --nightly-dir=candidates",
+    "merge_locales": True,
+    "make_dirs": ['config'],
+    "mozilla_dir": MOZILLA_DIR,
+    "mozconfig": "%s/mobile/android/config/mozconfigs/android-api-15/l10n-release" % MOZILLA_DIR,
+    "signature_verification_script": "tools/release/signing/verify-android-signature.sh",
+
+    # Mock
+    "mock_target": "mozilla-centos6-x86_64-android",
+    "mock_packages": ['autoconf213', 'python', 'zip', 'mozilla-python27-mercurial', 'git', 'ccache',
+                      'glibc-static', 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+                      'gtk2-devel', 'libnotify-devel', 'yasm',
+                      'alsa-lib-devel', 'libcurl-devel',
+                      'wireless-tools-devel', 'libX11-devel',
+                      'libXt-devel', 'mesa-libGL-devel',
+                      'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+                      'mpfr',  # required for system compiler
+                      'xorg-x11-font*',  # fonts required for PGO
+                      'imake',  # required for makedepend!?!
+                      'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1', 'yasm', 'ccache',  # <-- from releng repo
+                      'valgrind', 'dbus-x11',
+                      'pulseaudio-libs-devel',
+                      'gstreamer-devel', 'gstreamer-plugins-base-devel',
+                      'freetype-2.3.11-6.el6_1.8.x86_64',
+                      'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+                      'java-1.7.0-openjdk-devel',
+                      'openssh-clients',
+                      'zlib-devel-1.2.3-27.el6.i686',
+                      ],
+    "mock_files": [
+        ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+        ('/usr/local/lib/hgext', '/usr/local/lib/hgext'),
+    ],
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -352,21 +352,25 @@ class BuildOptionParser(object):
         'stat-and-debug': 'builds/releng_sub_%s_configs/%s_stat_and_debug.py',
         'mulet': 'builds/releng_sub_%s_configs/%s_mulet.py',
         'code-coverage': 'builds/releng_sub_%s_configs/%s_code_coverage.py',
         'graphene': 'builds/releng_sub_%s_configs/%s_graphene.py',
         'horizon': 'builds/releng_sub_%s_configs/%s_horizon.py',
         'source': 'builds/releng_sub_%s_configs/%s_source.py',
         'api-9': 'builds/releng_sub_%s_configs/%s_api_9.py',
         'api-11': 'builds/releng_sub_%s_configs/%s_api_11.py',
+        'api-15': 'builds/releng_sub_%s_configs/%s_api_15.py',
         'api-9-debug': 'builds/releng_sub_%s_configs/%s_api_9_debug.py',
         'api-11-debug': 'builds/releng_sub_%s_configs/%s_api_11_debug.py',
+        'api-15-debug': 'builds/releng_sub_%s_configs/%s_api_15_debug.py',
         'x86': 'builds/releng_sub_%s_configs/%s_x86.py',
         'api-11-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_11_partner_sample1.py',
+        'api-15-partner-sample1': 'builds/releng_sub_%s_configs/%s_api_15_partner_sample1.py',
         'api-11-b2gdroid': 'builds/releng_sub_%s_configs/%s_api_11_b2gdroid.py',
+        'api-15-b2gdroid': 'builds/releng_sub_%s_configs/%s_api_15_b2gdroid.py',
     }
     build_pool_cfg_file = 'builds/build_pool_specifics.py'
     branch_cfg_file = 'builds/branch_specifics.py'
 
     @classmethod
     def _query_pltfrm_and_bits(cls, target_option, options):
         """ determine platform and bits
 
--- a/testing/mozharness/scripts/mobile_l10n.py
+++ b/testing/mozharness/scripts/mobile_l10n.py
@@ -178,17 +178,17 @@ class MobileSingleLocale(MockMixin, Loca
         replace_dict = {
             'buildid': self.query_buildid(),
             'version': self.query_version(),
         }
         replace_dict.update(c)
 
         # Android l10n builds use a non-standard location for l10n files.  Other
         # builds go to 'mozilla-central-l10n', while android builds add part of
-        # the platform name as well, like 'mozilla-central-android-api-11-l10n'.
+        # the platform name as well, like 'mozilla-central-android-api-15-l10n'.
         # So we override the branch with something that contains the platform
         # name.
         replace_dict['branch'] = c['upload_branch']
 
         upload_env = self.query_env(partial_env=c.get("upload_env"),
                                     replace_dict=replace_dict)
         if 'MOZ_SIGNING_SERVERS' in os.environ:
             upload_env['MOZ_SIGN_CMD'] = subprocess.list2cmdline(self.query_moz_sign_cmd())
--- a/testing/taskcluster/tasks/branches/base_job_flags.yml
+++ b/testing/taskcluster/tasks/branches/base_job_flags.yml
@@ -92,17 +92,17 @@ flags:
     - dolphin-eng
     - dolphin-512
     - dolphin-512-eng
     - aries
     - aries-ota
     - aries-eng
     - aries-dogfood
     - aries-noril
-    - android-api-11
+    - android-api-15
     - android-partner-sample1
     - android-b2gdroid
     - linux
     - linux64
     - linux64-st-an
     - macosx64
     - macosx64-st-an
     - eslint-gecko
--- a/testing/taskcluster/tasks/branches/mozilla-central/job_flags.yml
+++ b/testing/taskcluster/tasks/branches/mozilla-central/job_flags.yml
@@ -6,22 +6,22 @@
   from: tasks/branches/base_jobs.yml
 
 # Flags specific to this branch
 flags:
   post-build:
     - simulator
 
 builds:
-  android-api-11:
+  android-api-15:
     platforms:
       - Android
     types:
       opt:
-        task: tasks/builds/android_api_11.yml
+        task: tasks/builds/android_api_15.yml
   aries-dogfood:
     platforms:
       - b2g
     types:
       opt:
         task: tasks/builds/b2g_aries_spark_dogfood.yml
         additional-parameters:
           b2g_update_channel: 'dogfood'
--- a/testing/taskcluster/tasks/branches/try/job_flags.yml
+++ b/testing/taskcluster/tasks/branches/try/job_flags.yml
@@ -36,28 +36,28 @@ builds:
       opt:
         task: tasks/builds/b2g_dolphin_512_opt.yml
   dolphin-512-eng:
     platforms:
       - b2g
     types:
       opt:
         task: tasks/builds/b2g_dolphin_512_eng.yml
-  android-api-11:
+  android-api-15:
     platforms:
       - Android
     types:
       opt:
-        task: tasks/builds/android_api_11.yml
+        task: tasks/builds/android_api_15.yml
   android-partner-sample1:
     platforms:
       - Android
     types:
       opt:
-        task: tasks/builds/android_api_11_partner_sample1.yml
+        task: tasks/builds/android_api_15_partner_sample1.yml
   linux:
     platforms:
       - Linux
     types:
       opt:
         task: tasks/builds/opt_linux32_clobber.yml
       debug:
         task: tasks/builds/dbg_linux32_clobber.yml
@@ -135,17 +135,17 @@ builds:
         task: tasks/builds/sm_warnaserrdebug.yml
 
 post-build:
   upload-symbols:
     allowed_build_tasks:
       - tasks/builds/opt_linux64.yml
       - tasks/builds/opt_linux64_st-an.yml
       - tasks/builds/dbg_linux64.yml
-      - tasks/builds/android_api_11.yml
+      - tasks/builds/android_api_15.yml
     task: tasks/post-builds/upload_symbols.yml
 
 tests:
   cppunit:
     allowed_build_tasks:
       tasks/builds/dbg_linux64_clobber.yml:
         task: tasks/tests/fx_linux64_cppunit.yml
   crashtest:
deleted file mode 100644
--- a/testing/taskcluster/tasks/builds/android_api_11_partner_sample1.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-$inherits:
-  from: 'tasks/builds/mobile_base.yml'
-  variables:
-    build_name: 'android-api-11-partner-sample1'
-    build_type: 'opt'
-task:
-  metadata:
-      name: '[TC] Android armv7 API 11+ partner sample 1'
-      description: 'Android armv7 API 11+ partner sample 1'
-
-  workerType: android-api-11
-
-  routes:
-    - 'index.buildbot.branches.{{project}}.android-api-11-partner-sample1'
-    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-11-partner-sample1'
-
-  scopes:
-    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-11-workspace'
-    - 'docker-worker:cache:tooltool-cache'
-    - 'docker-worker:relengapi-proxy:tooltool.download.internal'
-    - 'docker-worker:relengapi-proxy:tooltool.download.public'
-
-  payload:
-    cache:
-      level-{{level}}-{{project}}-build-android-api-11-workspace: '/home/worker/workspace'
-      tooltool-cache: '/home/worker/tooltool-cache'
-
-    features:
-      relengAPIProxy: true
-
-    env:
-      # inputs to mozharness
-      MOZHARNESS_SCRIPT: 'mozharness/scripts/fx_desktop_build.py'
-      # TODO: make these additional configuration files go away
-      MOZHARNESS_CONFIG: >
-          builds/releng_base_android_64_builds.py
-          disable_signing.py
-          platform_supports_post_upload_to_latest.py
-      MH_CUSTOM_BUILD_VARIANT_CFG: api-11-partner-sample1
-      MH_BRANCH: {{project}}
-      MH_BUILD_POOL: taskcluster
-
-      # space separated list of repositories required for this build
-      # for each ITEM in list you want checked out, you must also supply tc-vcs args:
-      # e.g. ${ITEM}_BASE_REPOSITORY
-      EXTRA_CHECKOUT_REPOSITORIES: >
-          PARTNER
-
-      PARTNER_BASE_REPOSITORY: 'https://github.com/mozilla/fennec-distribution-sample'
-      PARTNER_HEAD_REPOSITORY: 'https://github.com/mozilla/fennec-distribution-sample'
-      PARTNER_HEAD_REV: 756f0378d4cac87e5e6c405249ede5effe082da2
-      PARTNER_DEST_DIR: '/home/worker/workspace/build/partner'
-
-    maxRunTime: 36000
-
-    command: ["/bin/bash", "bin/build.sh"]
-
-  extra:
-    treeherderEnv:
-      - production
-      - staging
-    treeherder:
-      machine:
-        # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
-        platform: android-4-0-armv7-api11-partner1
-    # Rather then enforcing particular conventions we require that all build
-    # tasks provide the "build" extra field to specify where the build and tests
-    # files are located.
-    locations:
-      build: 'public/build/target.linux-x86_64.tar.bz2'
-      tests: 'public/build/target.tests.zip'
rename from testing/taskcluster/tasks/builds/android_api_11.yml
rename to testing/taskcluster/tasks/builds/android_api_15.yml
--- a/testing/taskcluster/tasks/builds/android_api_11.yml
+++ b/testing/taskcluster/tasks/builds/android_api_15.yml
@@ -1,60 +1,60 @@
 $inherits:
   from: 'tasks/builds/mobile_base.yml'
   variables:
     build_name: 'android'
     build_type: 'opt'
 task:
   metadata:
-      name: '[TC] Android armv7 API 11+'
-      description: 'Android armv7 API 11+'
+      name: '[TC] Android armv7 API 15+'
+      description: 'Android armv7 API 15+'
 
-  workerType: android-api-11
+  workerType: android-api-15
 
   routes:
-    - 'index.buildbot.branches.{{project}}.android-api-11'
-    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-11'
+    - 'index.buildbot.branches.{{project}}.android-api-15'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-15'
 
   scopes:
-    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-11-workspace'
+    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-15-workspace'
     - 'docker-worker:cache:tooltool-cache'
     - 'docker-worker:relengapi-proxy:tooltool.download.internal'
     - 'docker-worker:relengapi-proxy:tooltool.download.public'
 
   payload:
     cache:
-      level-{{level}}-{{project}}-build-android-api-11-workspace: '/home/worker/workspace'
+      level-{{level}}-{{project}}-build-android-api-15-workspace: '/home/worker/workspace'
       tooltool-cache: '/home/worker/tooltool-cache'
 
     features:
       relengAPIProxy: true
 
     env:
       # inputs to mozharness
       MOZHARNESS_SCRIPT: 'mozharness/scripts/fx_desktop_build.py'
       # TODO: make these additional configuration files go away
       MOZHARNESS_CONFIG: >
           builds/releng_base_android_64_builds.py
           disable_signing.py
           platform_supports_post_upload_to_latest.py
-      MH_CUSTOM_BUILD_VARIANT_CFG: api-11
+      MH_CUSTOM_BUILD_VARIANT_CFG: api-15
       MH_BRANCH: {{project}}
       MH_BUILD_POOL: taskcluster
 
     maxRunTime: 36000
 
     command: ["/bin/bash", "bin/build.sh"]
 
   extra:
     treeherderEnv:
       - production
       - staging
     treeherder:
       machine:
         # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
-        platform: android-4-0-armv7-api11
+        platform: android-4-0-armv7-api15
     # Rather then enforcing particular conventions we require that all build
     # tasks provide the "build" extra field to specify where the build and tests
     # files are located.
     locations:
       build: 'public/build/target.linux-x86_64.tar.bz2'
       tests: 'public/build/target.tests.zip'
rename from testing/taskcluster/tasks/builds/android_api_11_b2gdroid.yml
rename to testing/taskcluster/tasks/builds/android_api_15_b2gdroid.yml
--- a/testing/taskcluster/tasks/builds/android_api_11_b2gdroid.yml
+++ b/testing/taskcluster/tasks/builds/android_api_15_b2gdroid.yml
@@ -1,62 +1,62 @@
 $inherits:
   from: 'tasks/builds/mobile_base.yml'
   variables:
-    build_name: 'android-api-11-b2gdroid'
+    build_name: 'android-api-15-b2gdroid'
     build_type: 'opt'
 task:
   metadata:
-      name: '[TC] B2GDroid armv7 API 11+'
-      description: 'B2GDroid armv7 API 11+'
+      name: '[TC] B2GDroid armv7 API 15+'
+      description: 'B2GDroid armv7 API 15+'
 
-  workerType: android-api-11
+  workerType: android-api-15
 
   routes:
-    - 'index.buildbot.branches.{{project}}.android-api-11-b2gdroid'
-    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-11-b2gdroid'
+    - 'index.buildbot.branches.{{project}}.android-api-15-b2gdroid'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-15-b2gdroid'
 
   scopes:
-    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-11-workspace'
+    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-15-workspace'
     - 'docker-worker:cache:tooltool-cache'
     - 'docker-worker:relengapi-proxy:tooltool.download.internal'
     - 'docker-worker:relengapi-proxy:tooltool.download.public'
 
   payload:
     cache:
-      level-{{level}}-{{project}}-build-android-api-11-workspace: '/home/worker/workspace'
+      level-{{level}}-{{project}}-build-android-api-15-workspace: '/home/worker/workspace'
       tooltool-cache: '/home/worker/tooltool-cache'
 
     features:
       relengAPIProxy: true
 
     env:
       # inputs to mozharness
       MOZHARNESS_SCRIPT: 'mozharness/scripts/fx_desktop_build.py'
       # TODO: make these additional configuration files go away
       MOZHARNESS_CONFIG: >
           builds/releng_base_android_64_builds.py
           disable_signing.py
           platform_supports_post_upload_to_latest.py
-      MH_CUSTOM_BUILD_VARIANT_CFG: api-11-b2gdroid
+      MH_CUSTOM_BUILD_VARIANT_CFG: api-15-b2gdroid
       MH_BRANCH: {{project}}
       MH_BUILD_POOL: taskcluster
 
       CHECKOUT_GAIA: true
 
     maxRunTime: 36000
 
     command: ["/bin/bash", "bin/build.sh"]
 
   extra:
     treeherderEnv:
       - production
       - staging
     treeherder:
       machine:
         # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
-        platform: b2gdroid-4-0-armv7-api11
+        platform: b2gdroid-4-0-armv7-api15
     # Rather then enforcing particular conventions we require that all build
     # tasks provide the "build" extra field to specify where the build and tests
     # files are located.
     locations:
       build: 'public/build/target.linux-x86_64.tar.bz2'
       tests: 'public/build/target.tests.zip'
new file mode 100644
--- /dev/null
+++ b/testing/taskcluster/tasks/builds/android_api_15_partner_sample1.yml
@@ -0,0 +1,71 @@
+$inherits:
+  from: 'tasks/builds/mobile_base.yml'
+  variables:
+    build_name: 'android-api-15-partner-sample1'
+    build_type: 'opt'
+task:
+  metadata:
+      name: '[TC] Android armv7 API 15+ partner sample 1'
+      description: 'Android armv7 API 15+ partner sample 1'
+
+  workerType: android-api-15
+
+  routes:
+    - 'index.buildbot.branches.{{project}}.android-api-15-partner-sample1'
+    - 'index.buildbot.revisions.{{head_rev}}.{{project}}.android-api-15-partner-sample1'
+
+  scopes:
+    - 'docker-worker:cache:level-{{level}}-{{project}}-build-android-api-15-workspace'
+    - 'docker-worker:cache:tooltool-cache'
+    - 'docker-worker:relengapi-proxy:tooltool.download.internal'
+    - 'docker-worker:relengapi-proxy:tooltool.download.public'
+
+  payload:
+    cache:
+      level-{{level}}-{{project}}-build-android-api-15-workspace: '/home/worker/workspace'
+      tooltool-cache: '/home/worker/tooltool-cache'
+
+    features:
+      relengAPIProxy: true
+
+    env:
+      # inputs to mozharness
+      MOZHARNESS_SCRIPT: 'mozharness/scripts/fx_desktop_build.py'
+      # TODO: make these additional configuration files go away
+      MOZHARNESS_CONFIG: >
+          builds/releng_base_android_64_builds.py
+          disable_signing.py
+          platform_supports_post_upload_to_latest.py
+      MH_CUSTOM_BUILD_VARIANT_CFG: api-15-partner-sample1
+      MH_BRANCH: {{project}}
+      MH_BUILD_POOL: taskcluster
+
+      # space separated list of repositories required for this build
+      # for each ITEM in list you want checked out, you must also supply tc-vcs args:
+      # e.g. ${ITEM}_BASE_REPOSITORY
+      EXTRA_CHECKOUT_REPOSITORIES: >
+          PARTNER
+
+      PARTNER_BASE_REPOSITORY: 'https://github.com/mozilla/fennec-distribution-sample'
+      PARTNER_HEAD_REPOSITORY: 'https://github.com/mozilla/fennec-distribution-sample'
+      PARTNER_HEAD_REV: 756f0378d4cac87e5e6c405249ede5effe082da2
+      PARTNER_DEST_DIR: '/home/worker/workspace/build/partner'
+
+    maxRunTime: 36000
+
+    command: ["/bin/bash", "bin/build.sh"]
+
+  extra:
+    treeherderEnv:
+      - production
+      - staging
+    treeherder:
+      machine:
+        # see https://github.com/mozilla/treeherder/blob/master/ui/js/values.js
+        platform: android-4-0-armv7-api15-partner1
+    # Rather then enforcing particular conventions we require that all build
+    # tasks provide the "build" extra field to specify where the build and tests
+    # files are located.
+    locations:
+      build: 'public/build/target.linux-x86_64.tar.bz2'
+      tests: 'public/build/target.tests.zip'