summary refs log tree commit diff
path: root/pkgs/development/mobile
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/mobile')
-rw-r--r--pkgs/development/mobile/abootimg/default.nix17
-rw-r--r--pkgs/development/mobile/adb-sync/default.nix6
-rw-r--r--pkgs/development/mobile/adbfs-rootless/default.nix6
-rw-r--r--pkgs/development/mobile/androidenv/.gitignore2
-rw-r--r--pkgs/development/mobile/androidenv/cmake.nix4
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix228
-rw-r--r--pkgs/development/mobile/androidenv/convertaddons.xsl128
-rw-r--r--pkgs/development/mobile/androidenv/convertpackages.xsl116
-rw-r--r--pkgs/development/mobile/androidenv/convertsystemimages.xsl76
-rw-r--r--pkgs/development/mobile/androidenv/default.nix4
-rw-r--r--pkgs/development/mobile/androidenv/deploy-androidpackage.nix5
-rw-r--r--pkgs/development/mobile/androidenv/emulator.nix24
-rw-r--r--pkgs/development/mobile/androidenv/examples/shell.nix145
-rwxr-xr-xpkgs/development/mobile/androidenv/fetchrepo.sh26
-rwxr-xr-xpkgs/development/mobile/androidenv/generate.sh37
-rw-r--r--pkgs/development/mobile/androidenv/generated/addons.nix1092
-rw-r--r--pkgs/development/mobile/androidenv/generated/packages.nix2563
-rw-r--r--pkgs/development/mobile/androidenv/generated/system-images-android-tv.nix114
-rw-r--r--pkgs/development/mobile/androidenv/generated/system-images-android-wear-cn.nix44
-rw-r--r--pkgs/development/mobile/androidenv/generated/system-images-android-wear.nix64
-rw-r--r--pkgs/development/mobile/androidenv/generated/system-images-android.nix364
-rw-r--r--pkgs/development/mobile/androidenv/generated/system-images-google_apis.nix384
-rw-r--r--pkgs/development/mobile/androidenv/generated/system-images-google_apis_playstore.nix64
-rw-r--r--pkgs/development/mobile/androidenv/lldb.nix12
-rw-r--r--pkgs/development/mobile/androidenv/mkrepo.rb321
-rwxr-xr-xpkgs/development/mobile/androidenv/mkrepo.sh19
-rw-r--r--pkgs/development/mobile/androidenv/ndk-bundle/default.nix52
-rwxr-xr-x[-rw-r--r--]pkgs/development/mobile/androidenv/querypackages.sh36
-rw-r--r--pkgs/development/mobile/androidenv/repo.json5692
-rw-r--r--pkgs/development/mobile/androidenv/tools/25.nix4
-rw-r--r--pkgs/development/mobile/androidenv/tools/26.nix4
-rw-r--r--pkgs/development/mobile/checkra1n/default.nix26
-rw-r--r--pkgs/development/mobile/cocoapods/Gemfile-beta.lock30
-rw-r--r--pkgs/development/mobile/cocoapods/Gemfile.lock51
-rw-r--r--pkgs/development/mobile/cocoapods/default.nix2
-rw-r--r--pkgs/development/mobile/cocoapods/gemset-beta.nix54
-rw-r--r--pkgs/development/mobile/cocoapods/gemset.nix99
-rw-r--r--pkgs/development/mobile/flashtool/default.nix62
-rw-r--r--pkgs/development/mobile/genymotion/default.nix15
-rw-r--r--pkgs/development/mobile/gomobile/default.nix58
-rw-r--r--pkgs/development/mobile/imgpatchtools/default.nix4
-rw-r--r--pkgs/development/mobile/titaniumenv/build-app.nix14
-rw-r--r--pkgs/development/mobile/titaniumenv/default.nix4
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix2
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix6
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix6
-rw-r--r--pkgs/development/mobile/webos/cmake-modules.nix4
-rw-r--r--pkgs/development/mobile/webos/novacom.nix6
-rw-r--r--pkgs/development/mobile/webos/novacomd.nix8
-rw-r--r--pkgs/development/mobile/xcodeenv/build-app.nix24
-rw-r--r--pkgs/development/mobile/xcodeenv/default.nix6
-rw-r--r--pkgs/development/mobile/xcodeenv/simulate-app.nix6
-rw-r--r--pkgs/development/mobile/xpwn/default.nix4
53 files changed, 6702 insertions, 5442 deletions
diff --git a/pkgs/development/mobile/abootimg/default.nix b/pkgs/development/mobile/abootimg/default.nix
index fb74d79e7a7..3c7a2840e49 100644
--- a/pkgs/development/mobile/abootimg/default.nix
+++ b/pkgs/development/mobile/abootimg/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, fetchFromGitHub, coreutils, cpio, findutils, gzip, makeWrapper, utillinux }:
+{ lib, stdenv, fetchFromGitHub, coreutils, cpio, findutils, gzip, makeWrapper, util-linux }:
 
-let
-  version = "0.6";
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "abootimg";
-  inherit version;
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "ggrandou";
@@ -14,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "1qgx9fxwhylgnixzkz2mzv2707f65qq7rar2rsqak536vhig1z9a";
   };
 
-  nativeBuildInputs = [ makeWrapper utillinux ];
+  nativeBuildInputs = [ makeWrapper util-linux ];
 
   postPatch = ''
     cat <<EOF > version.h
@@ -28,13 +25,13 @@ stdenv.mkDerivation {
     install -D -m444 ./debian/abootimg.1 $out/share/man/man1/abootimg.1;
 
     install -D -m 755 abootimg-pack-initrd $out/bin
-    wrapProgram $out/bin/abootimg-pack-initrd --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils cpio findutils gzip ]}
+    wrapProgram $out/bin/abootimg-pack-initrd --prefix PATH : ${lib.makeBinPath [ coreutils cpio findutils gzip ]}
 
     install -D -m 755 abootimg-unpack-initrd $out/bin
-    wrapProgram $out/bin/abootimg-unpack-initrd --prefix PATH : ${stdenv.lib.makeBinPath [ cpio gzip ]}
+    wrapProgram $out/bin/abootimg-unpack-initrd --prefix PATH : ${lib.makeBinPath [ cpio gzip ]}
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/ggrandou/abootimg";
     description = "Manipulate Android Boot Images";
     license = licenses.gpl2;
diff --git a/pkgs/development/mobile/adb-sync/default.nix b/pkgs/development/mobile/adb-sync/default.nix
index 98f69ed88b1..c88ac5dbca5 100644
--- a/pkgs/development/mobile/adb-sync/default.nix
+++ b/pkgs/development/mobile/adb-sync/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3, platform-tools, makeWrapper
+{ lib, stdenv, fetchFromGitHub, python3, platform-tools, makeWrapper
 , socat, go-mtpfs, adbfs-rootless
 }:
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   dontBuild = true;
 
   installPhase = let
-    dependencies = stdenv.lib.makeBinPath [ platform-tools socat go-mtpfs adbfs-rootless ];
+    dependencies = lib.makeBinPath [ platform-tools socat go-mtpfs adbfs-rootless ];
   in ''
     runHook preInstall
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A tool to synchronise files between a PC and an Android devices using ADB (Android Debug Bridge)";
     homepage = "https://github.com/google/adb-sync";
     license = licenses.asl20;
diff --git a/pkgs/development/mobile/adbfs-rootless/default.nix b/pkgs/development/mobile/adbfs-rootless/default.nix
index 2033fa78ae5..85bf2fb4490 100644
--- a/pkgs/development/mobile/adbfs-rootless/default.nix
+++ b/pkgs/development/mobile/adbfs-rootless/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, fuse, adb }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, fuse, adb }:
 
 stdenv.mkDerivation rec {
   pname = "adbfs-rootless";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ fuse ];
 
   postPatch = ''
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     install -D adbfs $out/bin/adbfs
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Mount Android phones on Linux with adb, no root required";
     inherit (src.meta) homepage;
     license = licenses.bsd3;
diff --git a/pkgs/development/mobile/androidenv/.gitignore b/pkgs/development/mobile/androidenv/.gitignore
new file mode 100644
index 00000000000..c15750760a4
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/.gitignore
@@ -0,0 +1,2 @@
+/xml
+local.properties
diff --git a/pkgs/development/mobile/androidenv/cmake.nix b/pkgs/development/mobile/androidenv/cmake.nix
index 1aeef467642..ade111cf3f9 100644
--- a/pkgs/development/mobile/androidenv/cmake.nix
+++ b/pkgs/development/mobile/androidenv/cmake.nix
@@ -2,8 +2,8 @@
 
 deployAndroidPackage {
   inherit package os;
-  buildInputs = [ autoPatchelfHook ]
-    ++ lib.optional (os == "linux") [ pkgs.stdenv.glibc pkgs.stdenv.cc.cc ];
+  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = lib.optional (os == "linux") [ pkgs.stdenv.glibc pkgs.stdenv.cc.cc pkgs.ncurses5 ];
   patchInstructions = lib.optionalString (os == "linux") ''
     autoPatchelf $packageBaseDir/bin
   '';
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index f98547011bd..f528fcd8558 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -1,75 +1,118 @@
-{requireFile, autoPatchelfHook, pkgs, pkgs_i686, licenseAccepted ? false}:
+{ requireFile, autoPatchelfHook, pkgs, pkgsHostHost, pkgs_i686
+, licenseAccepted ? false
+}:
 
-{ toolsVersion ? "25.2.5"
-, platformToolsVersion ? "29.0.6"
-, buildToolsVersions ? [ "28.0.3" ]
+{ toolsVersion ? "26.1.1"
+, platformToolsVersion ? "31.0.2"
+, buildToolsVersions ? [ "30.0.3" ]
 , includeEmulator ? false
-, emulatorVersion ? "30.0.3"
+, emulatorVersion ? "30.6.3"
 , platformVersions ? []
 , includeSources ? false
-, includeDocs ? false
 , includeSystemImages ? false
-, systemImageTypes ? [ "default" ]
+, systemImageTypes ? [ "google_apis_playstore" ]
 , abiVersions ? [ "armeabi-v7a" ]
-, lldbVersions ? [ ]
 , cmakeVersions ? [ ]
 , includeNDK ? false
-, ndkVersion ? "18.1.5063045"
+, ndkVersion ? "22.1.7171670"
+, ndkVersions ? [ndkVersion]
 , useGoogleAPIs ? false
 , useGoogleTVAddOns ? false
 , includeExtras ? []
+, repoJson ? ./repo.json
+, repoXmls ? null
+, extraLicenses ? []
 }:
 
 let
-  inherit (pkgs) stdenv lib fetchurl makeWrapper unzip;
+  inherit (pkgs) stdenv lib fetchurl;
+  inherit (pkgs.buildPackages) makeWrapper unzip;
 
   # Determine the Android os identifier from Nix's system identifier
   os = if stdenv.system == "x86_64-linux" then "linux"
     else if stdenv.system == "x86_64-darwin" then "macosx"
     else throw "No Android SDK tarballs are available for system architecture: ${stdenv.system}";
 
-  # Generated Nix packages
-  packages = import ./generated/packages.nix {
-    inherit fetchurl;
-  };
-
-  # Generated system images
-  system-images-packages-android = import ./generated/system-images-android.nix {
-    inherit fetchurl;
-  };
-
-  system-images-packages-android-tv = import ./generated/system-images-android-tv.nix {
-    inherit fetchurl;
-  };
-
-  system-images-packages-android-wear = import ./generated/system-images-android-wear.nix {
-    inherit fetchurl;
-  };
-
-  system-images-packages-android-wear-cn = import ./generated/system-images-android-wear-cn.nix {
-    inherit fetchurl;
-  };
-
-  system-images-packages-google_apis = import ./generated/system-images-google_apis.nix {
-    inherit fetchurl;
+  # Uses mkrepo.rb to create a repo spec.
+  mkRepoJson = { packages ? [], images ? [], addons ? [] }: let
+    mkRepoRuby = (pkgs.ruby.withPackages (pkgs: with pkgs; [ slop nokogiri ]));
+    mkRepoRubyArguments = lib.lists.flatten [
+      (builtins.map (package: ["--packages" "${package}"]) packages)
+      (builtins.map (image: ["--images" "${image}"]) images)
+      (builtins.map (addon: ["--addons" "${addon}"]) addons)
+    ];
+  in
+  stdenv.mkDerivation {
+    name = "androidenv-repo-json";
+    buildInputs = [ mkRepoRuby ];
+    preferLocalBuild = true;
+    unpackPhase = "true";
+    buildPhase = ''
+      ruby ${./mkrepo.rb} ${lib.escapeShellArgs mkRepoRubyArguments} > repo.json
+    '';
+    installPhase = ''
+      mv repo.json $out
+    '';
   };
 
-  system-images-packages-google_apis_playstore = import ./generated/system-images-google_apis_playstore.nix {
-    inherit fetchurl;
+  # Reads the repo JSON. If repoXmls is provided, will build a repo JSON into the Nix store.
+  repo = if repoXmls != null then
+           let
+             repoXmlSpec = {
+               packages = repoXmls.packages or [];
+               images = repoXmls.images or [];
+               addons = repoXmls.addons or [];
+             };
+           in
+           builtins.fromJSON (builtins.readFile "${mkRepoJson repoXmlSpec}")
+         else
+           builtins.fromJSON (builtins.readFile repoJson);
+
+  # Converts all 'archives' keys in a repo spec to fetchurl calls.
+  fetchArchives = attrSet:
+    lib.attrsets.mapAttrsRecursive
+      (path: value:
+        if (builtins.elemAt path ((builtins.length path) - 1)) == "archives" then
+          (builtins.listToAttrs
+            (builtins.map
+              (archive: lib.attrsets.nameValuePair archive.os (fetchurl { inherit (archive) url sha1; })) value))
+        else value
+      )
+      attrSet;
+
+  # Converts the repo attrset into fetch calls
+  packages = fetchArchives repo.packages;
+  system-images-packages = fetchArchives repo.images;
+  addons = {
+    addons = fetchArchives repo.addons;
+    extras = fetchArchives repo.extras;
   };
 
-  system-images-packages =
-    lib.recursiveUpdate
-      system-images-packages-android
-      (lib.recursiveUpdate system-images-packages-android-tv
-        (lib.recursiveUpdate system-images-packages-android-wear
-          (lib.recursiveUpdate system-images-packages-android-wear-cn
-            (lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
-
-  # Generated addons
-  addons = import ./generated/addons.nix {
-    inherit fetchurl;
-  };
+  # Converts a license name to a list of license texts.
+  mkLicenses = licenseName: repo.licenses.${licenseName};
+
+  # Converts a list of license names to a flattened list of license texts.
+  # Just used for displaying licenses.
+  mkLicenseTexts = licenseNames:
+    lib.lists.flatten
+      (builtins.map
+        (licenseName:
+          builtins.map
+            (licenseText: "--- ${licenseName} ---\n${licenseText}")
+            (mkLicenses licenseName))
+      licenseNames);
+
+  # Converts a license name to a list of license hashes.
+  mkLicenseHashes = licenseName:
+    builtins.map
+      (licenseText: builtins.hashString "sha1" licenseText)
+      (mkLicenses licenseName);
+
+  # The list of all license names we're accepting. Put android-sdk-license there
+  # by default.
+  licenseNames = lib.lists.unique ([
+    "android-sdk-license"
+  ] ++ extraLicenses);
 in
 rec {
   deployAndroidPackage = import ./deploy-androidpackage.nix {
@@ -88,14 +131,9 @@ rec {
     }
   ) buildToolsVersions;
 
-  docs = deployAndroidPackage {
-    inherit os;
-    package = packages.docs."1";
-  };
-
   emulator = import ./emulator.nix {
     inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
-    package = packages.emulator.${emulatorVersion}.${os};
+    package = packages.emulator.${emulatorVersion};
   };
 
   platforms = map (version:
@@ -115,27 +153,22 @@ rec {
   system-images = lib.flatten (map (apiVersion:
     map (type:
       map (abiVersion:
-        deployAndroidPackage {
-          inherit os;
-          package = system-images-packages.${apiVersion}.${type}.${abiVersion};
-          # Patch 'google_apis' system images so they're recognized by the sdk.
-          # Without this, `android list targets` shows 'Tag/ABIs : no ABIs' instead
-          # of 'Tag/ABIs : google_apis*/*' and the emulator fails with an ABI-related error.
-          patchInstructions = lib.optionalString (lib.hasPrefix "google_apis" type) ''
-            sed -i '/^Addon.Vendor/d' source.properties
-          '';
-        }
+        if lib.hasAttrByPath [apiVersion type abiVersion] system-images-packages then
+          deployAndroidPackage {
+            inherit os;
+            package = system-images-packages.${apiVersion}.${type}.${abiVersion};
+            # Patch 'google_apis' system images so they're recognized by the sdk.
+            # Without this, `android list targets` shows 'Tag/ABIs : no ABIs' instead
+            # of 'Tag/ABIs : google_apis*/*' and the emulator fails with an ABI-related error.
+            patchInstructions = lib.optionalString (lib.hasPrefix "google_apis" type) ''
+              sed -i '/^Addon.Vendor/d' source.properties
+            '';
+          }
+        else []
       ) abiVersions
     ) systemImageTypes
   ) platformVersions);
 
-  lldb = map (version:
-    import ./lldb.nix {
-      inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
-      package = packages.lldb.${version};
-    }
-  ) lldbVersions;
-
   cmake = map (version:
     import ./cmake.nix {
       inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
@@ -143,10 +176,18 @@ rec {
     }
   ) cmakeVersions;
 
-  ndk-bundle = import ./ndk-bundle {
-    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs lib platform-tools;
-    package = packages.ndk-bundle.${ndkVersion};
-  };
+  # Creates a NDK bundle.
+  makeNdkBundle = ndkVersion:
+    import ./ndk-bundle {
+      inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgsHostHost lib platform-tools;
+      package = packages.ndk-bundle.${ndkVersion};
+    };
+
+  # All NDK bundles.
+  ndk-bundles = if includeNDK then map makeNdkBundle ndkVersions else [];
+
+  # The "default" NDK bundle.
+  ndk-bundle = if includeNDK then lib.findFirst (x: x != null) null ndk-bundles else null;
 
   google-apis = map (version:
     deployAndroidPackage {
@@ -171,6 +212,15 @@ rec {
       '') plugins}
     '';
 
+  # Function that automatically links all NDK plugins.
+  linkNdkPlugins = {name, plugins, rootName ? name}:
+    lib.optionalString (plugins != []) ''
+      mkdir -p ${rootName}
+      ${lib.concatMapStrings (plugin: ''
+        ln -s ${plugin}/libexec/android-sdk/${name} ${rootName}/${plugin.version}
+      '') plugins}
+    '';
+
   # Function that automatically links a plugin for which only one version exists
   linkPlugin = {name, plugin, check ? true}:
     lib.optionalString check ''
@@ -187,26 +237,27 @@ rec {
     ''; # */
 
   # This derivation deploys the tools package and symlinks all the desired
-  # plugins that we want to use.
-
+  # plugins that we want to use. If the license isn't accepted, prints all the licenses
+  # requested and throws.
   androidsdk = if !licenseAccepted then throw ''
-    You must accept the Android Software Development Kit License Agreement at
-    https://developer.android.com/studio/terms
-    by setting nixpkgs config option 'android_sdk.accept_license = true;'
+    ${builtins.concatStringsSep "\n\n" (mkLicenseTexts licenseNames)}
+
+    You must accept the following licenses:
+    ${lib.concatMapStringsSep "\n" (str: "  - ${str}") licenseNames}
+
+    by setting nixpkgs config option 'android_sdk.accept_license = true;'.
   '' else import ./tools.nix {
     inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686 lib;
 
     postInstall = ''
       # Symlink all requested plugins
-
       ${linkPlugin { name = "platform-tools"; plugin = platform-tools; }}
       ${linkPlugins { name = "build-tools"; plugins = build-tools; }}
       ${linkPlugin { name = "emulator"; plugin = emulator; check = includeEmulator; }}
-      ${linkPlugin { name = "docs"; plugin = docs; check = includeDocs; }}
       ${linkPlugins { name = "platforms"; plugins = platforms; }}
       ${linkPlatformPlugins { name = "sources"; plugins = sources; check = includeSources; }}
-      ${linkPlugins { name = "lldb"; plugins = lldb; }}
       ${linkPlugins { name = "cmake"; plugins = cmake; }}
+      ${linkNdkPlugins { name = "ndk-bundle"; rootName = "ndk"; plugins = ndk-bundles; }}
       ${linkPlugin { name = "ndk-bundle"; plugin = ndk-bundle; check = includeNDK; }}
 
       ${lib.optionalString includeSystemImages ''
@@ -253,6 +304,17 @@ rec {
       do
           ln -s $i $out/bin
       done
+
+      # Write licenses
+      mkdir -p licenses
+      ${lib.concatMapStrings (licenseName:
+        let
+          licenseHashes = builtins.concatStringsSep "\n" (mkLicenseHashes licenseName);
+          licenseHashFile = pkgs.writeText "androidenv-${licenseName}" licenseHashes;
+        in
+        ''
+          ln -s ${licenseHashFile} licenses/${licenseName}
+        '') licenseNames}
     '';
   };
 }
diff --git a/pkgs/development/mobile/androidenv/convertaddons.xsl b/pkgs/development/mobile/androidenv/convertaddons.xsl
deleted file mode 100644
index 20f007eca04..00000000000
--- a/pkgs/development/mobile/androidenv/convertaddons.xsl
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:addon="http://schemas.android.com/sdk/android/repo/addon2/01"
-  xmlns:sdk="http://schemas.android.com/repository/android/common/01"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-  <xsl:output omit-xml-declaration="yes" indent="no" />
-
-  <!-- Template that puts a google HTTP prefix in front of relative URLs -->
-  <xsl:template name="repository-url">
-    <xsl:variable name="raw-url" select="complete/url"/>
-    <xsl:choose>
-      <xsl:when test="starts-with($raw-url, 'http')">
-        <xsl:value-of select="$raw-url"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:text>https://dl.google.com/android/repository/</xsl:text>
-        <xsl:value-of select="$raw-url"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template match="/addon:sdk-addon">
-{fetchurl}:
-
-{
-  addons = {
-    <!-- Convert all addons, but skip the entry for google APIs version 25 because it is inconsistent with the spec -->
-    <xsl:for-each select="remotePackage[type-details/@xsi:type='addon:addonDetailsType' and archives/archive/complete/url != 'google_apis-25_r1.zip' ]"><xsl:sort select="@path" />
-    "<xsl:value-of select="type-details/api-level" />"."<xsl:value-of select="type-details/tag/id" />" = {
-      name = "<xsl:value-of select="type-details/tag/id" />";
-      path = "<xsl:value-of select="translate(@path, ';', '/')" />";
-      revision = "<xsl:value-of select="type-details/api-level" />";
-      displayName = "<xsl:value-of select="display-name" />";
-      archives = {
-      <xsl:for-each select="archives/archive[not(host-os)]">
-        all = fetchurl {
-          url = "<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
-        <xsl:value-of select="host-os" /> = fetchurl {
-          url = "<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      };
-    };
-    </xsl:for-each>
-
-    <!-- Workaround to make google APIs version 25 work. Hopefully, we can get rid of this at some point -->
-    <xsl:for-each select="remotePackage[type-details/@xsi:type='addon:addonDetailsType' and archives/archive/complete/url = 'google_apis-25_r1.zip' ]">
-    "<xsl:value-of select="25" />"."<xsl:value-of select="type-details/tag/id" />" = {
-      name = "<xsl:value-of select="type-details/tag/id" />";
-      path = "add-ons/addon-google_apis-google-25";
-      revision = "<xsl:value-of select="25" />";
-      displayName = "<xsl:value-of select="display-name" />";
-      archives = {
-      <xsl:for-each select="archives/archive[not(host-os)]">
-        all = fetchurl {
-          url = "<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
-        <xsl:value-of select="host-os" /> = fetchurl {
-          url = "<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      };
-    };
-    </xsl:for-each>
-  };
-
-  extras = {
-    <!-- Convert all extras and maven artefacts -->
-    <xsl:for-each select="remotePackage[type-details/@xsi:type='addon:extraDetailsType' or type-details/@xsi:type='addon:mavenType']"><xsl:sort select="@path" />
-    
-    <!-- Compose revision string from revision attributes -->
-    <xsl:variable name="revision">
-      <xsl:choose>
-        <xsl:when test="revision/major">
-          <xsl:value-of select="revision/major" />
-        </xsl:when>
-      </xsl:choose>
-      <xsl:choose>
-        <xsl:when test="revision/minor">.<xsl:value-of select="revision/minor" />
-        </xsl:when>
-      </xsl:choose>
-      <xsl:choose>
-        <xsl:when test="revision/micro">.<xsl:value-of select="revision/micro" />
-        </xsl:when>
-      </xsl:choose>
-      <xsl:choose>
-        <xsl:when test="revision/preview">-rc<xsl:value-of select="revision/preview" />
-        </xsl:when>
-      </xsl:choose>
-    </xsl:variable>
-
-    "<xsl:value-of select="@path" />" = {
-      name = "<xsl:value-of select="translate(@path, ';', '-')" />";
-      path = "<xsl:value-of select="translate(@path, ';', '/')" />";
-      revision = "<xsl:value-of select="$revision" />";
-      displayName = "<xsl:value-of select="display-name" />";
-      archives = {
-      <xsl:for-each select="archives/archive[not(host-os)]">
-        all = fetchurl {
-          url = "<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
-        <xsl:value-of select="host-os" /> = fetchurl {
-          url = "<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      };
-    };
-    </xsl:for-each>
-  };
-}
-  </xsl:template>
-
-</xsl:stylesheet>
diff --git a/pkgs/development/mobile/androidenv/convertpackages.xsl b/pkgs/development/mobile/androidenv/convertpackages.xsl
deleted file mode 100644
index edc9074a898..00000000000
--- a/pkgs/development/mobile/androidenv/convertpackages.xsl
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:common="http://schemas.android.com/repository/android/common/01"
-  xmlns:generic="http://schemas.android.com/repository/android/generic/01"
-  xmlns:sdk="http://schemas.android.com/sdk/android/repo/repository2/01"
-  xmlns:sdk-common="http://schemas.android.com/sdk/android/repo/common/01"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-  <xsl:output omit-xml-declaration="yes" indent="no" />
-
-  <!-- Template that puts a google HTTP prefix in front of relative URLs -->
-  <xsl:template name="repository-url">
-    <xsl:variable name="raw-url" select="complete/url"/>
-    <xsl:choose>
-      <xsl:when test="starts-with($raw-url, 'http')">
-        <xsl:value-of select="$raw-url"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:text>https://dl.google.com/android/repository/</xsl:text>
-        <xsl:value-of select="$raw-url"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template match="/sdk:sdk-repository">
-{fetchurl}:
-
-{
-  <!-- Convert all remote packages -->
-  <xsl:for-each select="remotePackage[not(contains(@path, ';') and substring-after(@path, ';') = 'latest')]"><xsl:sort select="@path" />
-
-  <!-- Extract the package name from the path -->
-  <xsl:variable name="name">
-    <xsl:choose>
-      <xsl:when test="contains(@path, ';')">
-        <xsl:value-of select="substring-before(@path, ';')" />
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select="@path" />
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-
-  <!-- Compose version string from version attributes -->
-  <xsl:variable name="revision">
-    <xsl:choose>
-      <!-- Compose revision for a generic package from the revision attributes -->
-      <xsl:when test="type-details/@xsi:type='generic:genericDetailsType'">
-        <xsl:choose>
-          <xsl:when test="revision/major">
-            <xsl:value-of select="revision/major" />
-          </xsl:when>
-        </xsl:choose>
-        <xsl:choose>
-          <xsl:when test="revision/minor">.<xsl:value-of select="revision/minor" />
-          </xsl:when>
-        </xsl:choose>
-        <xsl:choose>
-          <xsl:when test="revision/micro">.<xsl:value-of select="revision/micro" />
-          </xsl:when>
-        </xsl:choose>
-        <xsl:choose>
-          <xsl:when test="revision/preview">-rc<xsl:value-of select="revision/preview" />
-          </xsl:when>
-        </xsl:choose>
-      </xsl:when>
-      <!-- Compose revision of a platform SDK from the API-level or codename if the latter exists -->
-      <xsl:when test="type-details/@xsi:type='sdk:platformDetailsType'">
-        <xsl:choose>
-          <xsl:when test="not(type-details/codename='')">
-            <xsl:value-of select="type-details/codename" />
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:value-of select="type-details/api-level" />
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:when>
-      <!-- Compose revision of a source SDK from the API-level -->
-      <xsl:when test="type-details/@xsi:type='sdk:sourceDetailsType'">
-        <xsl:value-of select="type-details/api-level" />
-      </xsl:when>
-    </xsl:choose>
-  </xsl:variable>
-
-  <xsl:choose>
-    <xsl:when test="@path='emulator'"> <!-- An emulator package provides one archive per operating system but the same versions -->
-  "<xsl:value-of select="$name" />"."<xsl:value-of select="$revision" />".<xsl:value-of select="archives/archive/host-os" /> = {
-    </xsl:when>
-    <xsl:otherwise>
-  "<xsl:value-of select="$name" />"."<xsl:value-of select="$revision" />" = {
-    </xsl:otherwise>
-  </xsl:choose>
-    name = "<xsl:value-of select="$name" />";
-    path = "<xsl:value-of select="translate(@path, ';', '/')" />";
-    revision = "<xsl:value-of select="$revision" />";
-    displayName = "<xsl:value-of select="display-name" />";
-    archives = {
-      <xsl:for-each select="archives/archive[not(host-os)]">
-        all = fetchurl {
-          url = !<xsl:call-template name="repository-url"/>";
-          sha1 = "<xsl:value-of select="complete/checksum" />";
-        };
-      </xsl:for-each>
-      <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
-        <xsl:value-of select="host-os" /> = fetchurl {
-        url = "<xsl:call-template name="repository-url"/>";
-        sha1 = "<xsl:value-of select="complete/checksum" />";
-      };
-      </xsl:for-each>
-    };
-  };
-  </xsl:for-each>
-}
-  </xsl:template>
-</xsl:stylesheet>
diff --git a/pkgs/development/mobile/androidenv/convertsystemimages.xsl b/pkgs/development/mobile/androidenv/convertsystemimages.xsl
deleted file mode 100644
index 947950badb4..00000000000
--- a/pkgs/development/mobile/androidenv/convertsystemimages.xsl
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:sys-img="http://schemas.android.com/sdk/android/repo/sys-img2/01"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
-  <xsl:param name="imageType" />
-
-  <xsl:output method="text" omit-xml-declaration="yes" indent="no" />
-
-  <xsl:template name="repository-url">
-    <xsl:variable name="raw-url" select="complete/url"/>
-    <xsl:choose>
-      <xsl:when test="starts-with($raw-url, 'http')">
-        <xsl:value-of select="$raw-url"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:text>https://dl.google.com/android/repository/sys-img/</xsl:text><xsl:value-of select="$imageType" /><xsl:text>/</xsl:text><xsl:value-of select="$raw-url"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template mode="revision" match="type-details[codename]">
-    <xsl:value-of select="codename" />-<xsl:value-of select="tag/id" />-<xsl:value-of select="abi" />
-  </xsl:template>
-
-  <xsl:template mode="revision" match="type-details[not(codename)]">
-    <xsl:value-of select="api-level" />-<xsl:value-of select="tag/id" />-<xsl:value-of select="abi" />
-  </xsl:template>
-
-  <xsl:template mode="attrkey" match="type-details[codename]">
-    <xsl:text>"</xsl:text>
-    <xsl:value-of select="codename" />
-    <xsl:text>".</xsl:text>
-    <xsl:value-of select="tag/id" />
-    <xsl:text>."</xsl:text>
-    <xsl:value-of select="abi" />
-    <xsl:text>"</xsl:text>
-  </xsl:template>
-
-  <xsl:template mode="attrkey" match="type-details[not(codename)]">
-    <xsl:text>"</xsl:text>
-    <xsl:value-of select="api-level" />
-    <xsl:text>".</xsl:text>
-    <xsl:value-of select="tag/id" />
-    <xsl:text>."</xsl:text>
-    <xsl:value-of select="abi" />
-    <xsl:text>"</xsl:text>
-  </xsl:template>
-
-  <xsl:template match="/sys-img:sdk-sys-img">
-<xsl:text>{fetchurl}:
-
-{
-</xsl:text><xsl:for-each select="remotePackage[starts-with(@path, 'system-images;')]">
-  <xsl:variable name="revision"><xsl:apply-templates mode="revision" select="type-details" /></xsl:variable>
-
-  <xsl:variable name="attrkey"><xsl:apply-templates mode="attrkey" select="type-details" /></xsl:variable>
-
-  <xsl:text>  </xsl:text><xsl:value-of select="$attrkey" /><xsl:text> = {
-    name = "system-image-</xsl:text><xsl:value-of select="$revision" /><xsl:text>";
-    path = "</xsl:text><xsl:value-of select="translate(@path, ';', '/')" /><xsl:text>";
-    revision = "</xsl:text><xsl:value-of select="$revision" /><xsl:text>";
-    displayName = "</xsl:text><xsl:value-of select="display-name" /><xsl:text>";
-    archives.all = fetchurl {</xsl:text>
-    <xsl:for-each select="archives/archive"><xsl:text>
-      url = "</xsl:text><xsl:call-template name="repository-url"/><xsl:text>";
-      sha1 = "</xsl:text><xsl:value-of select="complete/checksum" /><xsl:text>";</xsl:text>
-    </xsl:for-each><xsl:text>
-    };
-  };
-</xsl:text>
-  </xsl:for-each>
-<xsl:text>}</xsl:text>
-  </xsl:template>
-</xsl:stylesheet>
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index 0228cd83924..a13b98cf945 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -1,4 +1,4 @@
-{ config, pkgs ? import <nixpkgs> {}
+{ config, pkgs ? import <nixpkgs> {}, pkgsHostHost ? pkgs.pkgsHostHost
 , pkgs_i686 ? import <nixpkgs> { system = "i686-linux"; }
 , licenseAccepted ? config.android_sdk.accept_license or false
 }:
@@ -6,7 +6,7 @@
 rec {
   composeAndroidPackages = import ./compose-android-packages.nix {
     inherit (pkgs) requireFile autoPatchelfHook;
-    inherit pkgs pkgs_i686 licenseAccepted;
+    inherit pkgs pkgsHostHost pkgs_i686 licenseAccepted;
   };
 
   buildApp = import ./build-app.nix {
diff --git a/pkgs/development/mobile/androidenv/deploy-androidpackage.nix b/pkgs/development/mobile/androidenv/deploy-androidpackage.nix
index 839a14f7033..f23558ebc5c 100644
--- a/pkgs/development/mobile/androidenv/deploy-androidpackage.nix
+++ b/pkgs/development/mobile/androidenv/deploy-androidpackage.nix
@@ -5,7 +5,8 @@ let
   extraParams = removeAttrs args [ "package" "os" "buildInputs" "patchInstructions" ];
 in
 stdenv.mkDerivation ({
-  name = package.name + "-" + package.revision;
+  pname = package.name;
+  version = package.revision;
   src = if os != null && builtins.hasAttr os package.archives then package.archives.${os} else package.archives.all;
   buildInputs = [ unzip ] ++ buildInputs;
   preferLocalBuild = true;
@@ -28,7 +29,7 @@ stdenv.mkDerivation ({
     packageBaseDir=$out/libexec/android-sdk/${package.path}
     mkdir -p $packageBaseDir
     cd $packageBaseDir
-    cp -av $sourceRoot/* .
+    cp -a $sourceRoot/* .
     ${patchInstructions}
   '';
 
diff --git a/pkgs/development/mobile/androidenv/emulator.nix b/pkgs/development/mobile/androidenv/emulator.nix
index 5840598d1c3..2746a60247b 100644
--- a/pkgs/development/mobile/androidenv/emulator.nix
+++ b/pkgs/development/mobile/androidenv/emulator.nix
@@ -5,16 +5,16 @@ deployAndroidPackage {
   buildInputs = [ autoPatchelfHook makeWrapper ]
   ++ lib.optional (os == "linux") [
     pkgs.glibc
-    pkgs.xlibs.libX11
-    pkgs.xlibs.libXext
-    pkgs.xlibs.libXdamage
-    pkgs.xlibs.libXfixes
-    pkgs.xlibs.libxcb
-    pkgs.xlibs.libXcomposite
-    pkgs.xlibs.libXcursor
-    pkgs.xlibs.libXi
-    pkgs.xlibs.libXrender
-    pkgs.xlibs.libXtst
+    pkgs.xorg.libX11
+    pkgs.xorg.libXext
+    pkgs.xorg.libXdamage
+    pkgs.xorg.libXfixes
+    pkgs.xorg.libxcb
+    pkgs.xorg.libXcomposite
+    pkgs.xorg.libXcursor
+    pkgs.xorg.libXi
+    pkgs.xorg.libXrender
+    pkgs.xorg.libXtst
     pkgs.libcxx
     pkgs.libGL
     pkgs.libpulseaudio
@@ -26,7 +26,7 @@ deployAndroidPackage {
     pkgs.freetype
     pkgs.nss
     pkgs.nspr
-    pkgs.alsaLib
+    pkgs.alsa-lib
   ];
   patchInstructions = lib.optionalString (os == "linux") ''
     addAutoPatchelfSearchPath $packageBaseDir/lib
@@ -38,7 +38,7 @@ deployAndroidPackage {
 
     # Wrap emulator so that it can load required libraries at runtime
     wrapProgram $out/libexec/android-sdk/emulator/emulator \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ 
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
         pkgs.dbus
         pkgs.systemd
       ]} \
diff --git a/pkgs/development/mobile/androidenv/examples/shell.nix b/pkgs/development/mobile/androidenv/examples/shell.nix
new file mode 100644
index 00000000000..074dfc001e6
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/examples/shell.nix
@@ -0,0 +1,145 @@
+{
+  # If you copy this example out of nixpkgs, use these lines instead of the next.
+  # This example pins nixpkgs: https://nix.dev/tutorials/towards-reproducibility-pinning-nixpkgs.html
+  /*nixpkgsSource ? (builtins.fetchTarball {
+    name = "nixpkgs-20.09";
+    url = "https://github.com/NixOS/nixpkgs/archive/20.09.tar.gz";
+    sha256 = "1wg61h4gndm3vcprdcg7rc4s1v3jkm5xd7lw8r2f67w502y94gcy";
+  }),
+  pkgs ? import nixpkgsSource {},
+  pkgs_i686 ? import nixpkgsSource { system = "i686-linux"; },*/
+
+  # If you want to use the in-tree version of nixpkgs:
+  pkgs ? import ../../../../.. {},
+  pkgs_i686 ? import ../../../../.. { system = "i686-linux"; },
+
+  config ? pkgs.config
+}:
+
+# Copy this file to your Android project.
+let
+  # Declaration of versions for everything. This is useful since these
+  # versions may be used in multiple places in this Nix expression.
+  android = {
+    versions = {
+      tools = "26.1.1";
+      platformTools = "31.0.2";
+      buildTools = "30.0.3";
+      ndk = [
+        "22.1.7171670"
+        "21.3.6528147" # LTS NDK
+      ];
+      cmake = "3.18.1";
+      emulator = "30.6.3";
+    };
+
+    platforms = ["23" "24" "25" "26" "27" "28" "29" "30"];
+    abis = ["armeabi-v7a" "arm64-v8a"];
+    extras = ["extras;google;gcm"];
+  };
+
+  # If you copy this example out of nixpkgs, something like this will work:
+  /*androidEnvNixpkgs = fetchTarball {
+    name = "androidenv";
+    url = "https://github.com/NixOS/nixpkgs/archive/<fill me in from Git>.tar.gz";
+    sha256 = "<fill me in with nix-prefetch-url --unpack>";
+  };
+
+  androidEnv = pkgs.callPackage "${androidEnvNixpkgs}/pkgs/development/mobile/androidenv" {
+    inherit config pkgs pkgs_i686;
+    licenseAccepted = true;
+  };*/
+
+  # Otherwise, just use the in-tree androidenv:
+  androidEnv = pkgs.callPackage ./.. {
+    inherit config pkgs pkgs_i686;
+    licenseAccepted = true;
+  };
+
+  androidComposition = androidEnv.composeAndroidPackages {
+    toolsVersion = android.versions.tools;
+    platformToolsVersion = android.versions.platformTools;
+    buildToolsVersions = [android.versions.buildTools];
+    platformVersions = android.platforms;
+    abiVersions = android.abis;
+
+    includeSources = true;
+    includeSystemImages = true;
+    includeEmulator = true;
+    emulatorVersion = android.versions.emulator;
+
+    includeNDK = true;
+    ndkVersions = android.versions.ndk;
+    cmakeVersions = [android.versions.cmake];
+
+    useGoogleAPIs = true;
+    includeExtras = android.extras;
+
+    # If you want to use a custom repo JSON:
+    # repoJson = ../repo.json;
+
+    # If you want to use custom repo XMLs:
+    /*repoXmls = {
+      packages = [ ../xml/repository2-1.xml ];
+      images = [
+        ../xml/android-sys-img2-1.xml
+        ../xml/android-tv-sys-img2-1.xml
+        ../xml/android-wear-sys-img2-1.xml
+        ../xml/android-wear-cn-sys-img2-1.xml
+        ../xml/google_apis-sys-img2-1.xml
+        ../xml/google_apis_playstore-sys-img2-1.xml
+      ];
+      addons = [ ../xml/addon2-1.xml ];
+    };*/
+
+    # Accepting more licenses declaratively:
+    extraLicenses = [
+      # Already accepted for you with the global accept_license = true or
+      # licenseAccepted = true on androidenv.
+      # "android-sdk-license"
+
+      # These aren't, but are useful for more uncommon setups.
+      "android-sdk-preview-license"
+      "android-googletv-license"
+      "android-sdk-arm-dbt-license"
+      "google-gdk-license"
+      "intel-android-extra-license"
+      "intel-android-sysimage-license"
+      "mips-android-sysimage-license"
+    ];
+  };
+
+  androidSdk = androidComposition.androidsdk;
+  platformTools = androidComposition.platform-tools;
+  jdk = pkgs.jdk;
+in
+pkgs.mkShell rec {
+  name = "androidenv-demo";
+  packages = [ androidSdk platformTools jdk pkgs.android-studio ];
+
+  LANG = "C.UTF-8";
+  LC_ALL = "C.UTF-8";
+  JAVA_HOME = jdk.home;
+
+  # Note: ANDROID_HOME is deprecated. Use ANDROID_SDK_ROOT.
+  ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk";
+  ANDROID_NDK_ROOT = "${ANDROID_SDK_ROOT}/ndk-bundle";
+
+  # Ensures that we don't have to use a FHS env by using the nix store's aapt2.
+  GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${ANDROID_SDK_ROOT}/build-tools/${android.versions.buildTools}/aapt2";
+
+  shellHook = ''
+    # Add cmake to the path.
+    cmake_root="$(echo "$ANDROID_SDK_ROOT/cmake/${android.versions.cmake}"*/)"
+    export PATH="$cmake_root/bin:$PATH"
+
+    # Write out local.properties for Android Studio.
+    cat <<EOF > local.properties
+# This file was automatically generated by nix-shell.
+sdk.dir=$ANDROID_SDK_ROOT
+ndk.dir=$ANDROID_NDK_ROOT
+cmake.dir=$cmake_root
+EOF
+  '';
+}
+
diff --git a/pkgs/development/mobile/androidenv/fetchrepo.sh b/pkgs/development/mobile/androidenv/fetchrepo.sh
new file mode 100755
index 00000000000..ab5bf419c31
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/fetchrepo.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl
+
+die() {
+    echo "$1" >&2
+    exit 1
+}
+
+fetch() {
+    local url="https://dl.google.com/android/repository/$1"
+    echo "$url -> $2"
+    curl -s "$url" -o "$2" || die "Failed to fetch $url"
+}
+
+pushd "$(dirname "$0")" &>/dev/null || exit 1
+
+mkdir -p xml
+
+fetch repository2-1.xml xml/repository2-1.xml
+for img in android android-tv android-wear android-wear-cn android-automotive google_apis google_apis_playstore
+do
+    fetch sys-img/$img/sys-img2-1.xml xml/$img-sys-img2-1.xml
+done
+fetch addon2-1.xml xml/addon2-1.xml
+
+popd &>/dev/null
diff --git a/pkgs/development/mobile/androidenv/generate.sh b/pkgs/development/mobile/androidenv/generate.sh
index 895a741adff..2c9a0a9f591 100755
--- a/pkgs/development/mobile/androidenv/generate.sh
+++ b/pkgs/development/mobile/androidenv/generate.sh
@@ -1,36 +1,3 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl libxslt
+#!/bin/sh
 
-set -e
-
-die() {
-    echo "$1" >&2
-    exit 1
-}
-
-fetch() {
-    local url="https://dl.google.com/android/repository/$1"
-    echo "$url -> $2"
-    curl -s "$url" -o "$2" || die "Failed to fetch $url"
-}
-
-pushd "$(dirname "$0")" &>/dev/null || exit 1
-
-mkdir -p xml
-
-# Convert base packages
-fetch repository2-1.xml xml/repository2-1.xml
-xsltproc convertpackages.xsl xml/repository2-1.xml > generated/packages.nix
-
-# Convert system images
-for img in android android-tv android-wear android-wear-cn google_apis google_apis_playstore
-do
-    fetch sys-img/$img/sys-img2-1.xml xml/$img-sys-img2-1.xml
-    xsltproc --stringparam imageType $img convertsystemimages.xsl xml/$img-sys-img2-1.xml > generated/system-images-$img.nix
-done
-
-# Convert system addons
-fetch addon2-1.xml xml/addon2-1.xml
-xsltproc convertaddons.xsl xml/addon2-1.xml > generated/addons.nix
-
-popd &>/dev/null
+./fetchrepo.sh && ./mkrepo.sh
diff --git a/pkgs/development/mobile/androidenv/generated/addons.nix b/pkgs/development/mobile/androidenv/generated/addons.nix
deleted file mode 100644
index 23a55595cce..00000000000
--- a/pkgs/development/mobile/androidenv/generated/addons.nix
+++ /dev/null
@@ -1,1092 +0,0 @@
-
-{fetchurl}:
-
-{
-  addons = {
-    
-    "10"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-10";
-      revision = "10";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-10_r02.zip";
-          sha1 = "cc0711857c881fa7534f90cf8cc09b8fe985484d";
-        };
-      
-      };
-    };
-    
-    "11"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-11";
-      revision = "11";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-11_r01.zip";
-          sha1 = "5eab5e81addee9f3576d456d205208314b5146a5";
-        };
-      
-      };
-    };
-    
-    "12"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-12";
-      revision = "12";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-12_r01.zip";
-          sha1 = "e9999f4fa978812174dfeceec0721c793a636e5d";
-        };
-      
-      };
-    };
-    
-    "13"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-13";
-      revision = "13";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-13_r01.zip";
-          sha1 = "3b153edd211c27dc736c893c658418a4f9041417";
-        };
-      
-      };
-    };
-    
-    "14"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-14";
-      revision = "14";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-14_r02.zip";
-          sha1 = "f8eb4d96ad0492b4c0db2d7e4f1a1a3836664d39";
-        };
-      
-      };
-    };
-    
-    "15"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-15";
-      revision = "15";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-15_r03.zip";
-          sha1 = "d0d2bf26805eb271693570a1aaec33e7dc3f45e9";
-        };
-      
-      };
-    };
-    
-    "16"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-16";
-      revision = "16";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-16_r04.zip";
-          sha1 = "ee6acf1b01020bfa8a8e24725dbc4478bee5e792";
-        };
-      
-      };
-    };
-    
-    "17"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-17";
-      revision = "17";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-17_r04.zip";
-          sha1 = "a076be0677f38df8ca5536b44dfb411a0c808c4f";
-        };
-      
-      };
-    };
-    
-    "18"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-18";
-      revision = "18";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-18_r04.zip";
-          sha1 = "6109603409debdd40854d4d4a92eaf8481462c8b";
-        };
-      
-      };
-    };
-    
-    "19"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-19";
-      revision = "19";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-19_r20.zip";
-          sha1 = "5b933abe830b2f25b4c0f171d45e9e0651e56311";
-        };
-      
-      };
-    };
-    
-    "21"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-21";
-      revision = "21";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-21_r01.zip";
-          sha1 = "66a754efb24e9bb07cc51648426443c7586c9d4a";
-        };
-      
-      };
-    };
-    
-    "22"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-22";
-      revision = "22";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-22_r01.zip";
-          sha1 = "5def0f42160cba8acff51b9c0c7e8be313de84f5";
-        };
-      
-      };
-    };
-    
-    "23"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-23";
-      revision = "23";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-23_r01.zip";
-          sha1 = "04c5cc1a7c88967250ebba9561d81e24104167db";
-        };
-      
-      };
-    };
-    
-    "24"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-24";
-      revision = "24";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-24_r1.zip";
-          sha1 = "31361c2868f27343ee917fbd259c1463821b6145";
-        };
-      
-      };
-    };
-    
-    "3"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-3";
-      revision = "3";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-3-r03.zip";
-          sha1 = "1f92abf3a76be66ae8032257fc7620acbd2b2e3a";
-        };
-      
-      };
-    };
-    
-    "4"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-4";
-      revision = "4";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-4_r02.zip";
-          sha1 = "9b6e86d8568558de4d606a7debc4f6049608dbd0";
-        };
-      
-      };
-    };
-    
-    "5"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-5";
-      revision = "5";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-5_r01.zip";
-          sha1 = "46eaeb56b645ee7ffa24ede8fa17f3df70db0503";
-        };
-      
-      };
-    };
-    
-    "6"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-6";
-      revision = "6";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-6_r01.zip";
-          sha1 = "5ff545d96e031e09580a6cf55713015c7d4936b2";
-        };
-      
-      };
-    };
-    
-    "7"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-7";
-      revision = "7";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-7_r01.zip";
-          sha1 = "2e7f91e0fe34fef7f58aeced973c6ae52361b5ac";
-        };
-      
-      };
-    };
-    
-    "8"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-8";
-      revision = "8";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-8_r02.zip";
-          sha1 = "3079958e7ec87222cac1e6b27bc471b27bf2c352";
-        };
-      
-      };
-    };
-    
-    "9"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-9";
-      revision = "9";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-9_r02.zip";
-          sha1 = "78664645a1e9accea4430814f8694291a7f1ea5d";
-        };
-      
-      };
-    };
-    
-    "12"."google_tv_addon" = {
-      name = "google_tv_addon";
-      path = "add-ons/addon-google_tv_addon-google-12";
-      revision = "12";
-      displayName = "Google TV Addon";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_tv-12_r02.zip";
-          sha1 = "92128a12e7e8b0fb5bac59153d7779b717e7b840";
-        };
-      
-      };
-    };
-    
-    "13"."google_tv_addon" = {
-      name = "google_tv_addon";
-      path = "add-ons/addon-google_tv_addon-google-13";
-      revision = "13";
-      displayName = "Google TV Addon";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_tv-13_r01.zip";
-          sha1 = "b73f7c66011ac8180b44aa4e83b8d78c66ea9a09";
-        };
-      
-      };
-    };
-    
-    "25"."google_apis" = {
-      name = "google_apis";
-      path = "add-ons/addon-google_apis-google-25";
-      revision = "25";
-      displayName = "Google APIs";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_apis-25_r1.zip";
-          sha1 = "550e83eea9513ab11c44919ac6da54b36084a9f3";
-        };
-      
-      };
-    };
-    
-  };
-
-  extras = {
-    
-
-    "extras;android;gapid;1" = {
-      name = "extras-android-gapid-1";
-      path = "extras/android/gapid/1";
-      revision = "1.0.3";
-      displayName = "GPU Debugging tools";
-      archives = {
-      linux = fetchurl {
-          url = "https://dl.google.com/android/repository/gapid_r01_linux.zip";
-          sha1 = "7c9ef7544cf0aea030bcc29bd8e12c04fd53e653";
-        };
-      macosx = fetchurl {
-          url = "https://dl.google.com/android/repository/gapid_r01_osx.zip";
-          sha1 = "597eb271349d890566274861eba2770a84ee4c69";
-        };
-      
-      };
-    };
-    
-
-    "extras;android;gapid;3" = {
-      name = "extras-android-gapid-3";
-      path = "extras/android/gapid/3";
-      revision = "3.1.0";
-      displayName = "GPU Debugging tools";
-      archives = {
-      linux = fetchurl {
-          url = "https://dl.google.com/android/repository/gapid_2994895_linux.zip";
-          sha1 = "e40371ba191f617e4e79bc760d0ab2948ba8cf46";
-        };
-      macosx = fetchurl {
-          url = "https://dl.google.com/android/repository/gapid_2994895_osx.zip";
-          sha1 = "ad86a2350b7b9908300277bf03d41649659de384";
-        };
-      
-      };
-    };
-    
-
-    "extras;android;m2repository" = {
-      name = "extras-android-m2repository";
-      path = "extras/android/m2repository";
-      revision = "47.0.0";
-      displayName = "Android Support Repository";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android_m2repository_r47.zip";
-          sha1 = "a0d22beacc106a6977321f2b07d692ce4979e96a";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;Android_Emulator_Hypervisor_Driver" = {
-      name = "extras-google-Android_Emulator_Hypervisor_Driver";
-      path = "extras/google/Android_Emulator_Hypervisor_Driver";
-      revision = "1.4.0";
-      displayName = "Android Emulator Hypervisor Driver for AMD Processors (installer)";
-      archives = {
-      
-      };
-    };
-    
-
-    "extras;google;admob_ads_sdk" = {
-      name = "extras-google-admob_ads_sdk";
-      path = "extras/google/admob_ads_sdk";
-      revision = "11";
-      displayName = "Google AdMob Ads SDK";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/GoogleAdMobAdsSdkAndroid-6.4.1.zip";
-          sha1 = "0102859d9575baa0bf4fd5eb422af2ad0fe6cb82";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;analytics_sdk_v2" = {
-      name = "extras-google-analytics_sdk_v2";
-      path = "extras/google/analytics_sdk_v2";
-      revision = "3";
-      displayName = "Google Analytics App Tracking SDK";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/GoogleAnalyticsAndroid_2.0beta5.zip";
-          sha1 = "dc14026bf0ce78315cb5dd00552607de0894de83";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;auto" = {
-      name = "extras-google-auto";
-      path = "extras/google/auto";
-      revision = "1.1";
-      displayName = "Android Auto Desktop Head Unit emulator";
-      archives = {
-      linux = fetchurl {
-          url = "https://dl.google.com/android/repository/desktop-head-unit-linux_r01.1.zip";
-          sha1 = "202a6e1b3009a0eb815f8c672d2d5b3717de6169";
-        };
-      macosx = fetchurl {
-          url = "https://dl.google.com/android/repository/desktop-head-unit-macosx_r01.1.zip";
-          sha1 = "8179cbb3914493ebc5eb65b731cba061582f2e84";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;gcm" = {
-      name = "extras-google-gcm";
-      path = "extras/google/gcm";
-      revision = "3";
-      displayName = "Google Cloud Messaging for Android Library";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/gcm_r03.zip";
-          sha1 = "ad066fd0dc7fc99d8aadac09c65a3c2519fbc7bf";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;google_play_services" = {
-      name = "extras-google-google_play_services";
-      path = "extras/google/google_play_services";
-      revision = "49";
-      displayName = "Google Play services";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_play_services_v16_1_rc09.zip";
-          sha1 = "f95bf19634e2ab0430923247fe2c50246432d2e9";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;google_play_services_froyo" = {
-      name = "extras-google-google_play_services_froyo";
-      path = "extras/google/google_play_services_froyo";
-      revision = "12";
-      displayName = "Google Play services for Froyo";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_play_services_3265130_r12.zip";
-          sha1 = "92558dbc380bba3d55d0ec181167fb05ce7c79d9";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;instantapps" = {
-      name = "extras-google-instantapps";
-      path = "extras/google/instantapps";
-      revision = "1.9.0";
-      displayName = "Google Play Instant Development SDK";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/iasdk-1.9.0-1566514721.zip";
-          sha1 = "c498367dcd7db30154b3e70c4ddbb1b0ea4b8d20";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;m2repository" = {
-      name = "extras-google-m2repository";
-      path = "extras/google/m2repository";
-      revision = "58";
-      displayName = "Google Repository";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/google_m2repository_gms_v11_3_rc05_wear_2_0_5.zip";
-          sha1 = "05086add9e3a0eb1b67111108d7757a4337c3f10";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;market_apk_expansion" = {
-      name = "extras-google-market_apk_expansion";
-      path = "extras/google/market_apk_expansion";
-      revision = "1";
-      displayName = "Google Play APK Expansion library";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/market_apk_expansion-r03.zip";
-          sha1 = "5305399dc1a56814e86b8459ce24871916f78b8c";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;market_licensing" = {
-      name = "extras-google-market_licensing";
-      path = "extras/google/market_licensing";
-      revision = "1";
-      displayName = "Google Play Licensing Library";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/market_licensing-r02.zip";
-          sha1 = "355e8dc304a92a5616db235af8ee7bd554356254";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;simulators" = {
-      name = "extras-google-simulators";
-      path = "extras/google/simulators";
-      revision = "1";
-      displayName = "Android Auto API Simulators";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/simulator_r01.zip";
-          sha1 = "4fb5344e34e8faab4db18af07dace44c50db26a7";
-        };
-      
-      };
-    };
-    
-
-    "extras;google;usb_driver" = {
-      name = "extras-google-usb_driver";
-      path = "extras/google/usb_driver";
-      revision = "12";
-      displayName = "Google USB Driver";
-      archives = {
-      
-      };
-    };
-    
-
-    "extras;google;webdriver" = {
-      name = "extras-google-webdriver";
-      path = "extras/google/webdriver";
-      revision = "2";
-      displayName = "Google Web Driver";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/webdriver_r02.zip";
-          sha1 = "13f3a3b2670a5fc04a7342861644be9a01b07e38";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0.zip";
-          sha1 = "b621b9d5adf273bb0725948589863e60e96eeaf1";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha8.zip";
-          sha1 = "cd13d16a8f0198c1d6040ec8b1d0d4e5bb7feb6a";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha8.zip";
-          sha1 = "cd13d16a8f0198c1d6040ec8b1d0d4e5bb7feb6a";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta1";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-beta1";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta1.zip";
-          sha1 = "042c25575e7650e96f0f5f5d1d3c54ed38eb821a";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta2";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta2";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-beta2";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta2.zip";
-          sha1 = "28492fd42b20ae1586591ff906556d459cfdaae8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta3";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta3";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-beta3";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta3.zip";
-          sha1 = "268e763fa64bd217d8d830e59ce76be19aaba631";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta4";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-beta4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta4.zip";
-          sha1 = "2213bf37e7a2869db2635895b8e90ca6841e79d2";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta5";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta5";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-beta5";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta5.zip";
-          sha1 = "3918cfef73e64048d0b3e048068e208b414e7e91";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.1";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.1";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.1";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.1.zip";
-          sha1 = "76f8823def9a6da8954a54737762a6820bc1d043";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.2";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.2";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.2";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.2.zip";
-          sha1 = "96d7ff669f0e808e9833b2c2e320702826ccc8be";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0.zip";
-          sha1 = "70acf99689b933bc6735645d5c3d92b91954b6cb";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha8.zip";
-          sha1 = "7912ba03b04831f918f523648f118c4ee4da7604";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha8.zip";
-          sha1 = "7912ba03b04831f918f523648f118c4ee4da7604";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta1";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta1";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-beta1";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta1.zip";
-          sha1 = "11f2f5cec4ff02986bad75435e5be77b704b4c64";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta2";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta2";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-beta2";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta2.zip";
-          sha1 = "623939865ede2e5c2c975dc55963e0d182bcce95";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta3";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta3";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-beta3";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta3.zip";
-          sha1 = "d78bb6a8ce92005fb1e4ed55d892a65b4258c60b";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta4";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-beta4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta4.zip";
-          sha1 = "dc60844aab93a09a54a3c107685a77b18d7c1c39";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta5";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta5";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-beta5";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta5.zip";
-          sha1 = "4660f6c7a576ea1364f0c3225db71c29ca660d9a";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.1";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.1";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.1";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.1.zip";
-          sha1 = "342b0894b8651fff37586f80f383733e97aba9f9";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.2";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.2";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.2";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.2.zip";
-          sha1 = "3d9688a50fe0ed7348275f85d1b02278f616d8a4";
-        };
-      
-      };
-    };
-    
-  };
-}
-  
diff --git a/pkgs/development/mobile/androidenv/generated/packages.nix b/pkgs/development/mobile/androidenv/generated/packages.nix
deleted file mode 100644
index 4ac14c419ed..00000000000
--- a/pkgs/development/mobile/androidenv/generated/packages.nix
+++ /dev/null
@@ -1,2563 +0,0 @@
-
-{fetchurl}:
-
-{
-  
-  "build-tools"."17.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/17.0.0";
-    revision = "17.0.0";
-    displayName = "Android SDK Build-Tools 17";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r17-linux.zip";
-        sha1 = "2c2872bc3806aabf16a12e3959c2183ddc866e6d";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r17-macosx.zip";
-        sha1 = "602ee709be9dbb8f179b1e4075148a57f9419930";
-      };
-      
-    };
-  };
-  
-  "build-tools"."18.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/18.0.1";
-    revision = "18.0.1";
-    displayName = "Android SDK Build-Tools 18.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r18.0.1-linux.zip";
-        sha1 = "f11618492b0d2270c332325d45d752d3656a9640";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r18.0.1-macosx.zip";
-        sha1 = "d84f5692fb44d60fc53e5b2507cebf9f24626902";
-      };
-      
-    };
-  };
-  
-  "build-tools"."18.1.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/18.1.0";
-    revision = "18.1.0";
-    displayName = "Android SDK Build-Tools 18.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r18.1-linux.zip";
-        sha1 = "f314a0599e51397f0886fe888b50dd98f2f050d8";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r18.1-macosx.zip";
-        sha1 = "16ddb299b8b43063e5bb3387ec17147c5053dfd8";
-      };
-      
-    };
-  };
-  
-  "build-tools"."18.1.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/18.1.1";
-    revision = "18.1.1";
-    displayName = "Android SDK Build-Tools 18.1.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r18.1.1-linux.zip";
-        sha1 = "68c9acbfc0cec2d51b19efaed39831a17055d998";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r18.1.1-macosx.zip";
-        sha1 = "a9d9d37f6ddf859e57abc78802a77aaa166e48d4";
-      };
-      
-    };
-  };
-  
-  "build-tools"."19.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/19.0.0";
-    revision = "19.0.0";
-    displayName = "Android SDK Build-Tools 19";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19-linux.zip";
-        sha1 = "55c1a6cf632e7d346f0002b275ec41fd3137fd83";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19-macosx.zip";
-        sha1 = "86ec1c12db1bc446b7bcaefc5cc14eb361044e90";
-      };
-      
-    };
-  };
-  
-  "build-tools"."19.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/19.0.1";
-    revision = "19.0.1";
-    displayName = "Android SDK Build-Tools 19.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.0.1-linux.zip";
-        sha1 = "18d2312dc4368858914213087f4e61445aca4517";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.0.1-macosx.zip";
-        sha1 = "efaf50fb19a3edb8d03efbff76f89a249ad2920b";
-      };
-      
-    };
-  };
-  
-  "build-tools"."19.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/19.0.2";
-    revision = "19.0.2";
-    displayName = "Android SDK Build-Tools 19.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.0.2-linux.zip";
-        sha1 = "a03a6bdea0091aea32e1b35b90a7294c9f04e3dd";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.0.2-macosx.zip";
-        sha1 = "145bc43065d45f756d99d87329d899052b9a9288";
-      };
-      
-    };
-  };
-  
-  "build-tools"."19.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/19.0.3";
-    revision = "19.0.3";
-    displayName = "Android SDK Build-Tools 19.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.0.3-linux.zip";
-        sha1 = "c2d6055478e9d2d4fba476ee85f99181ddd1160c";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.0.3-macosx.zip";
-        sha1 = "651cf8754373b2d52e7f6aab2c52eabffe4e9ea4";
-      };
-      
-    };
-  };
-  
-  "build-tools"."19.1.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/19.1.0";
-    revision = "19.1.0";
-    displayName = "Android SDK Build-Tools 19.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.1-linux.zip";
-        sha1 = "1ff20ac15fa47a75d00346ec12f180d531b3ca89";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r19.1-macosx.zip";
-        sha1 = "0d11aae3417de1efb4b9a0e0a7855904a61bcec1";
-      };
-      
-    };
-  };
-  
-  "build-tools"."20.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/20.0.0";
-    revision = "20.0.0";
-    displayName = "Android SDK Build-Tools 20";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r20-linux.zip";
-        sha1 = "b688905526a5584d1327a662d871a635ff502758";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r20-macosx.zip";
-        sha1 = "1240f629411c108a714c4ddd756937c7fab93f83";
-      };
-      
-    };
-  };
-  
-  "build-tools"."21.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/21.0.0";
-    revision = "21.0.0";
-    displayName = "Android SDK Build-Tools 21";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21-linux.zip";
-        sha1 = "4933328fdeecbd554a29528f254f4993468e1cf4";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21-macosx.zip";
-        sha1 = "9bef7989b51436bd4e5114d8a0330359f077cbfa";
-      };
-      
-    };
-  };
-  
-  "build-tools"."21.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/21.0.1";
-    revision = "21.0.1";
-    displayName = "Android SDK Build-Tools 21.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.0.1-linux.zip";
-        sha1 = "e573069eea3e5255e7a65bedeb767f4fd0a5f49a";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.0.1-macosx.zip";
-        sha1 = "b60c8f9b810c980abafa04896706f3911be1ade7";
-      };
-      
-    };
-  };
-  
-  "build-tools"."21.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/21.0.2";
-    revision = "21.0.2";
-    displayName = "Android SDK Build-Tools 21.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.0.2-linux.zip";
-        sha1 = "e1236ab8897b62b57414adcf04c132567b2612a5";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.0.2-macosx.zip";
-        sha1 = "f17471c154058f3734729ef3cc363399b1cd3de1";
-      };
-      
-    };
-  };
-  
-  "build-tools"."21.1.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/21.1.0";
-    revision = "21.1.0";
-    displayName = "Android SDK Build-Tools 21.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.1-linux.zip";
-        sha1 = "b7455e543784d52a8925f960bc880493ed1478cb";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.1-macosx.zip";
-        sha1 = "df619356c2359aa5eacdd48699d15b335d9bd246";
-      };
-      
-    };
-  };
-  
-  "build-tools"."21.1.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/21.1.1";
-    revision = "21.1.1";
-    displayName = "Android SDK Build-Tools 21.1.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.1.1-linux.zip";
-        sha1 = "1c712ee3a1ba5a8b0548f9c32f17d4a0ddfd727d";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.1.1-macosx.zip";
-        sha1 = "836a146eab0504aa9387a5132e986fe7c7381571";
-      };
-      
-    };
-  };
-  
-  "build-tools"."21.1.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/21.1.2";
-    revision = "21.1.2";
-    displayName = "Android SDK Build-Tools 21.1.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.1.2-linux.zip";
-        sha1 = "5e35259843bf2926113a38368b08458735479658";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r21.1.2-macosx.zip";
-        sha1 = "e7c906b4ba0eea93b32ba36c610dbd6b204bff48";
-      };
-      
-    };
-  };
-  
-  "build-tools"."22.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/22.0.0";
-    revision = "22.0.0";
-    displayName = "Android SDK Build-Tools 22";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r22-linux.zip";
-        sha1 = "a8a1619dd090e44fac957bce6842e62abf87965b";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r22-macosx.zip";
-        sha1 = "af95429b24088d704bc5db9bd606e34ac1b82c0d";
-      };
-      
-    };
-  };
-  
-  "build-tools"."22.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/22.0.1";
-    revision = "22.0.1";
-    displayName = "Android SDK Build-Tools 22.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r22.0.1-linux.zip";
-        sha1 = "da8b9c5c3ede39298e6cf0283c000c2ee9029646";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r22.0.1-macosx.zip";
-        sha1 = "53dad7f608e01d53b17176ba11165acbfccc5bbf";
-      };
-      
-    };
-  };
-  
-  "build-tools"."23.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/23.0.0";
-    revision = "23.0.0";
-    displayName = "Android SDK Build-Tools 23";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23-linux.zip";
-        sha1 = "c1d6209212b01469f80fa804e0c1d39a06bc9060";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23-macosx.zip";
-        sha1 = "90ba6e716f7703a236cd44b2e71c5ff430855a03";
-      };
-      
-    };
-  };
-  
-  "build-tools"."23.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/23.0.1";
-    revision = "23.0.1";
-    displayName = "Android SDK Build-Tools 23.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23.0.1-linux.zip";
-        sha1 = "b6ba7c399d5fa487d95289d8832e4ad943aed556";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23.0.1-macosx.zip";
-        sha1 = "d96ec1522721e9a179ae2c591c99f75d31d39718";
-      };
-      
-    };
-  };
-  
-  "build-tools"."23.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/23.0.2";
-    revision = "23.0.2";
-    displayName = "Android SDK Build-Tools 23.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23.0.2-linux.zip";
-        sha1 = "8a9f2b37f6fcf7a9fa784dc21aeaeb41bbb9f2c3";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23.0.2-macosx.zip";
-        sha1 = "482c4cbceef8ff58aefd92d8155a38610158fdaf";
-      };
-      
-    };
-  };
-  
-  "build-tools"."23.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/23.0.3";
-    revision = "23.0.3";
-    displayName = "Android SDK Build-Tools 23.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23.0.3-linux.zip";
-        sha1 = "368f2600feac7e9b511b82f53d1f2240ae4a91a3";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r23.0.3-macosx.zip";
-        sha1 = "fbc98cd303fd15a31d472de6c03bd707829f00b0";
-      };
-      
-    };
-  };
-  
-  "build-tools"."24.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/24.0.0";
-    revision = "24.0.0";
-    displayName = "Android SDK Build-Tools 24";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24-linux.zip";
-        sha1 = "c6271c4d78a5612ea6c7150688bcd5b7313de8d1";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24-macosx.zip";
-        sha1 = "97fc4ed442f23989cc488d02c1d1de9bdde241de";
-      };
-      
-    };
-  };
-  
-  "build-tools"."24.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/24.0.1";
-    revision = "24.0.1";
-    displayName = "Android SDK Build-Tools 24.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24.0.1-linux.zip";
-        sha1 = "84f18c392919a074fcbb9b1d967984e6b2fef8b4";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24.0.1-macosx.zip";
-        sha1 = "5c6457fcdfa07724fb086d8ff4e8316fc0742848";
-      };
-      
-    };
-  };
-  
-  "build-tools"."24.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/24.0.2";
-    revision = "24.0.2";
-    displayName = "Android SDK Build-Tools 24.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24.0.2-linux.zip";
-        sha1 = "f199a7a788c3fefbed102eea34d6007737b803cf";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24.0.2-macosx.zip";
-        sha1 = "8bb8fc575477491d5957de743089df412de55cda";
-      };
-      
-    };
-  };
-  
-  "build-tools"."24.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/24.0.3";
-    revision = "24.0.3";
-    displayName = "Android SDK Build-Tools 24.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24.0.3-linux.zip";
-        sha1 = "9e8cc49d66e03fa1a8ecc1ac3e58f1324f5da304";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r24.0.3-macosx.zip";
-        sha1 = "a01c15f1b105c34595681075e1895d58b3fff48c";
-      };
-      
-    };
-  };
-  
-  "build-tools"."25.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/25.0.0";
-    revision = "25.0.0";
-    displayName = "Android SDK Build-Tools 25";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25-linux.zip";
-        sha1 = "f2bbda60403e75cabd0f238598c3b4dfca56ea44";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25-macosx.zip";
-        sha1 = "273c5c29a65cbed00e44f3aa470bbd7dce556606";
-      };
-      
-    };
-  };
-  
-  "build-tools"."25.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/25.0.1";
-    revision = "25.0.1";
-    displayName = "Android SDK Build-Tools 25.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25.0.1-linux.zip";
-        sha1 = "ff063d252ab750d339f5947d06ff782836f22bac";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25.0.1-macosx.zip";
-        sha1 = "7bf7f22d7d48ef20b6ab0e3d7a2912e5c088340f";
-      };
-      
-    };
-  };
-  
-  "build-tools"."25.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/25.0.2";
-    revision = "25.0.2";
-    displayName = "Android SDK Build-Tools 25.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25.0.2-linux.zip";
-        sha1 = "ff953c0177e317618fda40516f3e9d95fd43c7ae";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25.0.2-macosx.zip";
-        sha1 = "12a5204bb3b6e39437535469fde7ddf42da46b16";
-      };
-      
-    };
-  };
-  
-  "build-tools"."25.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/25.0.3";
-    revision = "25.0.3";
-    displayName = "Android SDK Build-Tools 25.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25.0.3-linux.zip";
-        sha1 = "db95f3a0ae376534d4d69f4cdb6fad20649f3509";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r25.0.3-macosx.zip";
-        sha1 = "160d2fefb5ce68e443427fc30a793a703b63e26e";
-      };
-      
-    };
-  };
-  
-  "build-tools"."26.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/26.0.0";
-    revision = "26.0.0";
-    displayName = "Android SDK Build-Tools 26";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26-linux.zip";
-        sha1 = "1cbe72929876f8a872ab1f1b1040a9f720261f59";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26-macosx.zip";
-        sha1 = "d01a1aeca03747245f1f5936b3cb01759c66d086";
-      };
-      
-    };
-  };
-  
-  "build-tools"."26.0.0-rc1" = {
-    
-    name = "build-tools";
-    path = "build-tools/26.0.0-rc1";
-    revision = "26.0.0-rc1";
-    displayName = "Android SDK Build-Tools 26-rc1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26-rc1-linux.zip";
-        sha1 = "8cd6388dc96db2d7a49d06159cf990d3bbc78d04";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26-rc1-macosx.zip";
-        sha1 = "5c5a1de7d5f4f000d36ae349229fe0be846d6137";
-      };
-      
-    };
-  };
-  
-  "build-tools"."26.0.0-rc2" = {
-    
-    name = "build-tools";
-    path = "build-tools/26.0.0-rc2";
-    revision = "26.0.0-rc2";
-    displayName = "Android SDK Build-Tools 26-rc2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26-rc2-linux.zip";
-        sha1 = "629bbd8d2e415bf64871fb0b4c0540fd6d0347a0";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26-rc2-macosx.zip";
-        sha1 = "cb1eb738a1f7003025af267a9b8cc2d259533c70";
-      };
-      
-    };
-  };
-  
-  "build-tools"."26.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/26.0.1";
-    revision = "26.0.1";
-    displayName = "Android SDK Build-Tools 26.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26.0.1-linux.zip";
-        sha1 = "5378c2c78091b414d0eac40a6bd37f2faa31a365";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26.0.1-macosx.zip";
-        sha1 = "cbde59de198916b390777dd0227921bfa2120832";
-      };
-      
-    };
-  };
-  
-  "build-tools"."26.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/26.0.2";
-    revision = "26.0.2";
-    displayName = "Android SDK Build-Tools 26.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26.0.2-linux.zip";
-        sha1 = "5b2b7b66c7bf2151f2af183b5b50a17808850592";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26.0.2-macosx.zip";
-        sha1 = "d9ed7c7f149ce38be5dc08979aea8acec1459ca0";
-      };
-      
-    };
-  };
-  
-  "build-tools"."26.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/26.0.3";
-    revision = "26.0.3";
-    displayName = "Android SDK Build-Tools 26.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26.0.3-linux.zip";
-        sha1 = "8a2e6c1bcd845844523a68aa17e5442f0dce328c";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r26.0.3-macosx.zip";
-        sha1 = "5bb90ed935d99e5bc90686f43b852e68c5ad40df";
-      };
-      
-    };
-  };
-  
-  "build-tools"."27.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/27.0.0";
-    revision = "27.0.0";
-    displayName = "Android SDK Build-Tools 27";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27-linux.zip";
-        sha1 = "28542332ba97cf4a08c3eddfcf5edd70e3cf1260";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27-macosx.zip";
-        sha1 = "fb4e8d7e6b8d29a77090e34024077a80458d5ae1";
-      };
-      
-    };
-  };
-  
-  "build-tools"."27.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/27.0.1";
-    revision = "27.0.1";
-    displayName = "Android SDK Build-Tools 27.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27.0.1-linux.zip";
-        sha1 = "7f4eedb1077ef948b848040dcd15de9e8a759f4a";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27.0.1-macosx.zip";
-        sha1 = "1edd07bfdbadd95652d093040e16d858f7489594";
-      };
-      
-    };
-  };
-  
-  "build-tools"."27.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/27.0.2";
-    revision = "27.0.2";
-    displayName = "Android SDK Build-Tools 27.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27.0.2-linux.zip";
-        sha1 = "b687ddf6be84f11607871138aad32cf857d0b837";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27.0.2-macosx.zip";
-        sha1 = "6d5d9cf2a47877f273f4b742b19e712a051a31be";
-      };
-      
-    };
-  };
-  
-  "build-tools"."27.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/27.0.3";
-    revision = "27.0.3";
-    displayName = "Android SDK Build-Tools 27.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27.0.3-linux.zip";
-        sha1 = "d85e7a6320eddffe7eeace3437605079dac938ca";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r27.0.3-macosx.zip";
-        sha1 = "61d9fb18790c68d66ff73bf1e7ad56bc1f1eef2d";
-      };
-      
-    };
-  };
-  
-  "build-tools"."28.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/28.0.0";
-    revision = "28.0.0";
-    displayName = "Android SDK Build-Tools 28";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28-linux.zip";
-        sha1 = "d9f8a754d833ccd334f56fcc6089c5925cd82abb";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28-macosx.zip";
-        sha1 = "72088d32d1d82cc3c2cf7cf6618b6130c0c84ade";
-      };
-      
-    };
-  };
-  
-  "build-tools"."28.0.0-rc1" = {
-    
-    name = "build-tools";
-    path = "build-tools/28.0.0-rc1";
-    revision = "28.0.0-rc1";
-    displayName = "Android SDK Build-Tools 28-rc1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28-rc1-linux.zip";
-        sha1 = "1601977fae25fd478bcfaa0481ca5ea3c609d840";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28-rc1-macosx.zip";
-        sha1 = "2c77821967a2330b7b227072d0b1c02ef19fe2fc";
-      };
-      
-    };
-  };
-  
-  "build-tools"."28.0.0-rc2" = {
-    
-    name = "build-tools";
-    path = "build-tools/28.0.0-rc2";
-    revision = "28.0.0-rc2";
-    displayName = "Android SDK Build-Tools 28-rc2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28-rc2-linux.zip";
-        sha1 = "efe9c0dde0646a07544c864276390ca6e96b24dc";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28-rc2-macosx.zip";
-        sha1 = "0d0314b353589feb10e528b44c5a685b6658d797";
-      };
-      
-    };
-  };
-  
-  "build-tools"."28.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/28.0.1";
-    revision = "28.0.1";
-    displayName = "Android SDK Build-Tools 28.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28.0.1-linux.zip";
-        sha1 = "ee70dfa1fccb58b37cebc9544830511f36a137a0";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28.0.1-macosx.zip";
-        sha1 = "aeef42ad953f1630dd6f5d71eefdc0b825211462";
-      };
-      
-    };
-  };
-  
-  "build-tools"."28.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/28.0.2";
-    revision = "28.0.2";
-    displayName = "Android SDK Build-Tools 28.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28.0.2-linux.zip";
-        sha1 = "b4492209810a3fd48deaa982f9852fef12433d55";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28.0.2-macosx.zip";
-        sha1 = "c10dd5a7825578622fb362a8a34f76eb3ba0c0a9";
-      };
-      
-    };
-  };
-  
-  "build-tools"."28.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/28.0.3";
-    revision = "28.0.3";
-    displayName = "Android SDK Build-Tools 28.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28.0.3-linux.zip";
-        sha1 = "ea6f2f7103cd9da9ff0bdf6e37fbbba548fa4165";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r28.0.3-macosx.zip";
-        sha1 = "f8c333a2991b1ab05a671bc6248b78e00edcd83a";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.0" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.0";
-    revision = "29.0.0";
-    displayName = "Android SDK Build-Tools 29";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-linux.zip";
-        sha1 = "ad314caf1802209c4b00a5f3517af5ceb0d48eae";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-macosx.zip";
-        sha1 = "35dc6bc7a53bd9d206847e72f02cab21cfdaa869";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.0-rc1" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.0-rc1";
-    revision = "29.0.0-rc1";
-    displayName = "Android SDK Build-Tools 29-rc1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-rc1-linux.zip";
-        sha1 = "1c897f5885ac5468613e40e1ea598c21c05d345d";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-rc1-macosx.zip";
-        sha1 = "f066c0d9ea2f0d8a0a9cc7b2ca0a467a570ab034";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.0-rc2" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.0-rc2";
-    revision = "29.0.0-rc2";
-    displayName = "Android SDK Build-Tools 29-rc2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-rc2-linux.zip";
-        sha1 = "b4b41d429c35b42db07b6c65d4aa998ba8c4093c";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-rc2-macosx.zip";
-        sha1 = "7a960367999169ccac5dbc60817e5f1725c4c738";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.0-rc3" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.0-rc3";
-    revision = "29.0.0-rc3";
-    displayName = "Android SDK Build-Tools 29-rc3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-rc3-linux.zip";
-        sha1 = "8b7177f198e8b92da8f9537aaf859f6edf222b01";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29-rc3-macosx.zip";
-        sha1 = "643e8d76625f6e2cfcd5494e50bae5e14725ec0c";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.1" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.1";
-    revision = "29.0.1";
-    displayName = "Android SDK Build-Tools 29.0.1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29.0.1-linux.zip";
-        sha1 = "fc209e5d91ab2daeac24345a5cb17261940547e4";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29.0.1-macosx.zip";
-        sha1 = "46ae9b1d1e2a67241d7da9c2cd8eae42f24cc6cd";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.2" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.2";
-    revision = "29.0.2";
-    displayName = "Android SDK Build-Tools 29.0.2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29.0.2-linux.zip";
-        sha1 = "c0fc7e5c37ac96bfd0c611802e8ab36d0e71b398";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29.0.2-macosx.zip";
-        sha1 = "f781d9e03d5c2debcf51fed3792ee7a9d066723f";
-      };
-      
-    };
-  };
-  
-  "build-tools"."29.0.3" = {
-    
-    name = "build-tools";
-    path = "build-tools/29.0.3";
-    revision = "29.0.3";
-    displayName = "Android SDK Build-Tools 29.0.3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29.0.3-linux.zip";
-        sha1 = "64efff52165cda5e31848acafa46a05e3f3b4651";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r29.0.3-macosx.zip";
-        sha1 = "76520eb7712fb0bb4c023b55c6f65588ee268289";
-      };
-      
-    };
-  };
-  
-  "build-tools"."30.0.0-rc1" = {
-    
-    name = "build-tools";
-    path = "build-tools/30.0.0-rc1";
-    revision = "30.0.0-rc1";
-    displayName = "Android SDK Build-Tools 30-rc1";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r30-rc1-linux.zip";
-        sha1 = "afcb370bb6956bbf9e90557230088a3e1417e8a8";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/build-tools_r30-rc1-macosx.zip";
-        sha1 = "2761a0ea9466685aaaf93e85bf8bd47575bc91b8";
-      };
-      
-    };
-  };
-  
-  "cmake"."3.10.2" = {
-    
-    name = "cmake";
-    path = "cmake/3.10.2.4988404";
-    revision = "3.10.2";
-    displayName = "CMake 3.10.2.4988404";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/cmake-3.10.2-darwin-x86_64.zip";
-        sha1 = "f227a85cb53dcb927ac52a5a717f647c4a29bf3b";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/cmake-3.10.2-linux-x86_64.zip";
-        sha1 = "439e8799bf59f724f104bf62784b2985f1bfe561";
-      };
-      
-    };
-  };
-  
-  "cmake"."3.6.4111459" = {
-    
-    name = "cmake";
-    path = "cmake/3.6.4111459";
-    revision = "3.6.4111459";
-    displayName = "CMake 3.6.4111459";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/cmake-3.6.4111459-darwin-x86_64.zip";
-        sha1 = "c9b02d630079783c6d67cb91488b622cfcd9765c";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/cmake-3.6.4111459-linux-x86_64.zip";
-        sha1 = "71c539b9c33f0943e9ad6251fea0b161c0b70782";
-      };
-      
-    };
-  };
-  
-  "cmdline-tools"."1.0" = {
-    
-    name = "cmdline-tools";
-    path = "cmdline-tools/1.0";
-    revision = "1.0";
-    displayName = "Android SDK Command-line Tools";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip";
-        sha1 = "6ffc5bd72db2c755f9b374ed829202262a6d8aaf";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/commandlinetools-mac-6200805_latest.zip";
-        sha1 = "23f803c07e392bb769507c88b23c2c7868cc7a6f";
-      };
-      
-    };
-  };
-  
-  "docs"."1" = {
-    
-    name = "docs";
-    path = "docs";
-    revision = "1";
-    displayName = "Documentation for Android SDK";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/docs-24_r01.zip";
-          sha1 = "eef58238949ee9544876cb3e002f2d58e4ee7b5d";
-        };
-      
-    };
-  };
-  
-  "emulator"."30.0.0".macosx = {
-    
-    name = "emulator";
-    path = "emulator";
-    revision = "30.0.0";
-    displayName = "Android Emulator";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/emulator-darwin-6203977.zip";
-        sha1 = "3bb965869577be4e62dec053de34c279f5024a12";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/emulator-linux-6203977.zip";
-        sha1 = "356cac370c03460ca82166464de7ecd7da1f4a49";
-      };
-      
-    };
-  };
-  
-  "emulator"."28.0.25".windows = {
-    
-    name = "emulator";
-    path = "emulator";
-    revision = "28.0.25";
-    displayName = "Android Emulator";
-    archives = {
-      
-    };
-  };
-  
-  "emulator"."30.0.3".linux = {
-    
-    name = "emulator";
-    path = "emulator";
-    revision = "30.0.3";
-    displayName = "Android Emulator";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/emulator-linux-6258612.zip";
-        sha1 = "a891e1532443a55c3ce9986b484effdabd842f8e";
-      };
-      
-    };
-  };
-  
-  "emulator"."30.0.2".macosx = {
-    
-    name = "emulator";
-    path = "emulator";
-    revision = "30.0.2";
-    displayName = "Android Emulator";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/emulator-darwin-6237347.zip";
-        sha1 = "702b6a050a230b3b45f667867f6fc99b3f973d9a";
-      };
-      
-    };
-  };
-  
-  "lldb"."2.0.2558144" = {
-    
-    name = "lldb";
-    path = "lldb/2.0";
-    revision = "2.0.2558144";
-    displayName = "LLDB 2.0";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.0.2558144-darwin-x86_64.zip";
-        sha1 = "d92e2f4c8284413eed4f27986e62b167d947033c";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.0.2558144-linux-x86_64.zip";
-        sha1 = "e7060d9b2ba58b28fd7b1a0ea85a151c8371a326";
-      };
-      
-    };
-  };
-  
-  "lldb"."2.1.2852477" = {
-    
-    name = "lldb";
-    path = "lldb/2.1";
-    revision = "2.1.2852477";
-    displayName = "LLDB 2.1";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.1.2852477-darwin-x86_64.zip";
-        sha1 = "d1e33880a53f1aa8c7e73534adef83a06f091185";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.1.2852477-linux-x86_64.zip";
-        sha1 = "eb9b96d320210fdfe82495b0597ad43e77f1c240";
-      };
-      
-    };
-  };
-  
-  "lldb"."2.2.3271982" = {
-    
-    name = "lldb";
-    path = "lldb/2.2";
-    revision = "2.2.3271982";
-    displayName = "LLDB 2.2";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.2.3271982-darwin-x86_64.zip";
-        sha1 = "62089f4e35775e6cedb82d1fa377fdc1de898005";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.2.3271982-linux-x86_64.zip";
-        sha1 = "413649617d97dd9ef163528f64c0500e1b7c4113";
-      };
-      
-    };
-  };
-  
-  "lldb"."2.3.3614996" = {
-    
-    name = "lldb";
-    path = "lldb/2.3";
-    revision = "2.3.3614996";
-    displayName = "LLDB 2.3";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.3.3614996-darwin-x86_64.zip";
-        sha1 = "6b0df112c7b9fa41654497fde2fcce990c831e52";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-2.3.3614996-linux-x86_64.zip";
-        sha1 = "d7abe655650efe9f6989df31835fa3b3f95c2d13";
-      };
-      
-    };
-  };
-  
-  "lldb"."3.0.4213617" = {
-    
-    name = "lldb";
-    path = "lldb/3.0";
-    revision = "3.0.4213617";
-    displayName = "LLDB 3.0";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-3.0.4213617-darwin-x86_64.zip";
-        sha1 = "2492651690a215317b86c755cd4d584ec9838677";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-3.0.4213617-linux-x86_64.zip";
-        sha1 = "61d49b6a58953faa61546d631409af5f60d8d9db";
-      };
-      
-    };
-  };
-  
-  "lldb"."3.1.4508709" = {
-    
-    name = "lldb";
-    path = "lldb/3.1";
-    revision = "3.1.4508709";
-    displayName = "LLDB 3.1";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-3.1.4508709-darwin-x86_64.zip";
-        sha1 = "2b37aa55b81a7e5b8a369febf1ac0bad6c7c5d58";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/lldb-3.1.4508709-linux-x86_64.zip";
-        sha1 = "462711c9ee94fec9ff8be5fa8180afec04d1af6f";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."21.1.6210238-rc1" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "21.1.6210238-rc1";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21b-beta1-darwin-x86_64.zip";
-        sha1 = "971609f9a579ebbcb8d121a5d5aa0cba716b2d1f";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21b-beta1-linux-x86_64.zip";
-        sha1 = "cf06ed408663c11c8f4824f9370c7a900ec074dd";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."21.0.6113669" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "21.0.6113669";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-darwin-x86_64.zip";
-        sha1 = "0d50636cc0e34ed3ba540d6d5818ea0cf10f16aa";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-linux-x86_64.zip";
-        sha1 = "afc9c0b9faad222898ac8168c78ad4ccac8a1b5c";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."21.0.6011959-rc2" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "21.0.6011959-rc2";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-beta2-darwin-x86_64.zip";
-        sha1 = "34a46c3867c9d87a80895c0b8a098256052536d2";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-beta2-linux-x86_64.zip";
-        sha1 = "335f30302bee700a9a5fdfe3ae533a4963499c44";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."20.1.5948944" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "20.1.5948944";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20b-darwin-x86_64.zip";
-        sha1 = "b51290ab69cb89de1f0ba108702277bc333b38be";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip";
-        sha1 = "d903fdf077039ad9331fb6c3bee78aa46d45527b";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."20.0.5594570" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "20.0.5594570";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-darwin-x86_64.zip";
-        sha1 = "96d5f1c50452596912d1982439c514194b5751e6";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip";
-        sha1 = "8665fc84a1b1f0d6ab3b5fdd1e30200cc7b9adff";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."20.0.5471264-rc3" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "20.0.5471264-rc3";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta3-darwin-x86_64.zip";
-        sha1 = "665a035cadb0dd03e6502ba25c18643f6e4ede24";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta3-linux-x86_64.zip";
-        sha1 = "674d8fb0e0df8e8be1c31fa321eb176548a19ba3";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."20.0.5392854-rc2" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "20.0.5392854-rc2";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta2-darwin-x86_64.zip";
-        sha1 = "cd94191ace6b31ec9af1cc370173e16934e1cb8b";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta2-linux-x86_64.zip";
-        sha1 = "8285ae2e24a7232fd0cbfb55e955c8586ef2ee02";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."19.2.5345600" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "19.2.5345600";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19c-darwin-x86_64.zip";
-        sha1 = "f46b8193109bba8a58e0461c1a48f4534051fb25";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip";
-        sha1 = "fd94d0be6017c6acbd193eb95e09cf4b6f61b834";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."19.0.5232133" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "19.0.5232133";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19-darwin-x86_64.zip";
-        sha1 = "86c1a962601b23b8a6d3d535c93b4b0bc4f29249";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19-linux-x86_64.zip";
-        sha1 = "f02ad84cb5b6e1ff3eea9e6168037c823408c8ac";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."18.1.5063045" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "18.1.5063045";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r18b-darwin-x86_64.zip";
-        sha1 = "98cb9909aa8c2dab32db188bbdc3ac6207e09440";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip";
-        sha1 = "500679655da3a86aecf67007e8ab230ea9b4dd7b";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."17.2.4988734" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "17.2.4988734";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r17c-darwin-x86_64.zip";
-        sha1 = "f97e3d7711497e3b4faf9e7b3fa0f0da90bb649c";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip";
-        sha1 = "12cacc70c3fd2f40574015631c00f41fb8a39048";
-      };
-      
-    };
-  };
-  
-  "ndk-bundle"."16.1.4479499" = {
-    
-    name = "ndk-bundle";
-    path = "ndk-bundle";
-    revision = "16.1.4479499";
-    displayName = "NDK";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip";
-        sha1 = "e51e615449b98c716cf912057e2682e75d55e2de";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip";
-        sha1 = "42aa43aae89a50d1c66c3f9fdecd676936da6128";
-      };
-      
-    };
-  };
-  
-  "ndk"."16.1.4479499" = {
-    
-    name = "ndk";
-    path = "ndk/16.1.4479499";
-    revision = "16.1.4479499";
-    displayName = "NDK (Side by side) 16.1.4479499";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip";
-        sha1 = "e51e615449b98c716cf912057e2682e75d55e2de";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip";
-        sha1 = "42aa43aae89a50d1c66c3f9fdecd676936da6128";
-      };
-      
-    };
-  };
-  
-  "ndk"."17.2.4988734" = {
-    
-    name = "ndk";
-    path = "ndk/17.2.4988734";
-    revision = "17.2.4988734";
-    displayName = "NDK (Side by side) 17.2.4988734";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r17c-darwin-x86_64.zip";
-        sha1 = "f97e3d7711497e3b4faf9e7b3fa0f0da90bb649c";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip";
-        sha1 = "12cacc70c3fd2f40574015631c00f41fb8a39048";
-      };
-      
-    };
-  };
-  
-  "ndk"."18.1.5063045" = {
-    
-    name = "ndk";
-    path = "ndk/18.1.5063045";
-    revision = "18.1.5063045";
-    displayName = "NDK (Side by side) 18.1.5063045";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r18b-darwin-x86_64.zip";
-        sha1 = "98cb9909aa8c2dab32db188bbdc3ac6207e09440";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip";
-        sha1 = "500679655da3a86aecf67007e8ab230ea9b4dd7b";
-      };
-      
-    };
-  };
-  
-  "ndk"."19.0.5232133" = {
-    
-    name = "ndk";
-    path = "ndk/19.0.5232133";
-    revision = "19.0.5232133";
-    displayName = "NDK (Side by side) 19.0.5232133";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19-darwin-x86_64.zip";
-        sha1 = "86c1a962601b23b8a6d3d535c93b4b0bc4f29249";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19-linux-x86_64.zip";
-        sha1 = "f02ad84cb5b6e1ff3eea9e6168037c823408c8ac";
-      };
-      
-    };
-  };
-  
-  "ndk"."19.2.5345600" = {
-    
-    name = "ndk";
-    path = "ndk/19.2.5345600";
-    revision = "19.2.5345600";
-    displayName = "NDK (Side by side) 19.2.5345600";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19c-darwin-x86_64.zip";
-        sha1 = "f46b8193109bba8a58e0461c1a48f4534051fb25";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip";
-        sha1 = "fd94d0be6017c6acbd193eb95e09cf4b6f61b834";
-      };
-      
-    };
-  };
-  
-  "ndk"."20.0.5392854-rc2" = {
-    
-    name = "ndk";
-    path = "ndk/20.0.5392854";
-    revision = "20.0.5392854-rc2";
-    displayName = "NDK (Side by side) 20.0.5392854";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta2-darwin-x86_64.zip";
-        sha1 = "cd94191ace6b31ec9af1cc370173e16934e1cb8b";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta2-linux-x86_64.zip";
-        sha1 = "8285ae2e24a7232fd0cbfb55e955c8586ef2ee02";
-      };
-      
-    };
-  };
-  
-  "ndk"."20.0.5471264-rc3" = {
-    
-    name = "ndk";
-    path = "ndk/20.0.5471264";
-    revision = "20.0.5471264-rc3";
-    displayName = "NDK (Side by side) 20.0.5471264";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta3-darwin-x86_64.zip";
-        sha1 = "665a035cadb0dd03e6502ba25c18643f6e4ede24";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-beta3-linux-x86_64.zip";
-        sha1 = "674d8fb0e0df8e8be1c31fa321eb176548a19ba3";
-      };
-      
-    };
-  };
-  
-  "ndk"."20.0.5594570" = {
-    
-    name = "ndk";
-    path = "ndk/20.0.5594570";
-    revision = "20.0.5594570";
-    displayName = "NDK (Side by side) 20.0.5594570";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-darwin-x86_64.zip";
-        sha1 = "96d5f1c50452596912d1982439c514194b5751e6";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip";
-        sha1 = "8665fc84a1b1f0d6ab3b5fdd1e30200cc7b9adff";
-      };
-      
-    };
-  };
-  
-  "ndk"."20.1.5948944" = {
-    
-    name = "ndk";
-    path = "ndk/20.1.5948944";
-    revision = "20.1.5948944";
-    displayName = "NDK (Side by side) 20.1.5948944";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20b-darwin-x86_64.zip";
-        sha1 = "b51290ab69cb89de1f0ba108702277bc333b38be";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip";
-        sha1 = "d903fdf077039ad9331fb6c3bee78aa46d45527b";
-      };
-      
-    };
-  };
-  
-  "ndk"."21.0.6011959-rc2" = {
-    
-    name = "ndk";
-    path = "ndk/21.0.6011959";
-    revision = "21.0.6011959-rc2";
-    displayName = "NDK (Side by side) 21.0.6011959";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-beta2-darwin-x86_64.zip";
-        sha1 = "34a46c3867c9d87a80895c0b8a098256052536d2";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-beta2-linux-x86_64.zip";
-        sha1 = "335f30302bee700a9a5fdfe3ae533a4963499c44";
-      };
-      
-    };
-  };
-  
-  "ndk"."21.0.6113669" = {
-    
-    name = "ndk";
-    path = "ndk/21.0.6113669";
-    revision = "21.0.6113669";
-    displayName = "NDK (Side by side) 21.0.6113669";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-darwin-x86_64.zip";
-        sha1 = "0d50636cc0e34ed3ba540d6d5818ea0cf10f16aa";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21-linux-x86_64.zip";
-        sha1 = "afc9c0b9faad222898ac8168c78ad4ccac8a1b5c";
-      };
-      
-    };
-  };
-  
-  "ndk"."21.1.6210238-rc1" = {
-    
-    name = "ndk";
-    path = "ndk/21.1.6210238";
-    revision = "21.1.6210238-rc1";
-    displayName = "NDK (Side by side) 21.1.6210238";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21b-beta1-darwin-x86_64.zip";
-        sha1 = "971609f9a579ebbcb8d121a5d5aa0cba716b2d1f";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-ndk-r21b-beta1-linux-x86_64.zip";
-        sha1 = "cf06ed408663c11c8f4824f9370c7a900ec074dd";
-      };
-      
-    };
-  };
-  
-  "patcher"."1" = {
-    
-    name = "patcher";
-    path = "patcher/v4";
-    revision = "1";
-    displayName = "SDK Patch Applier v4";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip";
-          sha1 = "046699c5e2716ae11d77e0bad814f7f33fab261e";
-        };
-      
-    };
-  };
-  
-  "platform-tools"."29.0.6" = {
-    
-    name = "platform-tools";
-    path = "platform-tools";
-    revision = "29.0.6";
-    displayName = "Android SDK Platform-Tools";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/platform-tools_r29.0.6-darwin.zip";
-        sha1 = "3232179dce22d8a6332018729026ed39f5d5cd0b";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/platform-tools_r29.0.6-linux.zip";
-        sha1 = "e95ed28330406705d47fe96bafb589be6c1f2f23";
-      };
-      
-    };
-  };
-  
-  "platforms"."10" = {
-    
-    name = "platforms";
-    path = "platforms/android-10";
-    revision = "10";
-    displayName = "Android SDK Platform 10";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-2.3.3_r02.zip";
-          sha1 = "887e37783ec32f541ea33c2c649dda648e8e6fb3";
-        };
-      
-    };
-  };
-  
-  "platforms"."11" = {
-    
-    name = "platforms";
-    path = "platforms/android-11";
-    revision = "11";
-    displayName = "Android SDK Platform 11";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-3.0_r02.zip";
-          sha1 = "2c7d4bd13f276e76f6bbd87315fe27aba351dd37";
-        };
-      
-    };
-  };
-  
-  "platforms"."12" = {
-    
-    name = "platforms";
-    path = "platforms/android-12";
-    revision = "12";
-    displayName = "Android SDK Platform 12";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-3.1_r03.zip";
-          sha1 = "4a50a6679cd95bb68bb5fc032e754cd7c5e2b1bf";
-        };
-      
-    };
-  };
-  
-  "platforms"."13" = {
-    
-    name = "platforms";
-    path = "platforms/android-13";
-    revision = "13";
-    displayName = "Android SDK Platform 13";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-3.2_r01.zip";
-          sha1 = "6189a500a8c44ae73a439604363de93591163cd9";
-        };
-      
-    };
-  };
-  
-  "platforms"."14" = {
-    
-    name = "platforms";
-    path = "platforms/android-14";
-    revision = "14";
-    displayName = "Android SDK Platform 14";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-14_r04.zip";
-          sha1 = "d4f1d8fbca25225b5f0e7a0adf0d39c3d6e60b3c";
-        };
-      
-    };
-  };
-  
-  "platforms"."15" = {
-    
-    name = "platforms";
-    path = "platforms/android-15";
-    revision = "15";
-    displayName = "Android SDK Platform 15";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-15_r05.zip";
-          sha1 = "69ab4c443b37184b2883af1fd38cc20cbeffd0f3";
-        };
-      
-    };
-  };
-  
-  "platforms"."16" = {
-    
-    name = "platforms";
-    path = "platforms/android-16";
-    revision = "16";
-    displayName = "Android SDK Platform 16";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-16_r05.zip";
-          sha1 = "12a5ce6235a76bc30f62c26bda1b680e336abd07";
-        };
-      
-    };
-  };
-  
-  "platforms"."17" = {
-    
-    name = "platforms";
-    path = "platforms/android-17";
-    revision = "17";
-    displayName = "Android SDK Platform 17";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-17_r03.zip";
-          sha1 = "dbe14101c06e6cdb34e300393e64e64f8c92168a";
-        };
-      
-    };
-  };
-  
-  "platforms"."18" = {
-    
-    name = "platforms";
-    path = "platforms/android-18";
-    revision = "18";
-    displayName = "Android SDK Platform 18";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-18_r03.zip";
-          sha1 = "e6b09b3505754cbbeb4a5622008b907262ee91cb";
-        };
-      
-    };
-  };
-  
-  "platforms"."19" = {
-    
-    name = "platforms";
-    path = "platforms/android-19";
-    revision = "19";
-    displayName = "Android SDK Platform 19";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-19_r04.zip";
-          sha1 = "2ff20d89e68f2f5390981342e009db5a2d456aaa";
-        };
-      
-    };
-  };
-  
-  "platforms"."2" = {
-    
-    name = "platforms";
-    path = "platforms/android-2";
-    revision = "2";
-    displayName = "Android SDK Platform 2";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-1.1_r1-linux.zip";
-        sha1 = "c054d25c9b4c6251fa49c2f9c54336998679d3fe";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-1.1_r1-macosx.zip";
-        sha1 = "e21dbcff45b7356657449ebb3c7e941be2bb5ebe";
-      };
-      
-    };
-  };
-  
-  "platforms"."20" = {
-    
-    name = "platforms";
-    path = "platforms/android-20";
-    revision = "20";
-    displayName = "Android SDK Platform 20";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-20_r02.zip";
-          sha1 = "a9251f8a3f313ab05834a07a963000927637e01d";
-        };
-      
-    };
-  };
-  
-  "platforms"."21" = {
-    
-    name = "platforms";
-    path = "platforms/android-21";
-    revision = "21";
-    displayName = "Android SDK Platform 21";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-21_r02.zip";
-          sha1 = "53536556059bb29ae82f414fd2e14bc335a4eb4c";
-        };
-      
-    };
-  };
-  
-  "platforms"."22" = {
-    
-    name = "platforms";
-    path = "platforms/android-22";
-    revision = "22";
-    displayName = "Android SDK Platform 22";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-22_r02.zip";
-          sha1 = "5d1bd10fea962b216a0dece1247070164760a9fc";
-        };
-      
-    };
-  };
-  
-  "platforms"."23" = {
-    
-    name = "platforms";
-    path = "platforms/android-23";
-    revision = "23";
-    displayName = "Android SDK Platform 23";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-23_r03.zip";
-          sha1 = "027fede3de6aa1649115bbd0bffff30ccd51c9a0";
-        };
-      
-    };
-  };
-  
-  "platforms"."24" = {
-    
-    name = "platforms";
-    path = "platforms/android-24";
-    revision = "24";
-    displayName = "Android SDK Platform 24";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-24_r02.zip";
-          sha1 = "8912da3d4bfe7a9f28f0e5ce92d3a8dc96342aee";
-        };
-      
-    };
-  };
-  
-  "platforms"."25" = {
-    
-    name = "platforms";
-    path = "platforms/android-25";
-    revision = "25";
-    displayName = "Android SDK Platform 25";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-25_r03.zip";
-          sha1 = "00c2c5765e8988504be10a1eb66ed71fcdbd7fe8";
-        };
-      
-    };
-  };
-  
-  "platforms"."26" = {
-    
-    name = "platforms";
-    path = "platforms/android-26";
-    revision = "26";
-    displayName = "Android SDK Platform 26";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-26_r02.zip";
-          sha1 = "e4ae5d7aa557a3c827135838ee400da8443ac4ef";
-        };
-      
-    };
-  };
-  
-  "platforms"."27" = {
-    
-    name = "platforms";
-    path = "platforms/android-27";
-    revision = "27";
-    displayName = "Android SDK Platform 27";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-27_r03.zip";
-          sha1 = "35f747e7e70b2d16e0e4246876be28d15ea1c353";
-        };
-      
-    };
-  };
-  
-  "platforms"."28" = {
-    
-    name = "platforms";
-    path = "platforms/android-28";
-    revision = "28";
-    displayName = "Android SDK Platform 28";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-28_r06.zip";
-          sha1 = "9a4e52b1d55bd2e24216b150aafae2503d3efba6";
-        };
-      
-    };
-  };
-  
-  "platforms"."29" = {
-    
-    name = "platforms";
-    path = "platforms/android-29";
-    revision = "29";
-    displayName = "Android SDK Platform 29";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-29_r04.zip";
-          sha1 = "8d644c39902038e0bd529165d5ba4f5a8607daea";
-        };
-      
-    };
-  };
-  
-  "platforms"."3" = {
-    
-    name = "platforms";
-    path = "platforms/android-3";
-    revision = "3";
-    displayName = "Android SDK Platform 3";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-1.5_r04-linux.zip";
-        sha1 = "5c134b7df5f4b8bd5b61ba93bdaebada8fa3468c";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-1.5_r04-macosx.zip";
-        sha1 = "d3a67c2369afa48b6c3c7624de5031c262018d1e";
-      };
-      
-    };
-  };
-  
-  "platforms"."4" = {
-    
-    name = "platforms";
-    path = "platforms/android-4";
-    revision = "4";
-    displayName = "Android SDK Platform 4";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-1.6_r03-linux.zip";
-        sha1 = "483ed088e45bbdf3444baaf9250c8b02e5383cb0";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-1.6_r03-macosx.zip";
-        sha1 = "bdafad44f5df9f127979bdb21a1fdd87ee3cd625";
-      };
-      
-    };
-  };
-  
-  "platforms"."5" = {
-    
-    name = "platforms";
-    path = "platforms/android-5";
-    revision = "5";
-    displayName = "Android SDK Platform 5";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-2.0_r01-linux.zip";
-        sha1 = "be9be6a99ca32875c96ec7f91160ca9fce7e3c7d";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-2.0_r01-macosx.zip";
-        sha1 = "2a866d0870dbba18e0503cd41e5fae988a21b314";
-      };
-      
-    };
-  };
-  
-  "platforms"."6" = {
-    
-    name = "platforms";
-    path = "platforms/android-6";
-    revision = "6";
-    displayName = "Android SDK Platform 6";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/android-2.0.1_r01-linux.zip";
-        sha1 = "ce2c971dce352aa28af06bda92a070116aa5ae1a";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/android-2.0.1_r01-macosx.zip";
-        sha1 = "c3096f80d75a6fc8cb38ef8a18aec920e53d42c0";
-      };
-      
-    };
-  };
-  
-  "platforms"."7" = {
-    
-    name = "platforms";
-    path = "platforms/android-7";
-    revision = "7";
-    displayName = "Android SDK Platform 7";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-2.1_r03.zip";
-          sha1 = "5ce51b023ac19f8738500b1007a1da5de2349a1e";
-        };
-      
-    };
-  };
-  
-  "platforms"."8" = {
-    
-    name = "platforms";
-    path = "platforms/android-8";
-    revision = "8";
-    displayName = "Android SDK Platform 8";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-2.2_r03.zip";
-          sha1 = "231262c63eefdff8fd0386e9ccfefeb27a8f9202";
-        };
-      
-    };
-  };
-  
-  "platforms"."9" = {
-    
-    name = "platforms";
-    path = "platforms/android-9";
-    revision = "9";
-    displayName = "Android SDK Platform 9";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/android-2.3.1_r02.zip";
-          sha1 = "209f8a7a8b2cb093fce858b8b55fed3ba5206773";
-        };
-      
-    };
-  };
-  
-  "platforms"."R" = {
-    
-    name = "platforms";
-    path = "platforms/android-R";
-    revision = "R";
-    displayName = "Android SDK Platform R";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/platform-R_r01.zip";
-          sha1 = "f6ce3ef0ec8526550fc3b517bdb29051275bcd1a";
-        };
-      
-    };
-  };
-  
-  "skiaparser"."1-rc02" = {
-    
-    name = "skiaparser";
-    path = "skiaparser/1";
-    revision = "1-rc02";
-    displayName = "Skia Parser Server";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/skiaparser-6172737-linux.zip";
-        sha1 = "d2eac6deff2c257d47853251bda5528c96a41720";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/skiaparser-6172737-mac.zip";
-        sha1 = "1e3b8da7a4f5e9887479b4e4186db3cb22422c82";
-      };
-      
-    };
-  };
-  
-  "sources"."14" = {
-    
-    name = "sources";
-    path = "sources/android-14";
-    revision = "14";
-    displayName = "Sources for Android 14";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-14_r01.zip";
-          sha1 = "eaf4ed7dcac46e68516a1b4aa5b0d9e5a39a7555";
-        };
-      
-    };
-  };
-  
-  "sources"."15" = {
-    
-    name = "sources";
-    path = "sources/android-15";
-    revision = "15";
-    displayName = "Sources for Android 15";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-15_r02.zip";
-          sha1 = "e5992a5747c9590783fbbdd700337bf0c9f6b1fa";
-        };
-      
-    };
-  };
-  
-  "sources"."16" = {
-    
-    name = "sources";
-    path = "sources/android-16";
-    revision = "16";
-    displayName = "Sources for Android 16";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-16_r02.zip";
-          sha1 = "0f83c14ed333c45d962279ab5d6bc98a0269ef84";
-        };
-      
-    };
-  };
-  
-  "sources"."17" = {
-    
-    name = "sources";
-    path = "sources/android-17";
-    revision = "17";
-    displayName = "Sources for Android 17";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-17_r01.zip";
-          sha1 = "6f1f18cd2d2b1852d7f6892df9cee3823349d43a";
-        };
-      
-    };
-  };
-  
-  "sources"."18" = {
-    
-    name = "sources";
-    path = "sources/android-18";
-    revision = "18";
-    displayName = "Sources for Android 18";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-18_r01.zip";
-          sha1 = "8b49fdf7433f4881a2bfb559b5dd05d8ec65fb78";
-        };
-      
-    };
-  };
-  
-  "sources"."19" = {
-    
-    name = "sources";
-    path = "sources/android-19";
-    revision = "19";
-    displayName = "Sources for Android 19";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-19_r02.zip";
-          sha1 = "433a1d043ef77561571250e94cb7a0ef24a202e7";
-        };
-      
-    };
-  };
-  
-  "sources"."20" = {
-    
-    name = "sources";
-    path = "sources/android-20";
-    revision = "20";
-    displayName = "Sources for Android 20";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-20_r01.zip";
-          sha1 = "8da3e40f2625f9f7ef38b7e403f49f67226c0d76";
-        };
-      
-    };
-  };
-  
-  "sources"."21" = {
-    
-    name = "sources";
-    path = "sources/android-21";
-    revision = "21";
-    displayName = "Sources for Android 21";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-21_r01.zip";
-          sha1 = "137a5044915d32bea297a8c1552684802bbc2e25";
-        };
-      
-    };
-  };
-  
-  "sources"."22" = {
-    
-    name = "sources";
-    path = "sources/android-22";
-    revision = "22";
-    displayName = "Sources for Android 22";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-22_r01.zip";
-          sha1 = "98320e13976d11597a4a730a8d203ac9a03ed5a6";
-        };
-      
-    };
-  };
-  
-  "sources"."23" = {
-    
-    name = "sources";
-    path = "sources/android-23";
-    revision = "23";
-    displayName = "Sources for Android 23";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-23_r01.zip";
-          sha1 = "b0f15da2762b42f543c5e364c2b15b198cc99cc2";
-        };
-      
-    };
-  };
-  
-  "sources"."24" = {
-    
-    name = "sources";
-    path = "sources/android-24";
-    revision = "24";
-    displayName = "Sources for Android 24";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-24_r01.zip";
-          sha1 = "6b96115830a83d654479f32ce4b724ca9011148b";
-        };
-      
-    };
-  };
-  
-  "sources"."25" = {
-    
-    name = "sources";
-    path = "sources/android-25";
-    revision = "25";
-    displayName = "Sources for Android 25";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-25_r01.zip";
-          sha1 = "bbc72efd1a9bad87cc507e308f0d29aad438c52c";
-        };
-      
-    };
-  };
-  
-  "sources"."26" = {
-    
-    name = "sources";
-    path = "sources/android-26";
-    revision = "26";
-    displayName = "Sources for Android 26";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-26_r01.zip";
-          sha1 = "2af701ee3223d580409288540b1d06932fd8f9b9";
-        };
-      
-    };
-  };
-  
-  "sources"."27" = {
-    
-    name = "sources";
-    path = "sources/android-27";
-    revision = "27";
-    displayName = "Sources for Android 27";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-27_r01.zip";
-          sha1 = "7b714670561d08f54751af42aca929867b806596";
-        };
-      
-    };
-  };
-  
-  "sources"."28" = {
-    
-    name = "sources";
-    path = "sources/android-28";
-    revision = "28";
-    displayName = "Sources for Android 28";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-28_r01.zip";
-          sha1 = "5610e0c24235ee3fa343c899ddd551be30315255";
-        };
-      
-    };
-  };
-  
-  "sources"."29" = {
-    
-    name = "sources";
-    path = "sources/android-29";
-    revision = "29";
-    displayName = "Sources for Android 29";
-    archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/sources-29_r01.zip";
-          sha1 = "d0ad249e152b3a8fe3cb7c4a329453a048be29e4";
-        };
-      
-    };
-  };
-  
-  "tools"."25.2.5" = {
-    
-    name = "tools";
-    path = "tools";
-    revision = "25.2.5";
-    displayName = "Android SDK Tools 25.2.5";
-    archives = {
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/tools_r25.2.5-linux.zip";
-        sha1 = "72df3aa1988c0a9003ccdfd7a13a7b8bd0f47fc1";
-      };
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip";
-        sha1 = "d2168d963ac5b616e3d3ddaf21511d084baf3659";
-      };
-      
-    };
-  };
-  
-  "tools"."26.1.1" = {
-    
-    name = "tools";
-    path = "tools";
-    revision = "26.1.1";
-    displayName = "Android SDK Tools";
-    archives = {
-      macosx = fetchurl {
-        url = "https://dl.google.com/android/repository/sdk-tools-darwin-4333796.zip";
-        sha1 = "ed85ea7b59bc3483ce0af4c198523ba044e083ad";
-      };
-      linux = fetchurl {
-        url = "https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip";
-        sha1 = "8c7c28554a32318461802c1291d76fccfafde054";
-      };
-      
-    };
-  };
-  
-}
-  
diff --git a/pkgs/development/mobile/androidenv/generated/system-images-android-tv.nix b/pkgs/development/mobile/androidenv/generated/system-images-android-tv.nix
deleted file mode 100644
index 22da6ee9800..00000000000
--- a/pkgs/development/mobile/androidenv/generated/system-images-android-tv.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{fetchurl}:
-
-{
-  "21".android-tv."x86" = {
-    name = "system-image-21-android-tv-x86";
-    path = "system-images/android-21/android-tv/x86";
-    revision = "21-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-21_r03.zip";
-      sha1 = "2f8a1988188d6abfd6c6395baeb4471a034dc1e8";
-    };
-  };
-  "21".android-tv."armeabi-v7a" = {
-    name = "system-image-21-android-tv-armeabi-v7a";
-    path = "system-images/android-21/android-tv/armeabi-v7a";
-    revision = "21-android-tv-armeabi-v7a";
-    displayName = "Android TV ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/armeabi-v7a-21_r03.zip";
-      sha1 = "b63e28a47f11b639dd94981a458b7abfa89ac331";
-    };
-  };
-  "22".android-tv."x86" = {
-    name = "system-image-22-android-tv-x86";
-    path = "system-images/android-22/android-tv/x86";
-    revision = "22-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-22_r03.zip";
-      sha1 = "c78efd5a155622eb490be9d326f5783993375c35";
-    };
-  };
-  "23".android-tv."x86" = {
-    name = "system-image-23-android-tv-x86";
-    path = "system-images/android-23/android-tv/x86";
-    revision = "23-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-23_r19.zip";
-      sha1 = "47e8d6b08a337a0672f0f105bf907d39ed9457ec";
-    };
-  };
-  "23".android-tv."armeabi-v7a" = {
-    name = "system-image-23-android-tv-armeabi-v7a";
-    path = "system-images/android-23/android-tv/armeabi-v7a";
-    revision = "23-android-tv-armeabi-v7a";
-    displayName = "Android TV ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/armeabi-v7a-23_r12.zip";
-      sha1 = "bd84678ae8caf71d584f5210e866b2807e7b4b52";
-    };
-  };
-  "24".android-tv."x86" = {
-    name = "system-image-24-android-tv-x86";
-    path = "system-images/android-24/android-tv/x86";
-    revision = "24-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-24_r20.zip";
-      sha1 = "0b8cd98dec9ebd04376ce4f6e270193ceae8acea";
-    };
-  };
-  "25".android-tv."x86" = {
-    name = "system-image-25-android-tv-x86";
-    path = "system-images/android-25/android-tv/x86";
-    revision = "25-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-25_r14.zip";
-      sha1 = "1c88f11683375c059803c3a7be8e880cc23a6f9a";
-    };
-  };
-  "26".android-tv."x86" = {
-    name = "system-image-26-android-tv-x86";
-    path = "system-images/android-26/android-tv/x86";
-    revision = "26-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-26_r12.zip";
-      sha1 = "d8b12e543925a0454403d2a854996a76410ec374";
-    };
-  };
-  "27".android-tv."x86" = {
-    name = "system-image-27-android-tv-x86";
-    path = "system-images/android-27/android-tv/x86";
-    revision = "27-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-27_r07.zip";
-      sha1 = "5ed40e568c0d8d023c5b6c76634b22a477ed54aa";
-    };
-  };
-  "28".android-tv."x86" = {
-    name = "system-image-28-android-tv-x86";
-    path = "system-images/android-28/android-tv/x86";
-    revision = "28-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-28_r08.zip";
-      sha1 = "f5f8f296dfaca7945434992761c8d47d50257c21";
-    };
-  };
-  "Q".android-tv."x86" = {
-    name = "system-image-Q-android-tv-x86";
-    path = "system-images/android-Q/android-tv/x86";
-    revision = "Q-android-tv-x86";
-    displayName = "Android TV Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-tv/x86-Q_r01.zip";
-      sha1 = "80c66ddce0dbe53fe6fedcade230d518112fffb1";
-    };
-  };
-}
diff --git a/pkgs/development/mobile/androidenv/generated/system-images-android-wear-cn.nix b/pkgs/development/mobile/androidenv/generated/system-images-android-wear-cn.nix
deleted file mode 100644
index 36ff0b01cd6..00000000000
--- a/pkgs/development/mobile/androidenv/generated/system-images-android-wear-cn.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{fetchurl}:
-
-{
-  "25".android-wear."armeabi-v7a" = {
-    name = "system-image-25-android-wear-armeabi-v7a";
-    path = "system-images/android-25/android-wear-cn/armeabi-v7a";
-    revision = "25-android-wear-armeabi-v7a";
-    displayName = "China version of Android Wear ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear-cn/armeabi-v7a-25_r04.zip";
-      sha1 = "02d7bc86df054d1e89fe5856b3af1d2c142cab41";
-    };
-  };
-  "25".android-wear."x86" = {
-    name = "system-image-25-android-wear-x86";
-    path = "system-images/android-25/android-wear-cn/x86";
-    revision = "25-android-wear-x86";
-    displayName = "China version of Android Wear Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear-cn/x86-25_r04.zip";
-      sha1 = "73eab14c7cf2f6941e1fee61e0038ead7a2c7f4d";
-    };
-  };
-  "26".android-wear."x86" = {
-    name = "system-image-26-android-wear-x86";
-    path = "system-images/android-26/android-wear-cn/x86";
-    revision = "26-android-wear-x86";
-    displayName = "China version of Android Wear Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear-cn/x86-26_r04.zip";
-      sha1 = "fdc8a313f889a2d6522de1fbc00ee9e13547d096";
-    };
-  };
-  "28".android-wear."x86" = {
-    name = "system-image-28-android-wear-x86";
-    path = "system-images/android-28/android-wear-cn/x86";
-    revision = "28-android-wear-x86";
-    displayName = "China version of Wear OS Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear-cn/x86-28_r03.zip";
-      sha1 = "2099d87709c5e064273925dbf2cf1fd081bf0262";
-    };
-  };
-}
diff --git a/pkgs/development/mobile/androidenv/generated/system-images-android-wear.nix b/pkgs/development/mobile/androidenv/generated/system-images-android-wear.nix
deleted file mode 100644
index e672c75031f..00000000000
--- a/pkgs/development/mobile/androidenv/generated/system-images-android-wear.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{fetchurl}:
-
-{
-  "23".android-wear."armeabi-v7a" = {
-    name = "system-image-23-android-wear-armeabi-v7a";
-    path = "system-images/android-23/android-wear/armeabi-v7a";
-    revision = "23-android-wear-armeabi-v7a";
-    displayName = "Android Wear ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear/armeabi-v7a-23_r06.zip";
-      sha1 = "0df5d34b1cdaaaa3805a2f06bb889901eabe2e71";
-    };
-  };
-  "23".android-wear."x86" = {
-    name = "system-image-23-android-wear-x86";
-    path = "system-images/android-23/android-wear/x86";
-    revision = "23-android-wear-x86";
-    displayName = "Android Wear Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear/x86-23_r06.zip";
-      sha1 = "3b15c123f3f71459d5b60c1714d49c5d90a5525e";
-    };
-  };
-  "25".android-wear."armeabi-v7a" = {
-    name = "system-image-25-android-wear-armeabi-v7a";
-    path = "system-images/android-25/android-wear/armeabi-v7a";
-    revision = "25-android-wear-armeabi-v7a";
-    displayName = "Android Wear ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear/armeabi-v7a-25_r03.zip";
-      sha1 = "76d3568a4e08023047af7d13025a35c9bf1d7e5c";
-    };
-  };
-  "25".android-wear."x86" = {
-    name = "system-image-25-android-wear-x86";
-    path = "system-images/android-25/android-wear/x86";
-    revision = "25-android-wear-x86";
-    displayName = "Android Wear Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear/x86-25_r03.zip";
-      sha1 = "693fce7b487a65491a4e88e9f740959688c9dbe6";
-    };
-  };
-  "26".android-wear."x86" = {
-    name = "system-image-26-android-wear-x86";
-    path = "system-images/android-26/android-wear/x86";
-    revision = "26-android-wear-x86";
-    displayName = "Android Wear Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear/x86-26_r04.zip";
-      sha1 = "fbffa91b936ca18fcc1e0bab2b52a8b0835cbb1c";
-    };
-  };
-  "28".android-wear."x86" = {
-    name = "system-image-28-android-wear-x86";
-    path = "system-images/android-28/android-wear/x86";
-    revision = "28-android-wear-x86";
-    displayName = "Wear OS Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android-wear/x86-28_r03.zip";
-      sha1 = "b80bd53ab69f19441714bff2e4d55931e6d3f7be";
-    };
-  };
-}
diff --git a/pkgs/development/mobile/androidenv/generated/system-images-android.nix b/pkgs/development/mobile/androidenv/generated/system-images-android.nix
deleted file mode 100644
index f5863cb0d4e..00000000000
--- a/pkgs/development/mobile/androidenv/generated/system-images-android.nix
+++ /dev/null
@@ -1,364 +0,0 @@
-{fetchurl}:
-
-{
-  "10".default."armeabi-v7a" = {
-    name = "system-image-10-default-armeabi-v7a";
-    path = "system-images/android-10/default/armeabi-v7a";
-    revision = "10-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-10_r05.zip";
-      sha1 = "8537616a7add47cce24c60f18bc2429e3dc90ae3";
-    };
-  };
-  "14".default."armeabi-v7a" = {
-    name = "system-image-14-default-armeabi-v7a";
-    path = "system-images/android-14/default/armeabi-v7a";
-    revision = "14-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/sysimg_armv7a-14_r02.zip";
-      sha1 = "d8991b0c06b18d7d6ed4169d67460ee1add6661b";
-    };
-  };
-  "15".default."armeabi-v7a" = {
-    name = "system-image-15-default-armeabi-v7a";
-    path = "system-images/android-15/default/armeabi-v7a";
-    revision = "15-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-15_r05.zip";
-      sha1 = "03d7ed95a9d3b107e3f2e5b166d017ea12529e70";
-    };
-  };
-  "16".default."armeabi-v7a" = {
-    name = "system-image-16-default-armeabi-v7a";
-    path = "system-images/android-16/default/armeabi-v7a";
-    revision = "16-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-16_r06.zip";
-      sha1 = "69b944b0d5a18c8563fa80d7d229af64890f724e";
-    };
-  };
-  "17".default."armeabi-v7a" = {
-    name = "system-image-17-default-armeabi-v7a";
-    path = "system-images/android-17/default/armeabi-v7a";
-    revision = "17-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-17_r06.zip";
-      sha1 = "a18a3fd0958ec4ef52507f58e414fc5c7dfd59d6";
-    };
-  };
-  "18".default."armeabi-v7a" = {
-    name = "system-image-18-default-armeabi-v7a";
-    path = "system-images/android-18/default/armeabi-v7a";
-    revision = "18-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-18_r05.zip";
-      sha1 = "580b583720f7de671040d5917c8c9db0c7aa03fd";
-    };
-  };
-  "19".default."armeabi-v7a" = {
-    name = "system-image-19-default-armeabi-v7a";
-    path = "system-images/android-19/default/armeabi-v7a";
-    revision = "19-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-19_r05.zip";
-      sha1 = "d1a5fd4f2e1c013c3d3d9bfe7e9db908c3ed56fa";
-    };
-  };
-  "21".default."armeabi-v7a" = {
-    name = "system-image-21-default-armeabi-v7a";
-    path = "system-images/android-21/default/armeabi-v7a";
-    revision = "21-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-21_r04.zip";
-      sha1 = "8c606f81306564b65e41303d2603e4c42ded0d10";
-    };
-  };
-  "22".default."armeabi-v7a" = {
-    name = "system-image-22-default-armeabi-v7a";
-    path = "system-images/android-22/default/armeabi-v7a";
-    revision = "22-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-22_r02.zip";
-      sha1 = "2114ec015dbf3a16cbcb4f63e8a84a1b206a07a1";
-    };
-  };
-  "23".default."armeabi-v7a" = {
-    name = "system-image-23-default-armeabi-v7a";
-    path = "system-images/android-23/default/armeabi-v7a";
-    revision = "23-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-23_r06.zip";
-      sha1 = "7cf2ad756e54a3acfd81064b63cb0cb9dff2798d";
-    };
-  };
-  "24".default."armeabi-v7a" = {
-    name = "system-image-24-default-armeabi-v7a";
-    path = "system-images/android-24/default/armeabi-v7a";
-    revision = "24-default-armeabi-v7a";
-    displayName = "ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/armeabi-v7a-24_r07.zip";
-      sha1 = "3454546b4eed2d6c3dd06d47757d6da9f4176033";
-    };
-  };
-  "24".default."arm64-v8a" = {
-    name = "system-image-24-default-arm64-v8a";
-    path = "system-images/android-24/default/arm64-v8a";
-    revision = "24-default-arm64-v8a";
-    displayName = "ARM 64 v8a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-24_r07.zip";
-      sha1 = "e8ab2e49e4efe4b064232b33b5eeaded61437d7f";
-    };
-  };
-  "16".default."mips" = {
-    name = "system-image-16-default-mips";
-    path = "system-images/android-16/default/mips";
-    revision = "16-default-mips";
-    displayName = "MIPS System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/sysimg_mips-16_r04.zip";
-      sha1 = "67943c54fb3943943ffeb05fdd39c0b753681f6e";
-    };
-  };
-  "17".default."mips" = {
-    name = "system-image-17-default-mips";
-    path = "system-images/android-17/default/mips";
-    revision = "17-default-mips";
-    displayName = "MIPS System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/sysimg_mips-17_r01.zip";
-      sha1 = "f0c6e153bd584c29e51b5c9723cfbf30f996a05d";
-    };
-  };
-  "10".default."x86" = {
-    name = "system-image-10-default-x86";
-    path = "system-images/android-10/default/x86";
-    revision = "10-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-10_r05.zip";
-      sha1 = "a166d5ccbb165e1dd5464fbfeec30a61f77790d8";
-    };
-  };
-  "15".default."x86" = {
-    name = "system-image-15-default-x86";
-    path = "system-images/android-15/default/x86";
-    revision = "15-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-15_r05.zip";
-      sha1 = "c387e0efed2cdc610e5944eea67b7b692d03760c";
-    };
-  };
-  "16".default."x86" = {
-    name = "system-image-16-default-x86";
-    path = "system-images/android-16/default/x86";
-    revision = "16-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-16_r06.zip";
-      sha1 = "bf1bf8c5591346118d2235da1ad20e7be8a3e9cd";
-    };
-  };
-  "17".default."x86" = {
-    name = "system-image-17-default-x86";
-    path = "system-images/android-17/default/x86";
-    revision = "17-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-17_r04.zip";
-      sha1 = "03c6d022ab2dcbbcf655d78ba5ccb0431cadcaec";
-    };
-  };
-  "18".default."x86" = {
-    name = "system-image-18-default-x86";
-    path = "system-images/android-18/default/x86";
-    revision = "18-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-18_r04.zip";
-      sha1 = "7a4ced4d9b0ab48047825491b4072dc2eb9b610e";
-    };
-  };
-  "19".default."x86" = {
-    name = "system-image-19-default-x86";
-    path = "system-images/android-19/default/x86";
-    revision = "19-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-19_r06.zip";
-      sha1 = "2ac82153aae97f7eae4c5a0761224fe04321d03d";
-    };
-  };
-  "21".default."x86" = {
-    name = "system-image-21-default-x86";
-    path = "system-images/android-21/default/x86";
-    revision = "21-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-21_r05.zip";
-      sha1 = "00f0eb0a1003efe3316347f762e20a85d8749cff";
-    };
-  };
-  "22".default."x86" = {
-    name = "system-image-22-default-x86";
-    path = "system-images/android-22/default/x86";
-    revision = "22-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-22_r06.zip";
-      sha1 = "e33e2a6cc3f1cc56b2019dbef3917d2eeb26f54e";
-    };
-  };
-  "23".default."x86" = {
-    name = "system-image-23-default-x86";
-    path = "system-images/android-23/default/x86";
-    revision = "23-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-23_r10.zip";
-      sha1 = "f6c3e3dd7bd951454795aa75c3a145fd05ac25bb";
-    };
-  };
-  "24".default."x86" = {
-    name = "system-image-24-default-x86";
-    path = "system-images/android-24/default/x86";
-    revision = "24-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-24_r08.zip";
-      sha1 = "c1cae7634b0216c0b5990f2c144eb8ca948e3511";
-    };
-  };
-  "25".default."x86" = {
-    name = "system-image-25-default-x86";
-    path = "system-images/android-25/default/x86";
-    revision = "25-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-25_r01.zip";
-      sha1 = "78ce7eb1387d598685633b9f7cbb300c3d3aeb5f";
-    };
-  };
-  "26".default."x86" = {
-    name = "system-image-26-default-x86";
-    path = "system-images/android-26/default/x86";
-    revision = "26-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-26_r01.zip";
-      sha1 = "e613d6e0da668e30daf547f3c6627a6352846f90";
-    };
-  };
-  "27".default."x86" = {
-    name = "system-image-27-default-x86";
-    path = "system-images/android-27/default/x86";
-    revision = "27-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-27_r01.zip";
-      sha1 = "4ec990fac7b62958decd12e18a4cd389dfe7c582";
-    };
-  };
-  "28".default."x86" = {
-    name = "system-image-28-default-x86";
-    path = "system-images/android-28/default/x86";
-    revision = "28-default-x86";
-    displayName = "Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86-28_r04.zip";
-      sha1 = "ce03c42d80c0fc6dc47f6455dbee7aa275d02780";
-    };
-  };
-  "21".default."x86_64" = {
-    name = "system-image-21-default-x86_64";
-    path = "system-images/android-21/default/x86_64";
-    revision = "21-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-21_r05.zip";
-      sha1 = "9078a095825a69e5e215713f0866c83cef65a342";
-    };
-  };
-  "22".default."x86_64" = {
-    name = "system-image-22-default-x86_64";
-    path = "system-images/android-22/default/x86_64";
-    revision = "22-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-22_r06.zip";
-      sha1 = "5db3b27f78cd9c4c5092b1cad5a5dd479fb5b2e4";
-    };
-  };
-  "23".default."x86_64" = {
-    name = "system-image-23-default-x86_64";
-    path = "system-images/android-23/default/x86_64";
-    revision = "23-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-23_r10.zip";
-      sha1 = "7cbc291483ca07dc67b71268c5f08a5755f50f51";
-    };
-  };
-  "24".default."x86_64" = {
-    name = "system-image-24-default-x86_64";
-    path = "system-images/android-24/default/x86_64";
-    revision = "24-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-24_r08.zip";
-      sha1 = "f6559e1949a5879f31a9662f4f0e50ad60181684";
-    };
-  };
-  "25".default."x86_64" = {
-    name = "system-image-25-default-x86_64";
-    path = "system-images/android-25/default/x86_64";
-    revision = "25-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-25_r01.zip";
-      sha1 = "7093d7b39216020226ff430a3b7b81c94d31ad37";
-    };
-  };
-  "26".default."x86_64" = {
-    name = "system-image-26-default-x86_64";
-    path = "system-images/android-26/default/x86_64";
-    revision = "26-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-26_r01.zip";
-      sha1 = "432f149c048bffce7f9de526ec65b336daf7a0a3";
-    };
-  };
-  "27".default."x86_64" = {
-    name = "system-image-27-default-x86_64";
-    path = "system-images/android-27/default/x86_64";
-    revision = "27-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-27_r01.zip";
-      sha1 = "2878261011a59ca3de29dc5b457a495fdb268d60";
-    };
-  };
-  "28".default."x86_64" = {
-    name = "system-image-28-default-x86_64";
-    path = "system-images/android-28/default/x86_64";
-    revision = "28-default-x86_64";
-    displayName = "Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/android/x86_64-28_r04.zip";
-      sha1 = "d47a85c8f4e9fd57df97814ad8884eeb0f3a0ef0";
-    };
-  };
-}
diff --git a/pkgs/development/mobile/androidenv/generated/system-images-google_apis.nix b/pkgs/development/mobile/androidenv/generated/system-images-google_apis.nix
deleted file mode 100644
index a67ce9cfea4..00000000000
--- a/pkgs/development/mobile/androidenv/generated/system-images-google_apis.nix
+++ /dev/null
@@ -1,384 +0,0 @@
-{fetchurl}:
-
-{
-  "10".google_apis."armeabi-v7a" = {
-    name = "system-image-10-google_apis-armeabi-v7a";
-    path = "system-images/android-10/google_apis/armeabi-v7a";
-    revision = "10-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-10_r06.zip";
-      sha1 = "970abf3a2a9937a43576afd9bb56e4a8191947f8";
-    };
-  };
-  "10".google_apis."x86" = {
-    name = "system-image-10-google_apis-x86";
-    path = "system-images/android-10/google_apis/x86";
-    revision = "10-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-10_r06.zip";
-      sha1 = "070a9552e3d358d8e72e8b2042e539e2b7a1b035";
-    };
-  };
-  "15".google_apis."x86" = {
-    name = "system-image-15-google_apis-x86";
-    path = "system-images/android-15/google_apis/x86";
-    revision = "15-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-15_r06.zip";
-      sha1 = "a7deb32c12396b6c4fd60ad14a62e19f8bdcae20";
-    };
-  };
-  "15".google_apis."armeabi-v7a" = {
-    name = "system-image-15-google_apis-armeabi-v7a";
-    path = "system-images/android-15/google_apis/armeabi-v7a";
-    revision = "15-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-15_r06.zip";
-      sha1 = "6deb76cf34760a6037cb18d89772c9e986d07497";
-    };
-  };
-  "16".google_apis."armeabi-v7a" = {
-    name = "system-image-16-google_apis-armeabi-v7a";
-    path = "system-images/android-16/google_apis/armeabi-v7a";
-    revision = "16-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-16_r06.zip";
-      sha1 = "5a5ff097680c6dae473c8719296ce6d7b70edb2d";
-    };
-  };
-  "16".google_apis."x86" = {
-    name = "system-image-16-google_apis-x86";
-    path = "system-images/android-16/google_apis/x86";
-    revision = "16-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-16_r06.zip";
-      sha1 = "b57adef2f43dd176b8c02c980c16a796021b2071";
-    };
-  };
-  "17".google_apis."armeabi-v7a" = {
-    name = "system-image-17-google_apis-armeabi-v7a";
-    path = "system-images/android-17/google_apis/armeabi-v7a";
-    revision = "17-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-17_r06.zip";
-      sha1 = "a59f26cb5707da97e869a27d87b83477204ac594";
-    };
-  };
-  "17".google_apis."x86" = {
-    name = "system-image-17-google_apis-x86";
-    path = "system-images/android-17/google_apis/x86";
-    revision = "17-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-17_r06.zip";
-      sha1 = "7864c34faf0402b8923d8c6e609a5339f74cc8d6";
-    };
-  };
-  "18".google_apis."armeabi-v7a" = {
-    name = "system-image-18-google_apis-armeabi-v7a";
-    path = "system-images/android-18/google_apis/armeabi-v7a";
-    revision = "18-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-18_r06.zip";
-      sha1 = "7faaccabbcc5f08e410436d3f63eea42521ea974";
-    };
-  };
-  "18".google_apis."x86" = {
-    name = "system-image-18-google_apis-x86";
-    path = "system-images/android-18/google_apis/x86";
-    revision = "18-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-18_r06.zip";
-      sha1 = "dd674d719cad61602702be4b3d98edccfbfea53e";
-    };
-  };
-  "19".google_apis."x86" = {
-    name = "system-image-19-google_apis-x86";
-    path = "system-images/android-19/google_apis/x86";
-    revision = "19-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-19_r38.zip";
-      sha1 = "928e4ec82876c61ef53451425d10ccb840cdd0f2";
-    };
-  };
-  "19".google_apis."armeabi-v7a" = {
-    name = "system-image-19-google_apis-armeabi-v7a";
-    path = "system-images/android-19/google_apis/armeabi-v7a";
-    revision = "19-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-19_r38.zip";
-      sha1 = "434edd2ddc39d1ca083a5fa9721c0db8ab804737";
-    };
-  };
-  "21".google_apis."x86" = {
-    name = "system-image-21-google_apis-x86";
-    path = "system-images/android-21/google_apis/x86";
-    revision = "21-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-21_r30.zip";
-      sha1 = "37548caae9e2897fb1d2b15f7fcf624c714cb610";
-    };
-  };
-  "21".google_apis."x86_64" = {
-    name = "system-image-21-google_apis-x86_64";
-    path = "system-images/android-21/google_apis/x86_64";
-    revision = "21-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-21_r30.zip";
-      sha1 = "82d34fdaae2916bd4d48a4f144db51e4e5719aa4";
-    };
-  };
-  "21".google_apis."armeabi-v7a" = {
-    name = "system-image-21-google_apis-armeabi-v7a";
-    path = "system-images/android-21/google_apis/armeabi-v7a";
-    revision = "21-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-21_r30.zip";
-      sha1 = "bbdbbb3c4387752a8f28718a3190d901c0378058";
-    };
-  };
-  "22".google_apis."x86" = {
-    name = "system-image-22-google_apis-x86";
-    path = "system-images/android-22/google_apis/x86";
-    revision = "22-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-22_r24.zip";
-      sha1 = "e4cd95b1c0837fc12d6544742e82d8ef344c8758";
-    };
-  };
-  "22".google_apis."armeabi-v7a" = {
-    name = "system-image-22-google_apis-armeabi-v7a";
-    path = "system-images/android-22/google_apis/armeabi-v7a";
-    revision = "22-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-22_r24.zip";
-      sha1 = "d2b7ca5f8259c6e4b3cfa5a0d77e4a088899cfb0";
-    };
-  };
-  "22".google_apis."x86_64" = {
-    name = "system-image-22-google_apis-x86_64";
-    path = "system-images/android-22/google_apis/x86_64";
-    revision = "22-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-22_r24.zip";
-      sha1 = "cde738f9353606af69ad7b4e625c957a4d603f27";
-    };
-  };
-  "23".google_apis."x86" = {
-    name = "system-image-23-google_apis-x86";
-    path = "system-images/android-23/google_apis/x86";
-    revision = "23-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-23_r31.zip";
-      sha1 = "877cf79f5198fa53351eab08ba9ce162dc84f7ba";
-    };
-  };
-  "23".google_apis."x86_64" = {
-    name = "system-image-23-google_apis-x86_64";
-    path = "system-images/android-23/google_apis/x86_64";
-    revision = "23-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-23_r31.zip";
-      sha1 = "342c39df061804ee0d5bc671147e90dead3d6665";
-    };
-  };
-  "23".google_apis."armeabi-v7a" = {
-    name = "system-image-23-google_apis-armeabi-v7a";
-    path = "system-images/android-23/google_apis/armeabi-v7a";
-    revision = "23-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-23_r31.zip";
-      sha1 = "da0a07800b4eec53fcdb2e5c3b69a9a5d7a6b8a6";
-    };
-  };
-  "24".google_apis."x86" = {
-    name = "system-image-24-google_apis-x86";
-    path = "system-images/android-24/google_apis/x86";
-    revision = "24-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-24_r25.zip";
-      sha1 = "53dba25eed8359aba394a1be1c7ccb741a459ec0";
-    };
-  };
-  "24".google_apis."x86_64" = {
-    name = "system-image-24-google_apis-x86_64";
-    path = "system-images/android-24/google_apis/x86_64";
-    revision = "24-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-24_r25.zip";
-      sha1 = "d757dd13ad9b0ba4dd872660e31b6506f60dcf32";
-    };
-  };
-  "24".google_apis."armeabi-v7a" = {
-    name = "system-image-24-google_apis-armeabi-v7a";
-    path = "system-images/android-24/google_apis/armeabi-v7a";
-    revision = "24-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-24_r25.zip";
-      sha1 = "9a0ec5e9a239a7a6889364e44e9fa4fcd0052c6b";
-    };
-  };
-  "24".google_apis."arm64-v8a" = {
-    name = "system-image-24-google_apis-arm64-v8a";
-    path = "system-images/android-24/google_apis/arm64-v8a";
-    revision = "24-google_apis-arm64-v8a";
-    displayName = "Google APIs ARM 64 v8a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-24_r25.zip";
-      sha1 = "5ff407d439e3c595ce9221f445a31dcc35df5a86";
-    };
-  };
-  "25".google_apis."x86" = {
-    name = "system-image-25-google_apis-x86";
-    path = "system-images/android-25/google_apis/x86";
-    revision = "25-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-25_r16.zip";
-      sha1 = "562e3335c6334b8d1947bb9efb90f8d82f2d3e4d";
-    };
-  };
-  "25".google_apis."x86_64" = {
-    name = "system-image-25-google_apis-x86_64";
-    path = "system-images/android-25/google_apis/x86_64";
-    revision = "25-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-25_r16.zip";
-      sha1 = "e08b94903631d58964467b0b310c93642d85df6c";
-    };
-  };
-  "25".google_apis."armeabi-v7a" = {
-    name = "system-image-25-google_apis-armeabi-v7a";
-    path = "system-images/android-25/google_apis/armeabi-v7a";
-    revision = "25-google_apis-armeabi-v7a";
-    displayName = "Google APIs ARM EABI v7a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-25_r16.zip";
-      sha1 = "4c49e0edb845b0bf1f231cb0e8598b1a9f9aa9c8";
-    };
-  };
-  "25".google_apis."arm64-v8a" = {
-    name = "system-image-25-google_apis-arm64-v8a";
-    path = "system-images/android-25/google_apis/arm64-v8a";
-    revision = "25-google_apis-arm64-v8a";
-    displayName = "Google APIs ARM 64 v8a System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-25_r16.zip";
-      sha1 = "33ffbd335d9a6dc8d9843469d0963091566b3167";
-    };
-  };
-  "26".google_apis."x86" = {
-    name = "system-image-26-google_apis-x86";
-    path = "system-images/android-26/google_apis/x86";
-    revision = "26-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-26_r14.zip";
-      sha1 = "935da6794d5f64f7ae20a1f352929cb7e3b20cba";
-    };
-  };
-  "26".google_apis."x86_64" = {
-    name = "system-image-26-google_apis-x86_64";
-    path = "system-images/android-26/google_apis/x86_64";
-    revision = "26-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-26_r14.zip";
-      sha1 = "965631f0554ca9027ac465ba147baa6a6a22fcce";
-    };
-  };
-  "27".google_apis."x86" = {
-    name = "system-image-27-google_apis-x86";
-    path = "system-images/android-27/google_apis/x86";
-    revision = "27-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-27_r09.zip";
-      sha1 = "ab009fc1308ded01539af4f8233b252d411145bc";
-    };
-  };
-  "28".google_apis."x86" = {
-    name = "system-image-28-google_apis-x86";
-    path = "system-images/android-28/google_apis/x86";
-    revision = "28-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-28_r09.zip";
-      sha1 = "7c84ba5cbc009132ce38df52830c17b9bffc54bb";
-    };
-  };
-  "28".google_apis."x86_64" = {
-    name = "system-image-28-google_apis-x86_64";
-    path = "system-images/android-28/google_apis/x86_64";
-    revision = "28-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-28_r09.zip";
-      sha1 = "eeb066346d29194e5b9387a0c0dd0f9e2a570b70";
-    };
-  };
-  "29".google_apis."x86" = {
-    name = "system-image-29-google_apis-x86";
-    path = "system-images/android-29/google_apis/x86";
-    revision = "29-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-29_r09.zip";
-      sha1 = "33d71d17138ea322dec2dea6d8198aebf4767ab3";
-    };
-  };
-  "29".google_apis."x86_64" = {
-    name = "system-image-29-google_apis-x86_64";
-    path = "system-images/android-29/google_apis/x86_64";
-    revision = "29-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-29_r09.zip";
-      sha1 = "0aa76b20a7ad30f2e41bc21b897b848d82533d26";
-    };
-  };
-  "R".google_apis."x86" = {
-    name = "system-image-R-google_apis-x86";
-    path = "system-images/android-R/google_apis/x86";
-    revision = "R-google_apis-x86";
-    displayName = "Google APIs Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86-R_r01.zip";
-      sha1 = "4e260bef94760eecba3224b68c1a4fed0fb89485";
-    };
-  };
-  "R".google_apis."x86_64" = {
-    name = "system-image-R-google_apis-x86_64";
-    path = "system-images/android-R/google_apis/x86_64";
-    revision = "R-google_apis-x86_64";
-    displayName = "Google APIs Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-R_r01.zip";
-      sha1 = "ae12e1c3e1b36043a299359850e9315f47262f81";
-    };
-  };
-}
diff --git a/pkgs/development/mobile/androidenv/generated/system-images-google_apis_playstore.nix b/pkgs/development/mobile/androidenv/generated/system-images-google_apis_playstore.nix
deleted file mode 100644
index 554f4b2df99..00000000000
--- a/pkgs/development/mobile/androidenv/generated/system-images-google_apis_playstore.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{fetchurl}:
-
-{
-  "24".google_apis_playstore."x86" = {
-    name = "system-image-24-google_apis_playstore-x86";
-    path = "system-images/android-24/google_apis_playstore/x86";
-    revision = "24-google_apis_playstore-x86";
-    displayName = "Google Play Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-24_r19.zip";
-      sha1 = "b52e9593ffdde65c1a0970256a32e8967c89cc22";
-    };
-  };
-  "25".google_apis_playstore."x86" = {
-    name = "system-image-25-google_apis_playstore-x86";
-    path = "system-images/android-25/google_apis_playstore/x86";
-    revision = "25-google_apis_playstore-x86";
-    displayName = "Google Play Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-25_r09.zip";
-      sha1 = "6f6668954f7fd52f896fe7528aa122028c9b026c";
-    };
-  };
-  "26".google_apis_playstore."x86" = {
-    name = "system-image-26-google_apis_playstore-x86";
-    path = "system-images/android-26/google_apis_playstore/x86";
-    revision = "26-google_apis_playstore-x86";
-    displayName = "Google Play Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-26_r07.zip";
-      sha1 = "2c8bee7b97a309f099941532e63c42a7d4a06e19";
-    };
-  };
-  "27".google_apis_playstore."x86" = {
-    name = "system-image-27-google_apis_playstore-x86";
-    path = "system-images/android-27/google_apis_playstore/x86";
-    revision = "27-google_apis_playstore-x86";
-    displayName = "Google Play Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-27_r03.zip";
-      sha1 = "eb5a944ceb691ca0648d0a6f0d93893a47223b5d";
-    };
-  };
-  "28".google_apis_playstore."x86" = {
-    name = "system-image-28-google_apis_playstore-x86";
-    path = "system-images/android-28/google_apis_playstore/x86";
-    revision = "28-google_apis_playstore-x86";
-    displayName = "Google Play Intel x86 Atom System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-28_r08.zip";
-      sha1 = "5381f9d52a3bf1967c9c92a25b20012cd68764c8";
-    };
-  };
-  "28".google_apis_playstore."x86_64" = {
-    name = "system-image-28-google_apis_playstore-x86_64";
-    path = "system-images/android-28/google_apis_playstore/x86_64";
-    revision = "28-google_apis_playstore-x86_64";
-    displayName = "Google Play Intel x86 Atom_64 System Image";
-    archives.all = fetchurl {
-      url = "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-28_r08.zip";
-      sha1 = "a767da996fdea7a1f5632a9206fa5c009d6e580c";
-    };
-  };
-}
diff --git a/pkgs/development/mobile/androidenv/lldb.nix b/pkgs/development/mobile/androidenv/lldb.nix
deleted file mode 100644
index e8a158c01ec..00000000000
--- a/pkgs/development/mobile/androidenv/lldb.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{deployAndroidPackage, lib, package, os, autoPatchelfHook, pkgs}:
-
-deployAndroidPackage {
-  inherit package os;
-  buildInputs = [ autoPatchelfHook ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.zlib pkgs.openssl_1_0_2.out pkgs.ncurses5 ];
-  patchInstructions = lib.optionalString (os == "linux") ''
-    addAutoPatchelfSearchPath $packageBaseDir/lib
-    autoPatchelf $packageBaseDir/lib
-    autoPatchelf $packageBaseDir/bin
-  '';
-}
diff --git a/pkgs/development/mobile/androidenv/mkrepo.rb b/pkgs/development/mobile/androidenv/mkrepo.rb
new file mode 100644
index 00000000000..208a544c90f
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/mkrepo.rb
@@ -0,0 +1,321 @@
+#!/usr/bin/env ruby
+
+require 'json'
+require 'nokogiri'
+require 'slop'
+
+# Returns a repo URL for a given package name.
+def repo_url value
+  if value && value.start_with?('http')
+    value
+  elsif value
+    "https://dl.google.com/android/repository/#{value}"
+  else
+    nil
+  end
+end
+
+# Returns a system image URL for a given system image name.
+def image_url value, dir
+  if value && value.start_with?('http')
+    value
+  elsif value
+    "https://dl.google.com/android/repository/sys-img/#{dir}/#{value}"
+  else
+    nil
+  end
+end
+
+# Returns a tuple of [type, revision, revision components] for a package node.
+def package_revision package
+  type_details = package.at_css('> type-details')
+  type = type_details.attributes['type']
+  type &&= type.value
+
+  revision = nil
+  components = nil
+
+  case type
+  when 'generic:genericDetailsType', 'addon:extraDetailsType', 'addon:mavenType'
+    major = text package.at_css('> revision > major')
+    minor = text package.at_css('> revision > minor')
+    micro = text package.at_css('> revision > micro')
+    preview = text package.at_css('> revision > preview')
+
+    revision = ''
+    components = []
+    unless empty?(major)
+      revision << major
+      components << major
+    end
+
+    unless empty?(minor)
+      revision << ".#{minor}"
+      components << minor
+    end
+
+    unless empty?(micro)
+      revision << ".#{micro}"
+      components << micro
+    end
+
+    unless empty?(preview)
+      revision << "-rc#{preview}"
+      components << preview
+    end
+  when 'sdk:platformDetailsType'
+    codename = text type_details.at_css('> codename')
+    api_level = text type_details.at_css('> api-level')
+    revision = empty?(codename) ? api_level : codename
+    components = [revision]
+  when 'sdk:sourceDetailsType'
+    api_level = text type_details.at_css('> api-level')
+    revision, components = api_level, [api_level]
+  when 'sys-img:sysImgDetailsType'
+    codename = text type_details.at_css('> codename')
+    api_level = text type_details.at_css('> api-level')
+    id = text type_details.at_css('> tag > id')
+    abi = text type_details.at_css('> abi')
+
+    revision = ''
+    components = []
+    if empty?(codename)
+      revision << api_level
+      components << api_level
+    else
+      revision << codename
+      components << codename
+    end
+
+    unless empty?(id)
+      revision << "-#{id}"
+      components << id
+    end
+
+    unless empty?(abi)
+      revision << "-#{abi}"
+      components << abi
+    end
+  when 'addon:addonDetailsType' then
+    api_level = text type_details.at_css('> api-level')
+    id = text type_details.at_css('> tag > id')
+    revision = api_level
+    components = [api_level, id]
+  end
+
+  [type, revision, components]
+end
+
+# Returns a hash of archives for the specified package node.
+def package_archives package
+  archives = {}
+  package.css('> archives > archive').each do |archive|
+    host_os = text archive.at_css('> host-os')
+    host_os = 'all' if empty?(host_os)
+    archives[host_os] = {
+      'size' => Integer(text(archive.at_css('> complete > size'))),
+      'sha1' => text(archive.at_css('> complete > checksum')),
+      'url' => yield(text(archive.at_css('> complete > url')))
+    }
+  end
+  archives
+end
+
+# Returns the text from a node, or nil.
+def text node
+  node ? node.text : nil
+end
+
+# Nil or empty helper.
+def empty? value
+  !value || value.empty?
+end
+
+# Fixes up returned hashes by sorting keys.
+# Will also convert archives (e.g. {'linux' => {'sha1' => ...}, 'macosx' => ...} to
+# [{'os' => 'linux', 'sha1' => ...}, {'os' => 'macosx', ...}, ...].
+def fixup value
+  Hash[value.map do |k, v|
+    if k == 'archives' && v.is_a?(Hash)
+      [k, v.map do |os, archive|
+        fixup({'os' => os}.merge(archive))
+      end]
+    elsif v.is_a?(Hash)
+      [k, fixup(v)]
+    else
+      [k, v]
+    end
+  end.sort {|(k1, v1), (k2, v2)| k1 <=> k2}]
+end
+
+# Normalize the specified license text.
+# See: https://brash-snapper.glitch.me/ for how the munging works.
+def normalize_license license
+  license = license.dup
+  license.gsub!(/([^\n])\n([^\n])/m, '\1 \2')
+  license.gsub!(/ +/, ' ')
+  license
+end
+
+# Gets all license texts, deduplicating them.
+def get_licenses doc
+  licenses = {}
+  doc.css('license[type="text"]').each do |license_node|
+    license_id = license_node['id']
+    if license_id
+      licenses[license_id] ||= []
+      licenses[license_id] |= [normalize_license(text(license_node))]
+    end
+  end
+  licenses
+end
+
+def parse_package_xml doc
+  licenses = get_licenses doc
+  packages = {}
+
+  doc.css('remotePackage').each do |package|
+    name, _, version = package['path'].partition(';')
+    next if version == 'latest'
+
+    type, revision, _ = package_revision(package)
+    next unless revision
+
+    path = package['path'].tr(';', '/')
+    display_name = text package.at_css('> display-name')
+    uses_license = package.at_css('> uses-license')
+    uses_license &&= uses_license['ref']
+    archives = package_archives(package) {|url| repo_url url}
+
+    target = (packages[name] ||= {})
+    target = (target[revision] ||= {})
+
+    target['name'] ||= name
+    target['path'] ||= path
+    target['revision'] ||= revision
+    target['displayName'] ||= display_name
+    target['license'] ||= uses_license if uses_license
+    target['archives'] ||= {}
+    merge target['archives'], archives
+  end
+
+  [licenses, packages]
+end
+
+def parse_image_xml doc
+  licenses = get_licenses doc
+  images = {}
+
+  doc.css('remotePackage[path^="system-images;"]').each do |package|
+    type, revision, components = package_revision(package)
+    next unless revision
+
+    path = package['path'].tr(';', '/')
+    display_name = text package.at_css('> display-name')
+    uses_license = package.at_css('> uses-license')
+    uses_license &&= uses_license['ref']
+    archives = package_archives(package) {|url| image_url url, components[-2]}
+
+    target = images
+    components.each do |component|
+      target = (target[component] ||= {})
+    end
+
+    target['name'] ||= "system-image-#{revision}"
+    target['path'] ||= path
+    target['revision'] ||= revision
+    target['displayName'] ||= display_name
+    target['license'] ||= uses_license if uses_license
+    target['archives'] ||= {}
+    merge target['archives'], archives
+  end
+
+  [licenses, images]
+end
+
+def parse_addon_xml doc
+  licenses = get_licenses doc
+  addons, extras = {}, {}
+
+  doc.css('remotePackage').each do |package|
+    type, revision, components = package_revision(package)
+    next unless revision
+
+    path = package['path'].tr(';', '/')
+    display_name = text package.at_css('> display-name')
+    uses_license = package.at_css('> uses-license')
+    uses_license &&= uses_license['ref']
+    archives = package_archives(package) {|url| repo_url url}
+
+    case type
+    when 'addon:addonDetailsType'
+      name = components.last
+      target = addons
+
+      # Hack for Google APIs 25 r1, which displays as 23 for some reason
+      archive_name = text package.at_css('> archives > archive > complete > url')
+      if archive_name == 'google_apis-25_r1.zip'
+        path = 'add-ons/addon-google_apis-google-25'
+        revision = '25'
+        components = [revision, components.last]
+      end
+    when 'addon:extraDetailsType', 'addon:mavenType'
+      name = package['path'].tr(';', '-')
+      components = [package['path']]
+      target = extras
+    end
+
+    components.each do |component|
+      target = (target[component] ||= {})
+    end
+
+    target['name'] ||= name
+    target['path'] ||= path
+    target['revision'] ||= revision
+    target['displayName'] ||= display_name
+    target['license'] ||= uses_license if uses_license
+    target['archives'] ||= {}
+    merge target['archives'], archives
+  end
+
+  [licenses, addons, extras]
+end
+
+def merge dest, src
+  dest.merge! src
+end
+
+opts = Slop.parse do |o|
+  o.array '-p', '--packages', 'packages repo XMLs to parse'
+  o.array '-i', '--images', 'system image repo XMLs to parse'
+  o.array '-a', '--addons', 'addon repo XMLs to parse'
+end
+
+result = {
+  licenses: {},
+  packages: {},
+  images: {},
+  addons: {},
+  extras: {}
+}
+
+opts[:packages].each do |filename|
+  licenses, packages = parse_package_xml(Nokogiri::XML(File.open(filename)))
+  merge result[:licenses], licenses
+  merge result[:packages], packages
+end
+
+opts[:images].each do |filename|
+  licenses, images = parse_image_xml(Nokogiri::XML(File.open(filename)))
+  merge result[:licenses], licenses
+  merge result[:images], images
+end
+
+opts[:addons].each do |filename|
+  licenses, addons, extras = parse_addon_xml(Nokogiri::XML(File.open(filename)))
+  merge result[:licenses], licenses
+  merge result[:addons], addons
+  merge result[:extras], extras
+end
+
+puts JSON.pretty_generate(fixup(result))
diff --git a/pkgs/development/mobile/androidenv/mkrepo.sh b/pkgs/development/mobile/androidenv/mkrepo.sh
new file mode 100755
index 00000000000..fd7e22457f0
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/mkrepo.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p "ruby.withPackages (pkgs: with pkgs; [ slop nokogiri ])"
+
+set -e
+
+pushd "$(dirname "$0")" &>/dev/null || exit 1
+
+echo "Writing repo.json" >&2
+ruby mkrepo.rb \
+    --packages ./xml/repository2-1.xml \
+    --images ./xml/android-sys-img2-1.xml \
+    --images ./xml/android-tv-sys-img2-1.xml \
+    --images ./xml/android-wear-cn-sys-img2-1.xml \
+    --images ./xml/android-wear-sys-img2-1.xml \
+    --images ./xml/google_apis-sys-img2-1.xml \
+    --images ./xml/google_apis_playstore-sys-img2-1.xml \
+    --addons ./xml/addon2-1.xml > repo.json
+
+popd &>/dev/null
diff --git a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index b81fab1ed76..26d6a847b4d 100644
--- a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -1,51 +1,63 @@
-{deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, platform-tools}:
+{ lib, pkgs, pkgsHostHost, makeWrapper, autoPatchelfHook
+, deployAndroidPackage, package, os, platform-tools
+}:
 
 let
-  runtime_paths = lib.makeBinPath [ pkgs.coreutils pkgs.file pkgs.findutils pkgs.gawk pkgs.gnugrep pkgs.gnused pkgs.jdk pkgs.python3 pkgs.which ] + ":${platform-tools}/platform-tools";
+  runtime_paths = lib.makeBinPath (with pkgsHostHost; [
+    coreutils file findutils gawk gnugrep gnused jdk python3 which
+  ]) + ":${platform-tools}/platform-tools";
 in
 deployAndroidPackage {
   inherit package os;
-  buildInputs = [ autoPatchelfHook makeWrapper pkgs.python2 ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out ];
-  patchInstructions = lib.optionalString (os == "linux") ''
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  buildInputs = lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.python2 pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out pkgs.libxml2 ];
+  patchInstructions = lib.optionalString (os == "linux") (''
     patchShebangs .
 
+    # Fix the shebangs of the auto-generated scripts.
+    substituteInPlace ./build/tools/make_standalone_toolchain.py \
+      --replace '#!/bin/bash' '#!${pkgs.bash}/bin/bash'
+
+  '' + lib.optionalString (builtins.compareVersions (lib.getVersion package) "21" > 0) ''
     patch -p1 \
-      --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch}
-    wrapProgram $(pwd)/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
+      --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch} || true
+    wrapProgram ./build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
+  '' + ''
 
     # TODO: allow this stuff
     rm -rf docs tests
 
     # Patch the executables of the toolchains, but not the libraries -- they are needed for crosscompiling
+    if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64 ]; then
+        addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64
+    fi
+
+    if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64 ]; then
+        addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64
+    fi
 
-    addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64
-    find toolchains -type d -name bin | while read dir
-    do
+    find toolchains -type d -name bin -or -name lib64 | while read dir; do
         autoPatchelf "$dir"
     done
 
     # fix ineffective PROGDIR / MYNDKDIR determination
-    for i in ndk-build
-    do
-        sed -i -e 's|^PROGDIR=`dirname $0`|PROGDIR=`dirname $(readlink -f $(which $0))`|' $i
+    for progname in ndk-build; do
+        sed -i -e 's|^PROGDIR=`dirname $0`|PROGDIR=`dirname $(readlink -f $(which $0))`|' $progname
     done
 
     # Patch executables
     autoPatchelf prebuilt/linux-x86_64
 
     # wrap
-    for i in ndk-build
-    do
-        wrapProgram "$(pwd)/$i" --prefix PATH : "${runtime_paths}"
+    for progname in ndk-build; do
+        wrapProgram "$(pwd)/$progname" --prefix PATH : "${runtime_paths}"
     done
 
     # make some executables available in PATH
     mkdir -p $out/bin
-    for i in ndk-build
-    do
-        ln -sf ../libexec/android-sdk/ndk-bundle/$i $out/bin/$i
+    for progname in ndk-build; do
+        ln -sf ../libexec/android-sdk/ndk-bundle/$progname $out/bin/$progname
     done
-  '';
+  '');
   noAuditTmpdir = true; # Audit script gets invoked by the build/ component in the path for the make standalone script
 }
diff --git a/pkgs/development/mobile/androidenv/querypackages.sh b/pkgs/development/mobile/androidenv/querypackages.sh
index 0f31396b876..4abf4f93640 100644..100755
--- a/pkgs/development/mobile/androidenv/querypackages.sh
+++ b/pkgs/development/mobile/androidenv/querypackages.sh
@@ -1,27 +1,23 @@
-#!/bin/sh -e
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p jq
 
-if [ "$1" = "" ]
-then
-    echo "Please select a package set: 'packages', 'addons', 'system-images'" >&2
+set -e
+
+pushd "$(dirname "$0")" &>/dev/null || exit 1
+
+if [ "$1" == '' ]; then
+    echo "Please select a group: 'packages', 'images', 'addons', 'extras', or 'licenses'" >&2
     exit 1
 fi
 
-if [ "$2" = "" ]
-then
-    echo "Please select a package group:" >&2
-    ( cat <<EOF
-builtins.attrNames (import ./generated/$1.nix {
-  fetchurl = null;
-})
-EOF
-) | nix-instantiate --eval-only -
+namespace="$1"
 
-    exit 1
+if [ "$namespace" == 'licenses' ]; then
+    jq -r '.licenses | keys | join("\n")' < repo.json
+else
+    jq -r --arg NAMESPACE "$namespace" \
+        '.[$NAMESPACE] | paths as $path | getpath($path) as $v | select($path[-1] == "displayName") | [[$NAMESPACE] + $path[:-1] | map("\"" + . + "\"") | join("."), $v] | join(": ")' \
+        < repo.json
 fi
 
-( cat <<EOF
-builtins.attrNames (import ./generated/$1.nix {
-  fetchurl = null;
-}).$2
-EOF
-) | nix-instantiate --eval-only -
+popd &>/dev/null
diff --git a/pkgs/development/mobile/androidenv/repo.json b/pkgs/development/mobile/androidenv/repo.json
new file mode 100644
index 00000000000..e8e0bf080fe
--- /dev/null
+++ b/pkgs/development/mobile/androidenv/repo.json
@@ -0,0 +1,5692 @@
+{
+  "addons": {
+    "10": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "cc0711857c881fa7534f90cf8cc09b8fe985484d",
+            "size": 65781578,
+            "url": "https://dl.google.com/android/repository/google_apis-10_r02.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-10",
+        "revision": "10"
+      }
+    },
+    "11": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5eab5e81addee9f3576d456d205208314b5146a5",
+            "size": 83477179,
+            "url": "https://dl.google.com/android/repository/google_apis-11_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-11",
+        "revision": "11"
+      }
+    },
+    "12": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e9999f4fa978812174dfeceec0721c793a636e5d",
+            "size": 86099835,
+            "url": "https://dl.google.com/android/repository/google_apis-12_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-12",
+        "revision": "12"
+      },
+      "google_tv_addon": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "92128a12e7e8b0fb5bac59153d7779b717e7b840",
+            "size": 78266751,
+            "url": "https://dl.google.com/android/repository/google_tv-12_r02.zip"
+          }
+        ],
+        "displayName": "Google TV Addon",
+        "license": "android-googletv-license",
+        "name": "google_tv_addon",
+        "path": "add-ons/addon-google_tv_addon-google-12",
+        "revision": "12"
+      }
+    },
+    "13": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "3b153edd211c27dc736c893c658418a4f9041417",
+            "size": 88615525,
+            "url": "https://dl.google.com/android/repository/google_apis-13_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-13",
+        "revision": "13"
+      },
+      "google_tv_addon": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "b73f7c66011ac8180b44aa4e83b8d78c66ea9a09",
+            "size": 87721879,
+            "url": "https://dl.google.com/android/repository/google_tv-13_r01.zip"
+          }
+        ],
+        "displayName": "Google TV Addon",
+        "license": "android-googletv-license",
+        "name": "google_tv_addon",
+        "path": "add-ons/addon-google_tv_addon-google-13",
+        "revision": "13"
+      }
+    },
+    "14": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "f8eb4d96ad0492b4c0db2d7e4f1a1a3836664d39",
+            "size": 106533714,
+            "url": "https://dl.google.com/android/repository/google_apis-14_r02.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-14",
+        "revision": "14"
+      }
+    },
+    "15": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "d0d2bf26805eb271693570a1aaec33e7dc3f45e9",
+            "size": 106624396,
+            "url": "https://dl.google.com/android/repository/google_apis-15_r03.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-15",
+        "revision": "15"
+      }
+    },
+    "16": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "ee6acf1b01020bfa8a8e24725dbc4478bee5e792",
+            "size": 127341982,
+            "url": "https://dl.google.com/android/repository/google_apis-16_r04.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-16",
+        "revision": "16"
+      }
+    },
+    "17": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "a076be0677f38df8ca5536b44dfb411a0c808c4f",
+            "size": 137231243,
+            "url": "https://dl.google.com/android/repository/google_apis-17_r04.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-17",
+        "revision": "17"
+      }
+    },
+    "18": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "6109603409debdd40854d4d4a92eaf8481462c8b",
+            "size": 143195183,
+            "url": "https://dl.google.com/android/repository/google_apis-18_r04.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-18",
+        "revision": "18"
+      }
+    },
+    "19": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5b933abe830b2f25b4c0f171d45e9e0651e56311",
+            "size": 147081,
+            "url": "https://dl.google.com/android/repository/google_apis-19_r20.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-19",
+        "revision": "19"
+      }
+    },
+    "21": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "66a754efb24e9bb07cc51648426443c7586c9d4a",
+            "size": 179499,
+            "url": "https://dl.google.com/android/repository/google_apis-21_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-21",
+        "revision": "21"
+      }
+    },
+    "22": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5def0f42160cba8acff51b9c0c7e8be313de84f5",
+            "size": 179259,
+            "url": "https://dl.google.com/android/repository/google_apis-22_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-22",
+        "revision": "22"
+      }
+    },
+    "23": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "04c5cc1a7c88967250ebba9561d81e24104167db",
+            "size": 179900,
+            "url": "https://dl.google.com/android/repository/google_apis-23_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-23",
+        "revision": "23"
+      }
+    },
+    "24": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "31361c2868f27343ee917fbd259c1463821b6145",
+            "size": 154865,
+            "url": "https://dl.google.com/android/repository/google_apis-24_r1.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-24",
+        "revision": "24"
+      }
+    },
+    "25": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "550e83eea9513ab11c44919ac6da54b36084a9f3",
+            "size": 154871,
+            "url": "https://dl.google.com/android/repository/google_apis-25_r1.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-25",
+        "revision": "25"
+      }
+    },
+    "3": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "1f92abf3a76be66ae8032257fc7620acbd2b2e3a",
+            "size": 34908058,
+            "url": "https://dl.google.com/android/repository/google_apis-3-r03.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-3",
+        "revision": "3"
+      }
+    },
+    "4": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "9b6e86d8568558de4d606a7debc4f6049608dbd0",
+            "size": 42435735,
+            "url": "https://dl.google.com/android/repository/google_apis-4_r02.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-4",
+        "revision": "4"
+      }
+    },
+    "5": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "46eaeb56b645ee7ffa24ede8fa17f3df70db0503",
+            "size": 49123776,
+            "url": "https://dl.google.com/android/repository/google_apis-5_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-5",
+        "revision": "5"
+      }
+    },
+    "6": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5ff545d96e031e09580a6cf55713015c7d4936b2",
+            "size": 53382941,
+            "url": "https://dl.google.com/android/repository/google_apis-6_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-6",
+        "revision": "6"
+      }
+    },
+    "7": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "2e7f91e0fe34fef7f58aeced973c6ae52361b5ac",
+            "size": 53691339,
+            "url": "https://dl.google.com/android/repository/google_apis-7_r01.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-7",
+        "revision": "7"
+      }
+    },
+    "8": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "3079958e7ec87222cac1e6b27bc471b27bf2c352",
+            "size": 59505020,
+            "url": "https://dl.google.com/android/repository/google_apis-8_r02.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-8",
+        "revision": "8"
+      }
+    },
+    "9": {
+      "google_apis": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "78664645a1e9accea4430814f8694291a7f1ea5d",
+            "size": 63401546,
+            "url": "https://dl.google.com/android/repository/google_apis-9_r02.zip"
+          }
+        ],
+        "displayName": "Google APIs",
+        "license": "android-sdk-license",
+        "name": "google_apis",
+        "path": "add-ons/addon-google_apis-google-9",
+        "revision": "9"
+      }
+    }
+  },
+  "extras": {
+    "extras;android;m2repository": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "a0d22beacc106a6977321f2b07d692ce4979e96a",
+          "size": 355529608,
+          "url": "https://dl.google.com/android/repository/android_m2repository_r47.zip"
+        }
+      ],
+      "displayName": "Android Support Repository",
+      "license": "android-sdk-license",
+      "name": "extras-android-m2repository",
+      "path": "extras/android/m2repository",
+      "revision": "47.0.0"
+    },
+    "extras;google;Android_Emulator_Hypervisor_Driver": {
+      "archives": [
+        {
+          "os": "windows",
+          "sha1": "1d35ead3cdfaf6e51001455f66a2db102dd647b7",
+          "size": 167191,
+          "url": "https://dl.google.com/android/repository/gvm-windows_v1_7_0.zip"
+        }
+      ],
+      "displayName": "Android Emulator Hypervisor Driver for AMD Processors (installer)",
+      "license": "android-sdk-license",
+      "name": "extras-google-Android_Emulator_Hypervisor_Driver",
+      "path": "extras/google/Android_Emulator_Hypervisor_Driver",
+      "revision": "1.7.0"
+    },
+    "extras;google;admob_ads_sdk": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "0102859d9575baa0bf4fd5eb422af2ad0fe6cb82",
+          "size": 704512,
+          "url": "https://dl.google.com/android/repository/GoogleAdMobAdsSdkAndroid-6.4.1.zip"
+        }
+      ],
+      "displayName": "Google AdMob Ads SDK",
+      "license": "android-sdk-license",
+      "name": "extras-google-admob_ads_sdk",
+      "path": "extras/google/admob_ads_sdk",
+      "revision": "11"
+    },
+    "extras;google;analytics_sdk_v2": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "dc14026bf0ce78315cb5dd00552607de0894de83",
+          "size": 211432,
+          "url": "https://dl.google.com/android/repository/GoogleAnalyticsAndroid_2.0beta5.zip"
+        }
+      ],
+      "displayName": "Google Analytics App Tracking SDK",
+      "license": "android-sdk-license",
+      "name": "extras-google-analytics_sdk_v2",
+      "path": "extras/google/analytics_sdk_v2",
+      "revision": "3"
+    },
+    "extras;google;gcm": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "ad066fd0dc7fc99d8aadac09c65a3c2519fbc7bf",
+          "size": 5901400,
+          "url": "https://dl.google.com/android/repository/gcm_r03.zip"
+        }
+      ],
+      "displayName": "Google Cloud Messaging for Android Library",
+      "license": "android-sdk-license",
+      "name": "extras-google-gcm",
+      "path": "extras/google/gcm",
+      "revision": "3"
+    },
+    "extras;google;google_play_services": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "f95bf19634e2ab0430923247fe2c50246432d2e9",
+          "size": 15456884,
+          "url": "https://dl.google.com/android/repository/google_play_services_v16_1_rc09.zip"
+        }
+      ],
+      "displayName": "Google Play services",
+      "license": "android-sdk-license",
+      "name": "extras-google-google_play_services",
+      "path": "extras/google/google_play_services",
+      "revision": "49"
+    },
+    "extras;google;google_play_services_froyo": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "92558dbc380bba3d55d0ec181167fb05ce7c79d9",
+          "size": 5265389,
+          "url": "https://dl.google.com/android/repository/google_play_services_3265130_r12.zip"
+        }
+      ],
+      "displayName": "Google Play services for Froyo",
+      "license": "android-sdk-license",
+      "name": "extras-google-google_play_services_froyo",
+      "path": "extras/google/google_play_services_froyo",
+      "revision": "12"
+    },
+    "extras;google;instantapps": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "c498367dcd7db30154b3e70c4ddbb1b0ea4b8d20",
+          "size": 39524850,
+          "url": "https://dl.google.com/android/repository/iasdk-1.9.0-1566514721.zip"
+        }
+      ],
+      "displayName": "Google Play Instant Development SDK",
+      "license": "android-sdk-license",
+      "name": "extras-google-instantapps",
+      "path": "extras/google/instantapps",
+      "revision": "1.9.0"
+    },
+    "extras;google;m2repository": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "05086add9e3a0eb1b67111108d7757a4337c3f10",
+          "size": 215426029,
+          "url": "https://dl.google.com/android/repository/google_m2repository_gms_v11_3_rc05_wear_2_0_5.zip"
+        }
+      ],
+      "displayName": "Google Repository",
+      "license": "android-sdk-license",
+      "name": "extras-google-m2repository",
+      "path": "extras/google/m2repository",
+      "revision": "58"
+    },
+    "extras;google;market_apk_expansion": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "5305399dc1a56814e86b8459ce24871916f78b8c",
+          "size": 110201,
+          "url": "https://dl.google.com/android/repository/market_apk_expansion-r03.zip"
+        }
+      ],
+      "displayName": "Google Play APK Expansion library",
+      "license": "android-sdk-license",
+      "name": "extras-google-market_apk_expansion",
+      "path": "extras/google/market_apk_expansion",
+      "revision": "1"
+    },
+    "extras;google;market_licensing": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "355e8dc304a92a5616db235af8ee7bd554356254",
+          "size": 75109,
+          "url": "https://dl.google.com/android/repository/market_licensing-r02.zip"
+        }
+      ],
+      "displayName": "Google Play Licensing Library",
+      "license": "android-sdk-license",
+      "name": "extras-google-market_licensing",
+      "path": "extras/google/market_licensing",
+      "revision": "1"
+    },
+    "extras;google;simulators": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "4fb5344e34e8faab4db18af07dace44c50db26a7",
+          "size": 2167286,
+          "url": "https://dl.google.com/android/repository/simulator_r01.zip"
+        }
+      ],
+      "displayName": "Android Auto API Simulators",
+      "license": "android-sdk-license",
+      "name": "extras-google-simulators",
+      "path": "extras/google/simulators",
+      "revision": "1"
+    },
+    "extras;google;usb_driver": {
+      "archives": [
+        {
+          "os": "windows",
+          "sha1": "08a48c39084e9443f6146c239cbd3be6f91e681b",
+          "size": 8682039,
+          "url": "https://dl.google.com/android/repository/usb_driver_r13-windows.zip"
+        }
+      ],
+      "displayName": "Google USB Driver",
+      "license": "android-sdk-license",
+      "name": "extras-google-usb_driver",
+      "path": "extras/google/usb_driver",
+      "revision": "13"
+    },
+    "extras;google;webdriver": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "13f3a3b2670a5fc04a7342861644be9a01b07e38",
+          "size": 4055193,
+          "url": "https://dl.google.com/android/repository/webdriver_r02.zip"
+        }
+      ],
+      "displayName": "Google Web Driver",
+      "license": "android-sdk-license",
+      "name": "extras-google-webdriver",
+      "path": "extras/google/webdriver",
+      "revision": "2"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "b621b9d5adf273bb0725948589863e60e96eeaf1",
+          "size": 91207,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "2aa2aceecc6ba172742d0af0b43f11d03924eeb8",
+          "size": 95406,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip"
+        }
+      ],
+      "displayName": "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "cd13d16a8f0198c1d6040ec8b1d0d4e5bb7feb6a",
+          "size": 97549,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha8.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0-alpha8",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "042c25575e7650e96f0f5f5d1d3c54ed38eb821a",
+          "size": 104706,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta1.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0-beta1",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta1",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "28492fd42b20ae1586591ff906556d459cfdaae8",
+          "size": 107335,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta2.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0-beta2",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta2",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta2",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "268e763fa64bd217d8d830e59ce76be19aaba631",
+          "size": 107593,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta3.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0-beta3",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta3",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta3",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "2213bf37e7a2869db2635895b8e90ca6841e79d2",
+          "size": 109361,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta4.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0-beta4",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta4",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta4",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "3918cfef73e64048d0b3e048068e208b414e7e91",
+          "size": 92284,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-beta5.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.0-beta5",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-beta5",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta5",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "76f8823def9a6da8954a54737762a6820bc1d043",
+          "size": 91823,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.1.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.1",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.1",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.1",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "96d7ff669f0e808e9833b2c2e320702826ccc8be",
+          "size": 91961,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.2.zip"
+        }
+      ],
+      "displayName": "Solver for ConstraintLayout 1.0.2",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.2",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.2",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "70acf99689b933bc6735645d5c3d92b91954b6cb",
+          "size": 39153,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "645a9be1f0c1177301e71cd0ddccf1dd67c554fe",
+          "size": 15554,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip"
+        }
+      ],
+      "displayName": "com.android.support.constraint:constraint-layout:1.0.0-alpha4",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "7912ba03b04831f918f523648f118c4ee4da7604",
+          "size": 24797,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha8.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0-alpha8",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "11f2f5cec4ff02986bad75435e5be77b704b4c64",
+          "size": 31750,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta1.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0-beta1",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta1",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta1",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "623939865ede2e5c2c975dc55963e0d182bcce95",
+          "size": 31812,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta2.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0-beta2",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta2",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta2",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "d78bb6a8ce92005fb1e4ed55d892a65b4258c60b",
+          "size": 32622,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta3.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0-beta3",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta3",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta3",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "dc60844aab93a09a54a3c107685a77b18d7c1c39",
+          "size": 32687,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta4.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0-beta4",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta4",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta4",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "4660f6c7a576ea1364f0c3225db71c29ca660d9a",
+          "size": 39266,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-beta5.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.0-beta5",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-beta5",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-beta5",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "342b0894b8651fff37586f80f383733e97aba9f9",
+          "size": 39547,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.1.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.1",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.1",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.1",
+      "revision": "1"
+    },
+    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2": {
+      "archives": [
+        {
+          "os": "all",
+          "sha1": "3d9688a50fe0ed7348275f85d1b02278f616d8a4",
+          "size": 39625,
+          "url": "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.2.zip"
+        }
+      ],
+      "displayName": "ConstraintLayout for Android 1.0.2",
+      "license": "android-sdk-license",
+      "name": "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.2",
+      "path": "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.2",
+      "revision": "1"
+    }
+  },
+  "images": {
+    "10": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "970abf3a2a9937a43576afd9bb56e4a8191947f8",
+              "size": 110706432,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-10_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-10-google_apis-armeabi-v7a",
+          "path": "system-images/android-10/google_apis/armeabi-v7a",
+          "revision": "10-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "070a9552e3d358d8e72e8b2042e539e2b7a1b035",
+              "size": 118634346,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-10_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-10-google_apis-x86",
+          "path": "system-images/android-10/google_apis/x86",
+          "revision": "10-google_apis-x86"
+        }
+      }
+    },
+    "14": {
+      "default": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "d8991b0c06b18d7d6ed4169d67460ee1add6661b",
+              "size": 99621822,
+              "url": "https://dl.google.com/android/repository/sys-img/default/sysimg_armv7a-14_r02.zip"
+            }
+          ],
+          "displayName": "ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-14-default-armeabi-v7a",
+          "path": "system-images/android-14/default/armeabi-v7a",
+          "revision": "14-default-armeabi-v7a"
+        }
+      }
+    },
+    "15": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "6deb76cf34760a6037cb18d89772c9e986d07497",
+              "size": 148773442,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-15_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-15-google_apis-armeabi-v7a",
+          "path": "system-images/android-15/google_apis/armeabi-v7a",
+          "revision": "15-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "5ef2c5481f5bb8789c0b5224d46fb2e13602a450",
+              "size": 163325511,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-15_r07.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-15-google_apis-x86",
+          "path": "system-images/android-15/google_apis/x86",
+          "revision": "15-google_apis-x86"
+        }
+      }
+    },
+    "16": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "5a5ff097680c6dae473c8719296ce6d7b70edb2d",
+              "size": 168845378,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-16_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-16-google_apis-armeabi-v7a",
+          "path": "system-images/android-16/google_apis/armeabi-v7a",
+          "revision": "16-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "246903c75f5aa3db7fb58cac877f2201fbbfd94a",
+              "size": 186372521,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-16_r07.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-16-google_apis-x86",
+          "path": "system-images/android-16/google_apis/x86",
+          "revision": "16-google_apis-x86"
+        }
+      }
+    },
+    "17": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "a59f26cb5707da97e869a27d87b83477204ac594",
+              "size": 174631794,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-17_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-17-google_apis-armeabi-v7a",
+          "path": "system-images/android-17/google_apis/armeabi-v7a",
+          "revision": "17-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "1ad5ffb51e31f5fe9fa47411fed2c2ade9a33865",
+              "size": 194811128,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-17_r07.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-17-google_apis-x86",
+          "path": "system-images/android-17/google_apis/x86",
+          "revision": "17-google_apis-x86"
+        }
+      }
+    },
+    "18": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "7faaccabbcc5f08e410436d3f63eea42521ea974",
+              "size": 179015960,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-18_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-18-google_apis-armeabi-v7a",
+          "path": "system-images/android-18/google_apis/armeabi-v7a",
+          "revision": "18-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "dd674d719cad61602702be4b3d98edccfbfea53e",
+              "size": 199963568,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-18_r06.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-18-google_apis-x86",
+          "path": "system-images/android-18/google_apis/x86",
+          "revision": "18-google_apis-x86"
+        }
+      }
+    },
+    "19": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "053741c7ef72c7d41394b8a09a1b86238c59c741",
+              "size": 245902018,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-19_r40.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-19-google_apis-armeabi-v7a",
+          "path": "system-images/android-19/google_apis/armeabi-v7a",
+          "revision": "19-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "67528907f6f4479112f63097f4657dad10783f5a",
+              "size": 297020632,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-19_r40.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-19-google_apis-x86",
+          "path": "system-images/android-19/google_apis/x86",
+          "revision": "19-google_apis-x86"
+        }
+      }
+    },
+    "21": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "7aa0a1971365de1dc7989720c643121087026564",
+              "size": 290282953,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-21_r32.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-21-google_apis-armeabi-v7a",
+          "path": "system-images/android-21/google_apis/armeabi-v7a",
+          "revision": "21-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "c6c1d774cec79e6e71c2a24c96d0c45c043d752c",
+              "size": 319430034,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-21_r32.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-21-google_apis-x86",
+          "path": "system-images/android-21/google_apis/x86",
+          "revision": "21-google_apis-x86"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "e98ba60a0fc88d9a81a768e62db5850b6610baa4",
+              "size": 415495987,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-21_r32.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-21-google_apis-x86_64",
+          "path": "system-images/android-21/google_apis/x86_64",
+          "revision": "21-google_apis-x86_64"
+        }
+      }
+    },
+    "22": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "6a61dd66ec8ac8e678cc19c1331047dade07509f",
+              "size": 394864140,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-22_r26.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-22-google_apis-armeabi-v7a",
+          "path": "system-images/android-22/google_apis/armeabi-v7a",
+          "revision": "22-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "859ca1d8dcdaaf931effda3f06af95a3740b60d9",
+              "size": 421293384,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-22_r26.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-22-google_apis-x86",
+          "path": "system-images/android-22/google_apis/x86",
+          "revision": "22-google_apis-x86"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "f99714383c5459d747ac7cdd8043419c6adafe60",
+              "size": 579197399,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-22_r26.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-22-google_apis-x86_64",
+          "path": "system-images/android-22/google_apis/x86_64",
+          "revision": "22-google_apis-x86_64"
+        }
+      }
+    },
+    "23": {
+      "google_apis": {
+        "armeabi-v7a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "d03ac51742e9d7eea559cbef4f44d18d1fc9c92d",
+              "size": 468621931,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/armeabi-v7a-23_r33.zip"
+            }
+          ],
+          "displayName": "Google APIs ARM EABI v7a System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-23-google_apis-armeabi-v7a",
+          "path": "system-images/android-23/google_apis/armeabi-v7a",
+          "revision": "23-google_apis-armeabi-v7a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "c1d91dfcbaa9f1a6b9698893ce995b2771cd6a16",
+              "size": 499428151,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86-23_r33.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-23-google_apis-x86",
+          "path": "system-images/android-23/google_apis/x86",
+          "revision": "23-google_apis-x86"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "4d80dd38edb565641b3b34e713fe0ec6d1d77698",
+              "size": 667471680,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-23_r33.zip"
+            }
+          ],
+          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-23-google_apis-x86_64",
+          "path": "system-images/android-23/google_apis/x86_64",
+          "revision": "23-google_apis-x86_64"
+        }
+      }
+    },
+    "24": {
+      "google_apis_playstore": {
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "b52e9593ffdde65c1a0970256a32e8967c89cc22",
+              "size": 812724041,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-24_r19.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-24-google_apis_playstore-x86",
+          "path": "system-images/android-24/google_apis_playstore/x86",
+          "revision": "24-google_apis_playstore-x86"
+        }
+      }
+    },
+    "25": {
+      "google_apis_playstore": {
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "6f6668954f7fd52f896fe7528aa122028c9b026c",
+              "size": 972461719,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-25_r09.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-25-google_apis_playstore-x86",
+          "path": "system-images/android-25/google_apis_playstore/x86",
+          "revision": "25-google_apis_playstore-x86"
+        }
+      }
+    },
+    "26": {
+      "google_apis_playstore": {
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "2c8bee7b97a309f099941532e63c42a7d4a06e19",
+              "size": 769390078,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-26_r07.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-preview-license",
+          "name": "system-image-26-google_apis_playstore-x86",
+          "path": "system-images/android-26/google_apis_playstore/x86",
+          "revision": "26-google_apis_playstore-x86"
+        }
+      }
+    },
+    "27": {
+      "google_apis_playstore": {
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "eb5a944ceb691ca0648d0a6f0d93893a47223b5d",
+              "size": 758636016,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-27_r03.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-27-google_apis_playstore-x86",
+          "path": "system-images/android-27/google_apis_playstore/x86",
+          "revision": "27-google_apis_playstore-x86"
+        }
+      }
+    },
+    "28": {
+      "google_apis_playstore": {
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "97d9d4f4a2afa8b0f5d52e90748e19c10406ca93",
+              "size": 918028186,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-28_r09.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-28-google_apis_playstore-x86",
+          "path": "system-images/android-28/google_apis_playstore/x86",
+          "revision": "28-google_apis_playstore-x86"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "a767da996fdea7a1f5632a9206fa5c009d6e580c",
+              "size": 1037659724,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-28_r08.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-28-google_apis_playstore-x86_64",
+          "path": "system-images/android-28/google_apis_playstore/x86_64",
+          "revision": "28-google_apis_playstore-x86_64"
+        }
+      }
+    },
+    "29": {
+      "google_apis_playstore": {
+        "x86": {
+          "archives": [
+            {
+              "os": "windows",
+              "sha1": "1c45e690e9ee6a44f40549e9fb68d3fd52ba4970",
+              "size": 1153916727,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-29_r08-windows.zip"
+            },
+            {
+              "os": "macosx",
+              "sha1": "1c45e690e9ee6a44f40549e9fb68d3fd52ba4970",
+              "size": 1153916727,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-29_r08-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "1c45e690e9ee6a44f40549e9fb68d3fd52ba4970",
+              "size": 1153916727,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-29_r08-linux.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-29-google_apis_playstore-x86",
+          "path": "system-images/android-29/google_apis_playstore/x86",
+          "revision": "29-google_apis_playstore-x86"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "windows",
+              "sha1": "94835980b4a6eaeeb41936d7fb1381698e48433a",
+              "size": 1322004798,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-29_r08-windows.zip"
+            },
+            {
+              "os": "macosx",
+              "sha1": "94835980b4a6eaeeb41936d7fb1381698e48433a",
+              "size": 1322004798,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-29_r08-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "94835980b4a6eaeeb41936d7fb1381698e48433a",
+              "size": 1322004798,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-29_r08-linux.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-29-google_apis_playstore-x86_64",
+          "path": "system-images/android-29/google_apis_playstore/x86_64",
+          "revision": "29-google_apis_playstore-x86_64"
+        }
+      }
+    },
+    "30": {
+      "google_apis_playstore": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "macosx",
+              "sha1": "38dc28908c1784a15fbaf64dd8f8d58279d9ce75",
+              "size": 1207055010,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-30_r09-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "38dc28908c1784a15fbaf64dd8f8d58279d9ce75",
+              "size": 1207055010,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-30_r09-linux.zip"
+            }
+          ],
+          "displayName": "Google Play ARM 64 v8a System Image",
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-30-google_apis_playstore-arm64-v8a",
+          "path": "system-images/android-30/google_apis_playstore/arm64-v8a",
+          "revision": "30-google_apis_playstore-arm64-v8a"
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "windows",
+              "sha1": "13c100b62983d64db53cef3d70fea789d89f3232",
+              "size": 1229340756,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-30_r09-windows.zip"
+            },
+            {
+              "os": "macosx",
+              "sha1": "13c100b62983d64db53cef3d70fea789d89f3232",
+              "size": 1229340756,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-30_r09-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "13c100b62983d64db53cef3d70fea789d89f3232",
+              "size": 1229340756,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86-30_r09-linux.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom System Image",
+          "license": "android-sdk-license",
+          "name": "system-image-30-google_apis_playstore-x86",
+          "path": "system-images/android-30/google_apis_playstore/x86",
+          "revision": "30-google_apis_playstore-x86"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "windows",
+              "sha1": "ead1babced6bdfaa8e641faeb6ed115ca603c4a9",
+              "size": 1404405641,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r10-windows.zip"
+            },
+            {
+              "os": "macosx",
+              "sha1": "ead1babced6bdfaa8e641faeb6ed115ca603c4a9",
+              "size": 1404405641,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r10-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "ead1babced6bdfaa8e641faeb6ed115ca603c4a9",
+              "size": 1404405641,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r10-linux.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-30-google_apis_playstore-x86_64",
+          "path": "system-images/android-30/google_apis_playstore/x86_64",
+          "revision": "30-google_apis_playstore-x86_64"
+        }
+      }
+    },
+    "S": {
+      "google_apis_playstore": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "macosx",
+              "sha1": "528e302e9966e8320d1c2bdc8235762fe4a9e733",
+              "size": 1333046412,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-S_r03-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "528e302e9966e8320d1c2bdc8235762fe4a9e733",
+              "size": 1333046412,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-S_r03-linux.zip"
+            }
+          ],
+          "displayName": "Google Play ARM 64 v8a System Image",
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-S-google_apis_playstore-arm64-v8a",
+          "path": "system-images/android-S/google_apis_playstore/arm64-v8a",
+          "revision": "S-google_apis_playstore-arm64-v8a"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "windows",
+              "sha1": "093e0537cb18b25d8399a1af3ec955d2085f15ff",
+              "size": 1384401947,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-S_r03-windows.zip"
+            },
+            {
+              "os": "macosx",
+              "sha1": "093e0537cb18b25d8399a1af3ec955d2085f15ff",
+              "size": 1384401947,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-S_r03-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "093e0537cb18b25d8399a1af3ec955d2085f15ff",
+              "size": 1384401947,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-S_r03-linux.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "license": "android-sdk-preview-license",
+          "name": "system-image-S-google_apis_playstore-x86_64",
+          "path": "system-images/android-S/google_apis_playstore/x86_64",
+          "revision": "S-google_apis_playstore-x86_64"
+        }
+      }
+    }
+  },
+  "licenses": {
+    "android-googletv-license": [
+      "Terms and Conditions\n\nThis is the Google TV Add-on for the Android Software Development Kit License Agreement.\n\n1. Introduction\n\n1.1 The Google TV Add-on for the Android Software Development Kit (referred to in this License Agreement as the \"Google TV Add-on\" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the Google TV Add-on.\n\n1.2 \"Google\" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.\n\n2. Accepting this License Agreement\n\n2.1 In order to use the Google TV Add-on, you must first agree to this License Agreement. You may not use the Google TV Add-on if you do not accept this License Agreement.\n\n2.2 You can accept this License Agreement by:\n\n(A) clicking to accept or agree to this License Agreement, where this option is made available to you; or\n\n(B) by actually using the Google TV Add-on. In this case, you agree that use of the Google TV Add-on constitutes acceptance of the License Agreement from that point onwards.\n\n2.3 You may not use the Google TV Add-on and may not accept the Licensing Agreement if you are a person barred from receiving the Google TV Add-on under the laws of the United States or other countries including the country in which you are resident or from which you use the Google TV Add-on.\n\n2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the Licensing Agreement or use the Google TV Add-on on behalf of your employer or other entity.\n\n3. Google TV Add-on License from Google\n\n3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non- assignable and non-exclusive license to use the Google TV Add-on solely to develop applications to run on the Google TV platform.\n\n3.2 You agree that Google or third parties own all legal right, title and interest in and to the Google TV Add-on, including any Intellectual Property Rights that subsist in the Google TV Add-on. \"Intellectual Property Rights\" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.\n\n3.3 Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Google TV Add-on or any part of the Google TV Add-on. Except to the extent required by applicable third party licenses, you may not load any part of the Google TV Add-on onto a mobile handset, television, or any other hardware device except a personal computer, combine any part of the Google TV Add-on with other software, or distribute any software or device incorporating a part of the Google TV Add-on.\n\n3.4 Use, reproduction and distribution of components of the Google TV Add-on licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.\n\n3.5 You agree that the form and nature of the Google TV Add-on that Google provides may change without prior notice to you and that future versions of the Google TV Add-on may be incompatible with applications developed on previous versions of the Google TV Add-on. You agree that Google may stop (permanently or temporarily) providing the Google TV Add-on (or any features within the Google TV Add-on) to you or to users generally at Google's sole discretion, without prior notice to you.\n\n3.6 Nothing in this License Agreement gives you a right to use any of Google's or it’s licensors’ trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.\n\n3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Google TV Add-on.\n\n4. Use of the Google TV Add-on by You\n\n4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the Google TV Add-on, including any intellectual property rights that subsist in those applications.\n\n4.2 You agree to use the Google TV Add-on and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).\n\n4.3 You agree that if you use the Google TV Add-on to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, your must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you explicit permission to do so.\n\n4.4 You agree that you will not engage in any activity with the Google TV Add-on, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google, Multichannel Video Program Distributors or any mobile communications carrier.\n\n4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through the Google TV platform and/or applications for the Google TV platform, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.\n\n4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.\n\n5. Your Developer Credentials\n\n5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.\n\n6. Privacy and Information\n\n6.1 In order to continually innovate and improve the Google TV Add-on, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Google TV Add-on are being used and how they are being used. Before any of this information is collected, the Google TV Add-on will notify you and seek your consent. If you withhold consent, the information will not be collected.\n\n6.2 The data collected is examined in the aggregate to improve the Google TV Add-on and is maintained in accordance with Google's Privacy Policy.\n\n7. Third Party Applications for the Google TV Platform\n\n7.1 If you use the Google TV Add-on to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.\n\n7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.\n\n7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.\n\n8. Using Google TV APIs\n\n8.1 If you use any Google TV API to retrieve data from Google, you acknowledge that the data (“Google TV API Content”) may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service. Some portions of the Google TV API Content are licensed to Google by third parties, including but not limited to Tribune Media Services\n\n8.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.\n\n8.3 Except as explicitly permitted in Section 3 (Google TV Add-on License from Google), you must:\n\n(a) not modify nor format the Google TV API Content except to the extent reasonably and technically necessary to optimize the display such Google TV API Content in your application;\n\n(b) not edit the Google TV API Content in a manner that renders the Google TV API Content inaccurate of alters its inherent meaning (provided that displaying excerpts will not violate the foregoing); or\n\n(c) not create any commercial audience measurement tool or service using the Google TV API Content\n\n9. Terminating this License Agreement\n\n9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.\n\n9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the Google TV Add-on and any relevant developer credentials.\n\n9.3 Google may at any time, terminate this License Agreement with you if:\n\n(A) you have breached any provision of this License Agreement; or\n\n(B) Google is required to do so by law; or\n\n(C) the partner with whom Google offered certain parts of Google TV Add-on (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the Google TV Add-on to you; or\n\n(D) Google decides to no longer providing the Google TV Add-on or certain parts of the Google TV Add-on to users in the country in which you are resident or from which you use the service, or the provision of the Google TV Add-on or certain Google TV Add-on services to you by Google is, in Google's sole discretion, no longer commercially viable.\n\n9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.\n\n10. DISCLAIMER OF WARRANTIES\n\n10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE GOOGLE TV ADD-ON IS AT YOUR SOLE RISK AND THAT THE GOOGLE TV ADD-ON IS PROVIDED \"AS IS\" AND \"AS AVAILABLE\" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.\n\n10.2 YOUR USE OF THE GOOGLE TV ADD-ON AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE GOOGLE TV ADD-ON IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.\n\n10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n\n11. LIMITATION OF LIABILITY\n\n11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.\n\n12. Indemnification\n\n12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the Google TV Add-on, (b) any application you develop on the Google TV Add-on that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.\n\n13. Changes to the License Agreement\n\n13.1 Google may make changes to the License Agreement as it distributes new versions of the Google TV Add-on.\n\n14. General Legal Terms\n\n14.1 This License Agreement constitute the whole legal agreement between you and Google and govern your use of the Google TV Add-on (excluding any services which Google may provide to you under a separate written agreement), and completely replace any prior agreements between you and Google in relation to the Google TV Add-on.\n\n14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.\n\n14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.\n\n14.4 You acknowledge and agree that Google’s API data licensors and each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.\n\n14.5 EXPORT RESTRICTIONS. THE GOOGLE TV ADD-ON IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE GOOGLE TV ADD-ON. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.\n\n14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.\n\n14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.\n\n\nAugust 15, 2011"
+    ],
+    "android-sdk-arm-dbt-license": [
+      "Terms and Conditions\n\nThis is the Android Software Development Kit License Agreement\n\n1. Introduction\n\n1.1 The Android Software Development Kit (referred to in the License Agreement as the \"SDK\" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.\n\n1.2 \"Android\" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.\n\n1.3 A \"compatible implementation\" means any Android device that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).\n\n1.4 \"Google\" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.\n\n\n2. Accepting the License Agreement\n\n2.1 In order to use the SDK, you must first agree to the License Agreement. You may not use the SDK if you do not accept the License Agreement.\n\n2.2 By clicking to accept, you hereby agree to the terms of the License Agreement.\n\n2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries, including the country in which you are resident or from which you use the SDK.\n\n2.4 If you are agreeing to be bound by the License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.\n\n\n3. SDK License from Google\n\n3.1 Subject to the terms of the License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the SDK solely to develop applications for compatible implementations of Android.\n\n3.2 You may not use this SDK to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this SDK is not used for that purpose.\n\n3.3 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. \"Intellectual Property Rights\" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.\n\n3.4 You may not use the SDK for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK.\n\n3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement.\n\n3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.\n\n3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.\n\n3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.\n\n\n4. Use of the SDK by You\n\n4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.\n\n4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) the License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).\n\n4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.\n\n4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.\n\n4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.\n\n4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.\n\n4.7 This software enables the execution of intellectual property owned by Arm Limited. You agree that your use of the software, that allows execution of ARM Instruction Set Architecture (“ISA”) compliant executables for application development and debug only on x86 desktop, laptop, customer on-premise servers, and customer-procured cloud-based environments.\n\n5. Your Developer Credentials\n\n5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.\n\n6. Privacy and Information\n\n6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.\n\n6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.\n\n\n7. Third Party Applications\n\n7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.\n\n7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.\n\n7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, the License Agreement does not affect your legal relationship with these third parties.\n\n\n8. Using Android APIs\n\n8.1 Google Data APIs\n\n8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.\n\n8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so. If you use the Android Recognition Service API, documented at the following URL: https://developer.android.com/reference/android/speech/RecognitionService, as updated from time to time, you acknowledge that the use of the API is subject to the Data Processing Addendum for Products where Google is a Data Processor, which is located at the following URL: https://privacy.google.com/businesses/gdprprocessorterms/, as updated from time to time. By clicking to accept, you hereby agree to the terms of the Data Processing Addendum for Products where Google is a Data Processor.\n\n\n9. Terminating the License Agreement\n\n9.1 The License Agreement will continue to apply until terminated by either you or Google as set out below.\n\n9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.\n\n9.3 Google may at any time, terminate the License Agreement with you if: (A) you have breached any provision of the License Agreement; or (B) Google is required to do so by law; or (C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or (D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.\n\n9.4 When the License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst the License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.\n\n\n10. DISCLAIMER OF WARRANTIES\n\n10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED \"AS IS\" AND \"AS AVAILABLE\" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.\n\n10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.\n\n10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n\n\n11. LIMITATION OF LIABILITY\n\n11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.\n\n\n12. Indemnification\n\n12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with the License Agreement.\n\n\n13. Changes to the License Agreement\n\n13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.\n\n\n14. General Legal Terms\n\n14.1 The License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.\n\n14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.\n\n14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.\n\n14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.\n\n14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.\n\n14.6 The rights granted in the License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under the License Agreement without the prior written approval of the other party.\n\n14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.\n\n\nJanuary 16, 2019"
+    ],
+    "android-sdk-license": [
+      "Terms and Conditions\n\nThis is the Android Software Development Kit License Agreement\n\n1. Introduction\n\n1.1 The Android Software Development Kit (referred to in the License Agreement as the \"SDK\" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.\n\n1.2 \"Android\" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.\n\n1.3 A \"compatible implementation\" means any Android device that (i) complies with the Android Compatibility Definition document, which can be found at the Android compatibility website (http://source.android.com/compatibility) and which may be updated from time to time; and (ii) successfully passes the Android Compatibility Test Suite (CTS).\n\n1.4 \"Google\" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.\n\n\n2. Accepting the License Agreement\n\n2.1 In order to use the SDK, you must first agree to the License Agreement. You may not use the SDK if you do not accept the License Agreement.\n\n2.2 By clicking to accept, you hereby agree to the terms of the License Agreement.\n\n2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries, including the country in which you are resident or from which you use the SDK.\n\n2.4 If you are agreeing to be bound by the License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.\n\n\n3. SDK License from Google\n\n3.1 Subject to the terms of the License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the SDK solely to develop applications for compatible implementations of Android.\n\n3.2 You may not use this SDK to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. You are of course free to develop applications for other platforms, including non-compatible implementations of Android, provided that this SDK is not used for that purpose.\n\n3.3 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. \"Intellectual Property Rights\" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.\n\n3.4 You may not use the SDK for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK.\n\n3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement.\n\n3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.\n\n3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.\n\n3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.\n\n\n4. Use of the SDK by You\n\n4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.\n\n4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) the License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).\n\n4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.\n\n4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.\n\n4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.\n\n4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.\n\n5. Your Developer Credentials\n\n5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.\n\n6. Privacy and Information\n\n6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.\n\n6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.\n\n\n7. Third Party Applications\n\n7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.\n\n7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.\n\n7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, the License Agreement does not affect your legal relationship with these third parties.\n\n\n8. Using Android APIs\n\n8.1 Google Data APIs\n\n8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.\n\n8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so. If you use the Android Recognition Service API, documented at the following URL: https://developer.android.com/reference/android/speech/RecognitionService, as updated from time to time, you acknowledge that the use of the API is subject to the Data Processing Addendum for Products where Google is a Data Processor, which is located at the following URL: https://privacy.google.com/businesses/gdprprocessorterms/, as updated from time to time. By clicking to accept, you hereby agree to the terms of the Data Processing Addendum for Products where Google is a Data Processor.\n\n\n9. Terminating the License Agreement\n\n9.1 The License Agreement will continue to apply until terminated by either you or Google as set out below.\n\n9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.\n\n9.3 Google may at any time, terminate the License Agreement with you if: (A) you have breached any provision of the License Agreement; or (B) Google is required to do so by law; or (C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or (D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.\n\n9.4 When the License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst the License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.\n\n\n10. DISCLAIMER OF WARRANTIES\n\n10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED \"AS IS\" AND \"AS AVAILABLE\" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.\n\n10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.\n\n10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n\n\n11. LIMITATION OF LIABILITY\n\n11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.\n\n\n12. Indemnification\n\n12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with the License Agreement.\n\n\n13. Changes to the License Agreement\n\n13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.\n\n\n14. General Legal Terms\n\n14.1 The License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.\n\n14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.\n\n14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.\n\n14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.\n\n14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.\n\n14.6 The rights granted in the License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under the License Agreement without the prior written approval of the other party.\n\n14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.\n\n\nJanuary 16, 2019"
+    ],
+    "android-sdk-preview-license": [
+      "To get started with the Android SDK Preview, you must agree to the following terms and conditions. As described below, please note that this is a preview version of the Android SDK, subject to change, that you use at your own risk. The Android SDK Preview is not a stable release, and may contain errors and defects that can result in serious damage to your computer systems, devices and data.\n\nThis is the Android SDK Preview License Agreement (the \"License Agreement\").\n\n1. Introduction\n\n1.1 The Android SDK Preview (referred to in the License Agreement as the “Preview” and specifically including the Android system files, packaged APIs, and Preview library files, if and when they are made available) is licensed to you subject to the terms of the License Agreement. The License Agreement forms a legally binding contract between you and Google in relation to your use of the Preview.\n\n1.2 \"Android\" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.\n\n1.3 \"Google\" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.\n\n2. Accepting the License Agreement\n\n2.1 In order to use the Preview, you must first agree to the License Agreement. You may not use the Preview if you do not accept the License Agreement.\n\n2.2 By clicking to accept and/or using the Preview, you hereby agree to the terms of the License Agreement.\n\n2.3 You may not use the Preview and may not accept the License Agreement if you are a person barred from receiving the Preview under the laws of the United States or other countries including the country in which you are resident or from which you use the Preview.\n\n2.4 If you will use the Preview internally within your company or organization you agree to be bound by the License Agreement on behalf of your employer or other entity, and you represent and warrant that you have full legal authority to bind your employer or such entity to the License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the Preview on behalf of your employer or other entity.\n\n3. Preview License from Google\n\n3.1 Subject to the terms of the License Agreement, Google grants you a royalty-free, non-assignable, non-exclusive, non-sublicensable, limited, revocable license to use the Preview, personally or internally within your company or organization, solely to develop applications to run on the Android platform.\n\n3.2 You agree that Google or third parties owns all legal right, title and interest in and to the Preview, including any Intellectual Property Rights that subsist in the Preview. \"Intellectual Property Rights\" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.\n\n3.3 You may not use the Preview for any purpose not expressly permitted by the License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the Preview or any part of the Preview; or (b) load any part of the Preview onto a mobile handset or any other hardware device except a personal computer, combine any part of the Preview with other software, or distribute any software or device incorporating a part of the Preview.\n\n3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the Preview.\n\n3.5 Use, reproduction and distribution of components of the Preview licensed under an open source software license are governed solely by the terms of that open source software license and not the License Agreement. You agree to remain a licensee in good standing in regard to such open source software licenses under all the rights granted and to refrain from any actions that may terminate, suspend, or breach such rights.\n\n3.6 You agree that the form and nature of the Preview that Google provides may change without prior notice to you and that future versions of the Preview may be incompatible with applications developed on previous versions of the Preview. You agree that Google may stop (permanently or temporarily) providing the Preview (or any features within the Preview) to you or to users generally at Google's sole discretion, without prior notice to you.\n\n3.7 Nothing in the License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.\n\n3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the Preview.\n\n4. Use of the Preview by You\n\n4.1 Google agrees that nothing in the License Agreement gives Google any right, title or interest from you (or your licensors) under the License Agreement in or to any software applications that you develop using the Preview, including any intellectual property rights that subsist in those applications.\n\n4.2 You agree to use the Preview and write applications only for purposes that are permitted by (a) the License Agreement, and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).\n\n4.3 You agree that if you use the Preview to develop applications, you will protect the privacy and legal rights of users. If users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If users provide you with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, each user has given you permission to do so.\n\n4.4 You agree that you will not engage in any activity with the Preview, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of Google or any third party.\n\n4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.\n\n4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under the License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.\n\n4.7 The Preview is in development, and your testing and feedback are an important part of the development process. By using the Preview, you acknowledge that implementation of some features are still under development and that you should not rely on the Preview having the full functionality of a stable release. You agree not to publicly distribute or ship any application using this Preview as this Preview will no longer be supported after the official Android SDK is released.\n\n5. Your Developer Credentials\n\n5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.\n\n6. Privacy and Information\n\n6.1 In order to continually innovate and improve the Preview, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the Preview are being used and how they are being used. Before any of this information is collected, the Preview will notify you and seek your consent. If you withhold consent, the information will not be collected.\n\n6.2 The data collected is examined in the aggregate to improve the Preview and is maintained in accordance with Google's Privacy Policy located at http://www.google.com/policies/privacy/.\n\n7. Third Party Applications\n\n7.1 If you use the Preview to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.\n\n7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.\n\n7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party.\n\n8. Using Google APIs\n\n8.1 Google APIs\n\n8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.\n\n8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.\n\n9. Terminating the License Agreement\n\n9.1 the License Agreement will continue to apply until terminated by either you or Google as set out below.\n\n9.2 If you want to terminate the License Agreement, you may do so by ceasing your use of the Preview and any relevant developer credentials.\n\n9.3 Google may at any time, terminate the License Agreement, with or without cause, upon notice to you.\n\n9.4 The License Agreement will automatically terminate without notice or other action upon the earlier of: (A) when Google ceases to provide the Preview or certain parts of the Preview to users in the country in which you are resident or from which you use the service; and (B) Google issues a final release version of the Android SDK.\n\n9.5 When the License Agreement is terminated, the license granted to you in the License Agreement will terminate, you will immediately cease all use of the Preview, and the provisions of paragraphs 10, 11, 12 and 14 shall survive indefinitely.\n\n10. DISCLAIMERS\n\n10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE PREVIEW IS AT YOUR SOLE RISK AND THAT THE PREVIEW IS PROVIDED \"AS IS\" AND \"AS AVAILABLE\" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.\n\n10.2 YOUR USE OF THE PREVIEW AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE PREVIEW IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. WITHOUT LIMITING THE FOREGOING, YOU UNDERSTAND THAT THE PREVIEW IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.\n\n10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n\n11. LIMITATION OF LIABILITY\n\n11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.\n\n12. Indemnification\n\n12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys’ fees) arising out of or accruing from (a) your use of the Preview, (b) any application you develop on the Preview that infringes any Intellectual Property Rights of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you of the License Agreement.\n\n13. Changes to the License Agreement\n\n13.1 Google may make changes to the License Agreement as it distributes new versions of the Preview. When these changes are made, Google will make a new version of the License Agreement available on the website where the Preview is made available.\n\n14. General Legal Terms\n\n14.1 the License Agreement constitutes the whole legal agreement between you and Google and governs your use of the Preview (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the Preview.\n\n14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in the License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.\n\n14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of the License Agreement is invalid, then that provision will be removed from the License Agreement without affecting the rest of the License Agreement. The remaining provisions of the License Agreement will continue to be valid and enforceable.\n\n14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to the License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of the License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to the License Agreement.\n\n14.5 EXPORT RESTRICTIONS. THE PREVIEW IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE PREVIEW. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.\n\n14.6 The License Agreement may not be assigned or transferred by you without the prior written approval of Google, and any attempted assignment without such approval will be void. You shall not delegate your responsibilities or obligations under the License Agreement without the prior written approval of Google.\n\n14.7 The License Agreement, and your relationship with Google under the License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from the License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.\n\nJune 2014."
+    ],
+    "google-gdk-license": [
+      "This is a Developer Preview of the GDK that is subject to change.\n\nTerms and Conditions\n\nThis is the Glass Development Kit License Agreement.\n\n1. Introduction\n\n1.1 The Glass Development Kit (referred to in this License Agreement as the \"GDK\" and specifically including the Android system files, packaged APIs, and GDK library files, if and when they are made available) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the GDK.\n\n1.2 \"Glass\" means Glass devices and the Glass software stack for use on Glass devices.\n\n\n1.3 \"Android\" means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.\n\n1.4 \"Google\" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.\n\n2. Accepting this License Agreement\n\n2.1 In order to use the GDK, you must first agree to this License Agreement. You may not use the GDK if you do not accept this License Agreement.\n\n2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.\n\n2.3 You may not use the GDK and may not accept the License Agreement if you are a person barred from receiving the GDK under the laws of the United States or other countries including the country in which you are resident or from which you use the GDK.\n\n2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the GDK on behalf of your employer or other entity.\n\n3. GDK License from Google\n\n3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the GDK solely to develop applications to run on the Glass platform for Glass devices.\n\n3.2 You agree that Google or third parties own all legal right, title and interest in and to the GDK, including any Intellectual Property Rights that subsist in the GDK. \"Intellectual Property Rights\" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.\n\n3.3 You may not use the GDK for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the GDK or any part of the GDK; or (b) load any part of the GDK onto a mobile handset or wearable computing device or any other hardware device except a Glass device personal computer, combine any part of the GDK with other software, or distribute any software or device incorporating a part of the GDK.\n\n3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Glass, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the GDK.\n\n3.5 Use, reproduction and distribution of components of the GDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.\n\n3.6 You agree that the form and nature of the GDK that Google provides may change without prior notice to you and that future versions of the GDK may be incompatible with applications developed on previous versions of the GDK. You agree that Google may stop (permanently or temporarily) providing the GDK (or any features within the GDK) to you or to users generally at Google's sole discretion, without prior notice to you.\n\n3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.\n\n3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the GDK.\n\n\n3.9 Your use of any Android system files, packaged APIs, or other components of the GDK which are part of the Android Software Development Kit is subject to the terms of the Android Software Development Kit License Agreement located at http://developer.android.com/sdk/terms.html. These terms are hereby incorporated by reference into this License Agreement.\n\n4. Use of the GDK by You\n\n4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the GDK, including any intellectual property rights that subsist in those applications.\n\n4.2 You agree to use the GDK and write applications only for purposes that are permitted by (a) this License Agreement, (b) the Glass Platform Developer Policies (located at https://developers.google.com/glass/policies, and hereby incorporated into this License Agreement by reference), and (c) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).\n\n4.3 You agree that if you use the GDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.\n\n4.4 You agree that you will not engage in any activity with the GDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google.\n\n4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Glass and/or applications for Glass, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.\n\n4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.\n\n\n4.7 The GDK is in development, and your testing and feedback are an important part of the development process. By using the GDK, you acknowledge that implementation of some features are still under development and that you should not rely on the GDK, Glass devices, Glass system software, Google Mirror API, or Glass services having the full functionality of a stable release.\n\n5. Your Developer Credentials\n\n5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.\n\n6. Privacy and Information\n\n\n6.1 In order to continually innovate and improve the GDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the GDK are being used and how they are being used. Before any of this information is collected, the GDK will notify you and seek your consent. If you withhold consent, the information will not be collected.\n\n6.2 The data collected is examined in the aggregate to improve the GDK and is maintained in accordance with Google's Privacy Policy.\n\n7. Third Party Applications\n\n7.1 If you use the GDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.\n\n7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.\n\n7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.\n\n8. Using Google APIs\n\n8.1 Google APIs\n\n8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.\n\n8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.\n\n9. Terminating this License Agreement\n\n9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.\n\n9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the GDK and any relevant developer credentials.\n\n9.3 Google may at any time, terminate this License Agreement with you if: (A) you have breached any provision of this License Agreement; or (B) Google is required to do so by law; or (C) the partner with whom Google offered certain parts of GDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the GDK to you; or (D) Google decides to no longer provide the GDK or certain parts of the GDK to users in the country in which you are resident or from which you use the service, or the provision of the GDK or certain GDK services to you by Google is, in Google's sole discretion, no longer commercially viable.\n\n9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.\n\n10. DISCLAIMER OF WARRANTIES\n\n10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE GDK IS AT YOUR SOLE RISK AND THAT THE GDK IS PROVIDED \"AS IS\" AND \"AS AVAILABLE\" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.\n\n10.2 YOUR USE OF THE GDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE GDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.\n\n10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n\n11. LIMITATION OF LIABILITY\n\n11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.\n\n12. Indemnification\n\n12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the GDK, (b) any application you develop on the GDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.\n\n13. Changes to the License Agreement\n\n13.1 Google may make changes to the License Agreement as it distributes new versions of the GDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the GDK is made available.\n\n14. General Legal Terms\n\n14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the GDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the GDK.\n\n14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.\n\n14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.\n\n14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.\n\n14.5 EXPORT RESTRICTIONS. THE GDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE GDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.\n\n14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.\n\n14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.\n\nNovember 19, 2013"
+    ],
+    "intel-android-extra-license": [
+      "Intel (R) Hardware Accelerated Execution Manager End-User License Agreement\n\nCopyright (c) 2012 Intel Corporation. All rights reserved.\n\nRedistribution. Redistribution and use in binary form, without modification, are permitted provided that the following conditions are met:\n\n1.Redistributions must reproduce the above copyright notice and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n2.Neither the name of Intel Corporation nor the names of its suppliers may be used to endorse or promote products derived from this software without specific prior written permission.\n\n3.No reverse engineering, de-compilation, or disassembly of this software is permitted. Limited patent license. Intel Corporation grants a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (\"Utilize\") this software, but solely to the extent that any such patent is necessary to Utilize the software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder.\n\nDISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+    ],
+    "intel-android-sysimage-license": [
+      "Intel Corporation Internal Evaluation License Agreement for x86 Android* System Images for Android Software Development Kit (SDK) This Internal Evaluation License Agreement (this \"Agreement\") is entered into by and between Intel and you (as an individual developer or a legal entity -- identified below as Recipient). Intel shall provide the Evaluation Software to Recipient as described in accordance with the Internal Evaluation License Terms and Conditions.\n\nDefinitions. These terms shall have the following meanings:\n\n\"Intel\" or \"INTEL\" Intel Corporation With an Address of: 2200 Mission College Blvd. Santa Clara, CA 95052 Office of the General Counsel Mail Stop: RNB-4-51 Attn: Software and Services Group Legal\n\n\"Evaluation Software\" The x86 Android* emulator system images for Android Software Development Kit (SDK), as provided by Intel.\n\nINTERNAL EVALUATION LICENSE TERMS AND CONDITIONS\n\n1. DEFINITIONS.\n\n1.1 Additional Defined Terms. \"Agreement\", \"Evaluation Software\", \"Intel\", \"Non-disclosure Agreement\", \"Recipient\", and \"Effective Date\" shall have the meanings ascribed to them on the signature page(s) of this Agreement.\n\n1.2 Evaluation Materials means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications and other related materials) related to the Evaluation Software.\n\n1.3 \"Open Source Software\" means any software that requires as a condition of use, modification and/or distribution of such software that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).\n\n1.4 \"Pre-Release Materials\" means \"alpha\" or \"beta\" designated pre-release features, which may not be fully functional, which Intel may substantially modify in producing any production version of the Evaluation Materials and/or is still under development by Intel and/or Intel’s suppliers.\n\n2. PURPOSE. Intel desires to provide the Evaluation Materials to Recipient solely for Recipient's internal evaluation of the Evaluation Software and other Intel products, to evaluate the desirability of cooperating with Intel in developing products based on the Evaluation Software and/or to advise Intel as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute or make commercial use of the Evaluation Materials or any modifications to the Evaluation Materials. THE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT AN INTEL SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERICAL VERSION OF THE EVALUATION SOFTWARE.\n\n3. TITLE. Title to the Evaluation Materials remains with Intel or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.\n\n4. LICENSE. Intel grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above. Unless otherwise communicated in writing by Intel to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a \"Release\") the license grant in this Section 4 and the Evaluation Period shall apply to each Release. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software not provided to Recipient in source code form. EXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT.\n\n5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from Intel. Intel and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.\n\n6. MODIFICATIONS. This Agreement does NOT obligate Recipient to provide Intel with comments or suggestions regarding Evaluation Materials. However, should Recipient provide Intel with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) Intel products or processes which may embody the Evaluation Materials, Recipient grants to Intel a non-exclusive, irrevocable, worldwide, royalty-free license, with the right to sublicense Intel’s licensees and customers, under Recipient intellectual property rights, the rights to use and disclose such comments and suggestions in any manner Intel chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of Intel’s and its sublicensee’s products embodying such comments and suggestions in any manner and via any media Intel chooses, without reference to the source.\n\n7. WARRANTY DISCLAIMER. INTEL AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT. THE EVALUATION MATERIALS ARE PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.\n\n8. LIMITATION OF LIABILITY. INTEL AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR ANY SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE. INTEL AND ITS SUPPLIERS DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS RELATING TO THE EVALUATION MATERIALS.\n\n9. EXPIRATION. Intel may terminate this Agreement immediately after a breach by Recipient.\n\n10. GENERAL.\n\n10.1 Controlling Law. Any claims arising under or relating to this Agreement shall be governed by the internal substantive laws of the State of Delaware or federal courts located in Delaware, without regard to principles of conflict of laws. Each party hereby agrees to jurisdiction and venue in the courts of the State of Delaware for all disputes and litigation arising under or relating to this Agreement. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.\n\n10.2 Remedies. Recipient acknowledges that any disclosure, commercialization, or public use of the Evaluation Materials would cause irreparable injury to Intel and consents to the grant of an injunction by any court of competent jurisdiction in the event of a threatened breach.\n\n10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without Intel’s express prior written consent, shall be null and void. Intel may assign this Agreement, and its rights and obligations hereunder, in its sole discretion.\n\n10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and Intel and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and Intel with respect to the subject matter hereof. This Agreement supersedes any and all \"click-to-accept\" or shrink-wrapped licenses, in hard-copy or electronic form, embedded in or included with the Evaluation Materials. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed by duly authorized representatives of Recipient and Intel. Without limiting the foregoing, terms and conditions on any purchase orders or similar materials submitted by Recipient to Intel, and any terms contained in Intel’s standard acknowledgment form that are in conflict with these terms, shall be of no force or effect.\n\n10.5 Severability. In the event that any provision of this Agreement shall be unenforceable or invalid under any applicable law or be so held by applicable court decision, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such provision shall be changed and interpreted so as to best accomplish the objectives of such unenforceable or invalid provision within the limits of applicable law or applicable court decisions.\n\n10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other approval from the U.S. Department of Commerce or any other agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is \"deemed\" to take place when information is released to a foreign national wherever located.\n\n10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments and (iv) Intel can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . Intel is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.\n\n10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header provided with Evaluation Software. Additional detail may be provided (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement. ANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED POSSIBLY WITH FAULTS"
+    ],
+    "mips-android-sysimage-license": [
+      "MIPS Technologies, Inc. (“MIPS”) Internal Evaluation License Agreement for MIPS Android™ System Images for Android Software Development Kit (SDK): This Internal Evaluation License Agreement (this \"Agreement\") is entered into by and between MIPS and you (as an individual developer or a legal entity -- identified below as “Recipient”). MIPS shall make the Evaluation Software available to Recipient as described in accordance with the terms and conditions set forth below.\n\nBy clicking on the “Accept” button, downloading, installing, or otherwise using the Evaluation Materials (defined below), you agree to be bound by the terms of this Agreement effective as of the date you click “Accept” (the “Effective Date”), and if doing so on behalf of an entity, you represent that you are authorized to bind the entity to the terms and conditions of this Agreement. If you do not agree to be bound by the terms and conditions of this Agreement, do not download, install, or use the Evaluation Materials.\n\n1. DEFINITIONS. These terms shall have the following meanings:\n\n1.1 “MIPS” shall mean MIPS Technologies, Inc., a Delaware corporation having a principal place of business at: 955 East Arques Ave., Sunnyvale, CA 94085\n\n1.2 “Evaluation Software” shall mean MIPS Android™ emulator system images for Android Software Development Kit (SDK), as made available to Recipient.\n\n1.3 “Evaluation Materials\" means, collectively, the Evaluation Software (in source and/or object code form) and documentation (including, without limitation, any design documents, specifications, reference manuals, and other related materials) related to the Evaluation Software as made available to Recipient.\n\n1.4 “Open Source Software” means any software that requires (as a condition of use, modification and/or distribution of such software) that such software or other software incorporated into, derived from or distributed with such software (a) be disclosed or distributed in source code form; or (b) be licensed by the user to third parties for the purpose of making and/or distributing derivative works; or (c) be redistributable at no charge. Open Source Software includes, without limitation, software licensed or distributed under any of the following licenses or distribution models, or licenses or distribution models substantially similar to any of the following: (a) GNU’s General Public License (GPL) or Lesser/Library GPL (LGPL), (b) the Artistic License (e.g., PERL), (c) the Mozilla Public License, (d) the Netscape Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Source License (SISL), (g) the Apache Software license and (h) the Common Public License (CPL).\n\n1.5 “Pre-Release Materials” means “alpha” or “beta” designated pre-release features, which may not be fully functional, which MIPS may substantially modify in producing any production version of the Evaluation Materials, and/or which is still under development by MIPS and/or MIPS’ suppliers.\n\n2. PURPOSE. MIPS desires to make the Evaluation Materials available to Recipient solely for Recipient's internal evaluation of the Evaluation Software to evaluate the desirability of cooperating with MIPS in developing products that are compatible with the Evaluation Software and/or to advise MIPS as to possible modifications to the Evaluation Software. Recipient may not disclose, distribute, modify (except to facilitate the above-mentioned internal evaluation), or make commercial use of the Evaluation Materials or any modifications of the Evaluation Materials.\n\nTHE EVALUATION MATERIALS ARE PROVIDED FOR EVALUATION PURPOSES ONLY AND MAY NOT BE MODIFIED (EXCEPT TO FACILITATE THE INTERNAL EVALUATION) OR DISTRIBUTED BY RECIPIENT OR INCORPORATED INTO RECIPIENT’S PRODUCTS OR SOFTWARE. PLEASE CONTACT A MIPS SALES REPRESENTATIVE TO LEARN ABOUT THE AVAILABILITY AND COST OF A COMMERCIAL VERSION OF THE EVALUATION SOFTWARE.\n\n3. TITLE. Title to the Evaluation Materials remains with MIPS or its suppliers. Recipient shall not mortgage, pledge or encumber the Evaluation Materials in any way. Recipient shall return all Evaluation Materials, keeping no copies, upon termination or expiration of this Agreement.\n\n4. LICENSE. MIPS grants Recipient a royalty-free, personal, nontransferable, nonexclusive license under its copyrights to use the Evaluation Software only for the purposes described in paragraph 2 above and only for a period beginning on the Effective Date and extending to the first anniversary of the Effective Date (the “Evaluation Period”). Unless otherwise communicated in writing by MIPS to Recipient, to the extent the Evaluation Software is provided in more than one delivery or release (each, a “Release”) the license grant in this Section 4 and the Evaluation Period shall apply to each Release, in which case the Evaluation Period shall begin on the date that the Release is made generally available and continue to the first anniversary of such date. Recipient may not make modifications to the Evaluation Software. Recipient shall not disassemble, reverse-engineer, or decompile any software that is not provided to Recipient in source code form.\n\n\nEXCEPT AS PROVIDED HEREIN, NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY OTHER MIPS INTELLECTUAL PROPERTY RIGHTS IS GRANTED TO THE RECIPIENT. OTHER THAN AS EXPLICITLY SET FORTH IN PARAGRAPH 2 ABOVE, NO RIGHT TO COPY, TO REPRODUCE, TO MODIFY, OR TO CREATE DERIVATIVE WORKS OF, THE EVALUATION MATERIALS IS GRANTED HEREIN.\n\n5. NO OBLIGATION. Recipient shall have no duty to purchase or license any product from MIPS. MIPS and its suppliers shall have no obligation to provide support for, or develop a non-evaluation version of, the Evaluation Software or to license any version of it.\n\n6. MODIFICATIONS. This Agreement does not obligate Recipient to provide MIPS with comments or suggestions regarding Evaluation Materials. However, should Recipient provide MIPS with comments or suggestions for the modification, correction, improvement or enhancement of (a) the Evaluation Materials or (b) MIPS products or processes which may embody the Evaluation Materials, then Recipient agrees to grant and hereby grants to MIPS a non-exclusive, irrevocable, worldwide, fully paid-up, royalty-free license, with the right to sublicense MIPS’ licensees and customers, under Recipient’s Intellectual property rights, to use and disclose such comments and suggestions in any manner MIPS chooses and to display, perform, copy, make, have made, use, sell, offer to sell, import, and otherwise dispose of MIPS’ and its sublicensee’s products embodying such comments and suggestions in any manner and via any media MIPS chooses, without reference to the source.\n\n7. WARRANTY DISCLAIMER. MIPS AND ITS SUPPLIERS MAKE NO WARRANTIES WITH RESPECT TO EVALUATION MATERIALS, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY IMPLIED WARRANTY OF NONINFRINGEMENT WITH RESPECT TO THIRD PARTY INTELLECTUAL PROPERTY. RECIPIENT ACKNOWLEDGES AND AGREES THAT THE EVALUATION MATERIALS ARE PROVIDED “AS IS,” WITHOUT WARRANTY OF ANY KIND.\n\n8. LIMITATION OF LIABILITY. MIPS AND ITS SUPPLIERS SHALL NOT BE LIABLE FOR ANY PROPERTY DAMAGE, PERSONAL INJURY, LOSS OF PROFITS, INTERRUPTION OF BUSINESS OR FOR ANY DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL OR INCIDENTAL DAMAGES, HOWEVER CAUSED OR ALLEGED, WHETHER FOR BREACH OF WARRANTY, CONTRACT, STRICT LIABILITY OR OTHERWISE, INCLUDING WITHOUT LIMITATION, UNDER TORT OR OTHER LEGAL THEORY. MIPS AND ITS SUPPLIERS DISCLAIM ANY AND ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OF ANY KIND RELATING TO THE EVALUATION MATERIALS.\n\n9. EXPIRATION. MIPS may terminate this Agreement immediately after a breach by Recipient or otherwise at MIPS’ reasonable discretion and upon five (5) business days’ notice to Recipient.\n\n10. GENERAL.\n\n10.1 Controlling Law. This Agreement shall be governed by California law excluding its choice of law rules. With the exception of MIPS’ rights to enforce its intellectual property rights and any confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, all disputes and any claims arising under or relating to this Agreement shall be subject to the exclusive jurisdiction and venue of the state and federal courts located in Santa Clara County, California. Each party hereby agrees to jurisdiction and venue in the courts set forth in the preceding sentence. The parties agree that the United Nations Convention on Contracts for the International Sale of Goods is specifically excluded from application to this Agreement. The parties consent to the personal jurisdiction of the above courts.\n\n10.2 Remedies. Recipient acknowledges and agrees that any breach of confidentiality obligations under this Agreement or any licenses distributed with the Evaluation Materials, as well as any disclosure, commercialization, or public use of the Evaluation Materials, would cause irreparable injury to MIPS, and therefore Recipient agrees to consent to, and hereby consents to, the grant of an injunction by any court of competent jurisdiction in the event of an actual or threatened breach.\n\n10.3 Assignment. Recipient may not delegate, assign or transfer this Agreement, the license granted or any of Recipient’s rights, obligations, or duties hereunder, expressly, by implication, by operation of law, by way of merger (regardless of whether Recipient is the surviving entity) or acquisition, or otherwise and any attempt to do so, without MIPS’ express prior written consent, shall be ineffective, null and void. MIPS may freely assign this Agreement, and its rights and obligations hereunder, in its sole discretion.\n\n10.4 Entire Agreement. This Agreement constitutes the entire agreement between Recipient and MIPS and supersedes in their entirety any and all oral or written agreements previously existing between Recipient and MIPS with respect to the subject matter hereof. This Agreement may only be amended or supplemented by a writing that refers explicitly to this Agreement and that is signed or otherwise accepted by duly authorized representatives of Recipient and MIPS.\n\n10.5 Severability. In the event that any provision of this Agreement is finally adjudicated to be unenforceable or invalid under any applicable law, such unenforceability or invalidity shall not render this Agreement unenforceable or invalid as a whole, and, in such event, such unenforceable or invalid provision shall be interpreted so as to best accomplish the objectives of such provision within the limits of applicable law or applicable court decisions.\n\n10.6 Export Regulations / Export Control. Recipient shall not export, either directly or indirectly, any product, service or technical data or system incorporating the Evaluation Materials without first obtaining any required license or other necessary approval from the U.S. Department of Commerce or any other governing agency or department of the United States Government. In the event any product is exported from the United States or re-exported from a foreign destination by Recipient, Recipient shall ensure that the distribution and export/re-export or import of the product is in compliance with all applicable laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations and the appropriate foreign government. Recipient agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, product, or service, directly or indirectly, to any country for which the United States government or any agency thereof or the foreign government from where it is shipping requires an export license, or other governmental approval, without first obtaining such license or approval. Recipient also agrees to implement measures to ensure that foreign national employees are authorized to receive any information controlled by U.S. export control laws. An export is \"deemed\" to take place when information is released to a foreign national wherever located.\n\n10.7 Special Terms for Pre-Release Materials. If so indicated in the description of the Evaluation Software, the Evaluation Software may contain Pre-Release Materials. Recipient hereby understands, acknowledges and agrees that: (i) Pre-Release Materials may not be fully tested and may contain bugs or errors; (ii) Pre-Release materials are not suitable for commercial release in their current state; (iii) regulatory approvals for Pre-Release Materials (such as UL or FCC) have not been obtained, and Pre-Release Materials may therefore not be certified for use in certain countries or environments or may not be suitable for certain applications and (iv) MIPS can provide no assurance that it will ever produce or make generally available a production version of the Pre-Release Materials . MIPS is not under any obligation to develop and/or release or offer for sale or license a final product based upon the Pre-Release Materials and may unilaterally elect to abandon the Pre-Release Materials or any such development platform at any time and without any obligation or liability whatsoever to Recipient or any other person.\n\nANY PRE-RELEASE MATERIALS ARE NON-QUALIFIED AND, AS SUCH, ARE PROVIDED “AS IS” AND “AS AVAILABLE”, POSSIBLY WITH FAULTS, AND WITHOUT REPRESENTATION OR WARRANTY OF ANY KIND.\n\n10.8 Open Source Software. In the event Open Source software is included with Evaluation Software, such Open Source software is licensed pursuant to the applicable Open Source software license agreement identified in the Open Source software comments in the applicable source code file(s) and/or file header as indicated in the Evaluation Software. Additional detail may be available (where applicable) in the accompanying on-line documentation. With respect to the Open Source software, nothing in this Agreement limits any rights under, or grants rights that supersede, the terms of any applicable Open Source software license agreement.\n"
+    ]
+  },
+  "packages": {
+    "build-tools": {
+      "17.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "2c2872bc3806aabf16a12e3959c2183ddc866e6d",
+            "size": 11696007,
+            "url": "https://dl.google.com/android/repository/build-tools_r17-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "602ee709be9dbb8f179b1e4075148a57f9419930",
+            "size": 12208114,
+            "url": "https://dl.google.com/android/repository/build-tools_r17-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "899897d327b0bad492d3a40d3db4d96119c15bc0",
+            "size": 11004914,
+            "url": "https://dl.google.com/android/repository/build-tools_r17-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 17",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/17.0.0",
+        "revision": "17.0.0"
+      },
+      "18.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "f11618492b0d2270c332325d45d752d3656a9640",
+            "size": 16627330,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d84f5692fb44d60fc53e5b2507cebf9f24626902",
+            "size": 16633121,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a6c2afd0b6289d589351956d2f5212b37014ca7d",
+            "size": 15413527,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 18.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/18.0.1",
+        "revision": "18.0.1"
+      },
+      "18.1.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "f314a0599e51397f0886fe888b50dd98f2f050d8",
+            "size": 20229298,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "16ddb299b8b43063e5bb3387ec17147c5053dfd8",
+            "size": 20451524,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "3a9810fc8559ab03c09378f07531e8cae2f1db30",
+            "size": 19659547,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 18.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/18.1.0",
+        "revision": "18.1.0"
+      },
+      "18.1.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "68c9acbfc0cec2d51b19efaed39831a17055d998",
+            "size": 20229760,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.1.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "a9d9d37f6ddf859e57abc78802a77aaa166e48d4",
+            "size": 20452157,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.1.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c4605066e2f851387ea70bc1442b1968bd7b4a15",
+            "size": 19660000,
+            "url": "https://dl.google.com/android/repository/build-tools_r18.1.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 18.1.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/18.1.1",
+        "revision": "18.1.1"
+      },
+      "19.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "55c1a6cf632e7d346f0002b275ec41fd3137fd83",
+            "size": 21339943,
+            "url": "https://dl.google.com/android/repository/build-tools_r19-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "86ec1c12db1bc446b7bcaefc5cc14eb361044e90",
+            "size": 21441270,
+            "url": "https://dl.google.com/android/repository/build-tools_r19-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6edf505c20f5ece9c48fa0aff9a90488f9654d52",
+            "size": 20611447,
+            "url": "https://dl.google.com/android/repository/build-tools_r19-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 19",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/19.0.0",
+        "revision": "19.0.0"
+      },
+      "19.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "18d2312dc4368858914213087f4e61445aca4517",
+            "size": 21229048,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "efaf50fb19a3edb8d03efbff76f89a249ad2920b",
+            "size": 21450597,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "5ef422bac5b28f4ced108319ed4a6bc7050a6234",
+            "size": 20500648,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 19.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/19.0.1",
+        "revision": "19.0.1"
+      },
+      "19.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "a03a6bdea0091aea32e1b35b90a7294c9f04e3dd",
+            "size": 21352552,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "145bc43065d45f756d99d87329d899052b9a9288",
+            "size": 21453726,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "af664672d0d709c9ae30937b1062317d3ade7f95",
+            "size": 20621117,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 19.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/19.0.2",
+        "revision": "19.0.2"
+      },
+      "19.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "c2d6055478e9d2d4fba476ee85f99181ddd1160c",
+            "size": 21462150,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "651cf8754373b2d52e7f6aab2c52eabffe4e9ea4",
+            "size": 21563992,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "cb46b433b67a0a6910ff00db84be8b527ea3102f",
+            "size": 20730715,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 19.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/19.0.3",
+        "revision": "19.0.3"
+      },
+      "19.1.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "1ff20ac15fa47a75d00346ec12f180d531b3ca89",
+            "size": 21490972,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "0d11aae3417de1efb4b9a0e0a7855904a61bcec1",
+            "size": 21590160,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "13b367fbdbff8132cb4356f716e8dc8a8df745c5",
+            "size": 20812533,
+            "url": "https://dl.google.com/android/repository/build-tools_r19.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 19.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/19.1.0",
+        "revision": "19.1.0"
+      },
+      "20.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b688905526a5584d1327a662d871a635ff502758",
+            "size": 21445463,
+            "url": "https://dl.google.com/android/repository/build-tools_r20-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "1240f629411c108a714c4ddd756937c7fab93f83",
+            "size": 21650508,
+            "url": "https://dl.google.com/android/repository/build-tools_r20-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "cf20720e452b642d5eb59dabe05c0c729b36ec75",
+            "size": 20828006,
+            "url": "https://dl.google.com/android/repository/build-tools_r20-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 20",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/20.0.0",
+        "revision": "20.0.0"
+      },
+      "21.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "4933328fdeecbd554a29528f254f4993468e1cf4",
+            "size": 22153145,
+            "url": "https://dl.google.com/android/repository/build-tools_r21-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "9bef7989b51436bd4e5114d8a0330359f077cbfa",
+            "size": 22668456,
+            "url": "https://dl.google.com/android/repository/build-tools_r21-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "5bc8fd399bc0135a9bc91eec78ddc5af4f54bf32",
+            "size": 22306371,
+            "url": "https://dl.google.com/android/repository/build-tools_r21-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 21",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/21.0.0",
+        "revision": "21.0.0"
+      },
+      "21.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "e573069eea3e5255e7a65bedeb767f4fd0a5f49a",
+            "size": 22153013,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "b60c8f9b810c980abafa04896706f3911be1ade7",
+            "size": 22668616,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "d68e7e6fd7a48c8759aa41d713c9d4f0e4c1c1df",
+            "size": 22306243,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 21.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/21.0.1",
+        "revision": "21.0.1"
+      },
+      "21.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "e1236ab8897b62b57414adcf04c132567b2612a5",
+            "size": 22153122,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "f17471c154058f3734729ef3cc363399b1cd3de1",
+            "size": 22668597,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "37496141b23cbe633167927b7abe6e22d9f1a1c1",
+            "size": 22306371,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 21.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/21.0.2",
+        "revision": "21.0.2"
+      },
+      "21.1.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b7455e543784d52a8925f960bc880493ed1478cb",
+            "size": 32642820,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "df619356c2359aa5eacdd48699d15b335d9bd246",
+            "size": 33158159,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c79d63ac6b713a1e326ad4dae43f2ee76708a2f4",
+            "size": 32797810,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 21.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/21.1.0",
+        "revision": "21.1.0"
+      },
+      "21.1.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "1c712ee3a1ba5a8b0548f9c32f17d4a0ddfd727d",
+            "size": 32642454,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "836a146eab0504aa9387a5132e986fe7c7381571",
+            "size": 33157676,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "53fc4201237f899d5cd92f0b76ad41fb89da188b",
+            "size": 32797356,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 21.1.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/21.1.1",
+        "revision": "21.1.1"
+      },
+      "21.1.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "5e35259843bf2926113a38368b08458735479658",
+            "size": 32637678,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "e7c906b4ba0eea93b32ba36c610dbd6b204bff48",
+            "size": 33152878,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "1d944759c47f60e634d2b8a1f3a4259be2f8d652",
+            "size": 32792587,
+            "url": "https://dl.google.com/android/repository/build-tools_r21.1.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 21.1.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/21.1.2",
+        "revision": "21.1.2"
+      },
+      "22.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "a8a1619dd090e44fac957bce6842e62abf87965b",
+            "size": 33104280,
+            "url": "https://dl.google.com/android/repository/build-tools_r22-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "af95429b24088d704bc5db9bd606e34ac1b82c0d",
+            "size": 33646090,
+            "url": "https://dl.google.com/android/repository/build-tools_r22-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "08fcca41e81b172bd9f570963b90d3a84929e043",
+            "size": 33254114,
+            "url": "https://dl.google.com/android/repository/build-tools_r22-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 22",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/22.0.0",
+        "revision": "22.0.0"
+      },
+      "22.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "da8b9c5c3ede39298e6cf0283c000c2ee9029646",
+            "size": 33104577,
+            "url": "https://dl.google.com/android/repository/build-tools_r22.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "53dad7f608e01d53b17176ba11165acbfccc5bbf",
+            "size": 33646102,
+            "url": "https://dl.google.com/android/repository/build-tools_r22.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "61d8cbe069d9e0a57872a83e5e5abe164b7d52cf",
+            "size": 33254137,
+            "url": "https://dl.google.com/android/repository/build-tools_r22.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 22.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/22.0.1",
+        "revision": "22.0.1"
+      },
+      "23.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "c1d6209212b01469f80fa804e0c1d39a06bc9060",
+            "size": 39080519,
+            "url": "https://dl.google.com/android/repository/build-tools_r23-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "90ba6e716f7703a236cd44b2e71c5ff430855a03",
+            "size": 38070540,
+            "url": "https://dl.google.com/android/repository/build-tools_r23-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "3874948f35f2f8946597679cc6e9151449f23b5d",
+            "size": 38570715,
+            "url": "https://dl.google.com/android/repository/build-tools_r23-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 23",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/23.0.0",
+        "revision": "23.0.0"
+      },
+      "23.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b6ba7c399d5fa487d95289d8832e4ad943aed556",
+            "size": 39069295,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d96ec1522721e9a179ae2c591c99f75d31d39718",
+            "size": 38059328,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "cc1d37231d228f7a6f130e1f8d8c940052f0f8ab",
+            "size": 38558889,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 23.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/23.0.1",
+        "revision": "23.0.1"
+      },
+      "23.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "8a9f2b37f6fcf7a9fa784dc21aeaeb41bbb9f2c3",
+            "size": 39071201,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "482c4cbceef8ff58aefd92d8155a38610158fdaf",
+            "size": 38060914,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fc3a92c744d3ba0a16ccb5d2b41eea5974ce0a96",
+            "size": 38217626,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 23.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/23.0.2",
+        "revision": "23.0.2"
+      },
+      "23.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "368f2600feac7e9b511b82f53d1f2240ae4a91a3",
+            "size": 40733174,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "fbc98cd303fd15a31d472de6c03bd707829f00b0",
+            "size": 39679533,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c6d8266c6a3243c8f1e41b786c0e3cee4c781263",
+            "size": 39869945,
+            "url": "https://dl.google.com/android/repository/build-tools_r23.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 23.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/23.0.3",
+        "revision": "23.0.3"
+      },
+      "24.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "c6271c4d78a5612ea6c7150688bcd5b7313de8d1",
+            "size": 48960919,
+            "url": "https://dl.google.com/android/repository/build-tools_r24-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "97fc4ed442f23989cc488d02c1d1de9bdde241de",
+            "size": 48747930,
+            "url": "https://dl.google.com/android/repository/build-tools_r24-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "dc61b9e5b451a0c3ec42ae2b1ce27c4d3c8da9f7",
+            "size": 49535326,
+            "url": "https://dl.google.com/android/repository/build-tools_r24-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 24",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/24.0.0",
+        "revision": "24.0.0"
+      },
+      "24.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "84f18c392919a074fcbb9b1d967984e6b2fef8b4",
+            "size": 48936286,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "5c6457fcdfa07724fb086d8ff4e8316fc0742848",
+            "size": 48726085,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "ac4a7cea42c3ef74d7fbf1b992fad311c550034e",
+            "size": 49511883,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 24.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/24.0.1",
+        "revision": "24.0.1"
+      },
+      "24.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "f199a7a788c3fefbed102eea34d6007737b803cf",
+            "size": 48936295,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "8bb8fc575477491d5957de743089df412de55cda",
+            "size": 48726190,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "09586a1f1c39bcfa7db5205c9a07837247deb67e",
+            "size": 49512513,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 24.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/24.0.2",
+        "revision": "24.0.2"
+      },
+      "24.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "9e8cc49d66e03fa1a8ecc1ac3e58f1324f5da304",
+            "size": 49779151,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "a01c15f1b105c34595681075e1895d58b3fff48c",
+            "size": 49568967,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8b960d693fd4163caeb8dc5f5f5f80b10987089c",
+            "size": 50354788,
+            "url": "https://dl.google.com/android/repository/build-tools_r24.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 24.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/24.0.3",
+        "revision": "24.0.3"
+      },
+      "25.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "f2bbda60403e75cabd0f238598c3b4dfca56ea44",
+            "size": 49872921,
+            "url": "https://dl.google.com/android/repository/build-tools_r25-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "273c5c29a65cbed00e44f3aa470bbd7dce556606",
+            "size": 49659466,
+            "url": "https://dl.google.com/android/repository/build-tools_r25-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f9258f2308ff8b62cfc4513d40cb961612d07b6a",
+            "size": 50451378,
+            "url": "https://dl.google.com/android/repository/build-tools_r25-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 25",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/25.0.0",
+        "revision": "25.0.0"
+      },
+      "25.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "ff063d252ab750d339f5947d06ff782836f22bac",
+            "size": 49880178,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "7bf7f22d7d48ef20b6ab0e3d7a2912e5c088340f",
+            "size": 49667353,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c6c61393565ccf46349e7f44511e5db7c1c6169d",
+            "size": 50458759,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 25.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/25.0.1",
+        "revision": "25.0.1"
+      },
+      "25.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "ff953c0177e317618fda40516f3e9d95fd43c7ae",
+            "size": 49880329,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "12a5204bb3b6e39437535469fde7ddf42da46b16",
+            "size": 49667185,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "2fee3c0704d6ecc480570450d8b8069b2c4a2dd4",
+            "size": 50458908,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 25.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/25.0.2",
+        "revision": "25.0.2"
+      },
+      "25.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "db95f3a0ae376534d4d69f4cdb6fad20649f3509",
+            "size": 50757258,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "160d2fefb5ce68e443427fc30a793a703b63e26e",
+            "size": 50545085,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "1edcb109ae5133aebfed573cf0bc84e0c353c28d",
+            "size": 51337442,
+            "url": "https://dl.google.com/android/repository/build-tools_r25.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 25.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/25.0.3",
+        "revision": "25.0.3"
+      },
+      "26.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "1cbe72929876f8a872ab1f1b1040a9f720261f59",
+            "size": 53854197,
+            "url": "https://dl.google.com/android/repository/build-tools_r26-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d01a1aeca03747245f1f5936b3cb01759c66d086",
+            "size": 53010814,
+            "url": "https://dl.google.com/android/repository/build-tools_r26-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "896ebd31117c09db220f7a3116cc0e5121c78b9d",
+            "size": 54681641,
+            "url": "https://dl.google.com/android/repository/build-tools_r26-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 26",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/26.0.0",
+        "revision": "26.0.0"
+      },
+      "26.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "5378c2c78091b414d0eac40a6bd37f2faa31a365",
+            "size": 54113329,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "cbde59de198916b390777dd0227921bfa2120832",
+            "size": 53266653,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "02494c80ffbe65bfff0aaa7463c9692693327b7d",
+            "size": 54936185,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 26.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/26.0.1",
+        "revision": "26.0.1"
+      },
+      "26.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "5b2b7b66c7bf2151f2af183b5b50a17808850592",
+            "size": 54440678,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d9ed7c7f149ce38be5dc08979aea8acec1459ca0",
+            "size": 53830573,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "39ca02d3faa49859cd9d1bc0adc2f331017b699b",
+            "size": 55161474,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 26.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/26.0.2",
+        "revision": "26.0.2"
+      },
+      "26.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "8a2e6c1bcd845844523a68aa17e5442f0dce328c",
+            "size": 54449983,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "5bb90ed935d99e5bc90686f43b852e68c5ad40df",
+            "size": 53839758,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "460e511a9616b4661cc8dba0102d9d990ae60160",
+            "size": 55170919,
+            "url": "https://dl.google.com/android/repository/build-tools_r26.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 26.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/26.0.3",
+        "revision": "26.0.3"
+      },
+      "27.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "28542332ba97cf4a08c3eddfcf5edd70e3cf1260",
+            "size": 54441725,
+            "url": "https://dl.google.com/android/repository/build-tools_r27-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "fb4e8d7e6b8d29a77090e34024077a80458d5ae1",
+            "size": 53831513,
+            "url": "https://dl.google.com/android/repository/build-tools_r27-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "4f1df22a6d99261d2160d624b81445da0a027dbe",
+            "size": 55163097,
+            "url": "https://dl.google.com/android/repository/build-tools_r27-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 27",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/27.0.0",
+        "revision": "27.0.0"
+      },
+      "27.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "7f4eedb1077ef948b848040dcd15de9e8a759f4a",
+            "size": 54450260,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "1edd07bfdbadd95652d093040e16d858f7489594",
+            "size": 53838762,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "18109db020c6d088d0157d1df201d31bc6970875",
+            "size": 55171114,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 27.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/27.0.1",
+        "revision": "27.0.1"
+      },
+      "27.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b687ddf6be84f11607871138aad32cf857d0b837",
+            "size": 54458153,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "6d5d9cf2a47877f273f4b742b19e712a051a31be",
+            "size": 53846615,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "b80466c13b75e3ebf3c546964f40775db5898b2a",
+            "size": 55173070,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 27.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/27.0.2",
+        "revision": "27.0.2"
+      },
+      "27.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "d85e7a6320eddffe7eeace3437605079dac938ca",
+            "size": 54478554,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "61d9fb18790c68d66ff73bf1e7ad56bc1f1eef2d",
+            "size": 53867966,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "0df61e11713a2838d2cc9a911219dddf5e6a2749",
+            "size": 55194255,
+            "url": "https://dl.google.com/android/repository/build-tools_r27.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 27.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/27.0.3",
+        "revision": "27.0.3"
+      },
+      "28.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "d9f8a754d833ccd334f56fcc6089c5925cd82abb",
+            "size": 37157769,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "72088d32d1d82cc3c2cf7cf6618b6130c0c84ade",
+            "size": 36458977,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "d4b0638a877ed570e07876264e69fdbd86409610",
+            "size": 37718995,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 28",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/28.0.0",
+        "revision": "28.0.0"
+      },
+      "28.0.0-rc1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "1601977fae25fd478bcfaa0481ca5ea3c609d840",
+            "size": 38703535,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-rc1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "2c77821967a2330b7b227072d0b1c02ef19fe2fc",
+            "size": 38004795,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-rc1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fbf46c33d1268f6532911707b2a05033fd5c5b41",
+            "size": 39273232,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 28-rc1",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/28.0.0-rc1",
+        "revision": "28.0.0-rc1"
+      },
+      "28.0.0-rc2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "efe9c0dde0646a07544c864276390ca6e96b24dc",
+            "size": 37151124,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-rc2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "0d0314b353589feb10e528b44c5a685b6658d797",
+            "size": 36449480,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-rc2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a94bfb52b4ec74b95c116236c3e382e923cad6c4",
+            "size": 37716459,
+            "url": "https://dl.google.com/android/repository/build-tools_r28-rc2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 28-rc2",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/28.0.0-rc2",
+        "revision": "28.0.0-rc2"
+      },
+      "28.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "ee70dfa1fccb58b37cebc9544830511f36a137a0",
+            "size": 57610954,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "aeef42ad953f1630dd6f5d71eefdc0b825211462",
+            "size": 56913869,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "29c6342835734be25b9e458ab3fad5750ad6a355",
+            "size": 58173989,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 28.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/28.0.1",
+        "revision": "28.0.1"
+      },
+      "28.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b4492209810a3fd48deaa982f9852fef12433d55",
+            "size": 57754663,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "c10dd5a7825578622fb362a8a34f76eb3ba0c0a9",
+            "size": 57057554,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "e9c570c568a0c2a32e88ee3204279019ebefd949",
+            "size": 58317692,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 28.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/28.0.2",
+        "revision": "28.0.2"
+      },
+      "28.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "ea6f2f7103cd9da9ff0bdf6e37fbbba548fa4165",
+            "size": 57830695,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "f8c333a2991b1ab05a671bc6248b78e00edcd83a",
+            "size": 57133581,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "05bd35bb48d11c848da2b393c6f864eb609aacba",
+            "size": 58393729,
+            "url": "https://dl.google.com/android/repository/build-tools_r28.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 28.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/28.0.3",
+        "revision": "28.0.3"
+      },
+      "29.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "ad314caf1802209c4b00a5f3517af5ceb0d48eae",
+            "size": 58650449,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "35dc6bc7a53bd9d206847e72f02cab21cfdaa869",
+            "size": 57820193,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "1799f7f975416098e5a5bf280eb97c8f77cf7f79",
+            "size": 57098799,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.0",
+        "revision": "29.0.0"
+      },
+      "29.0.0-rc1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "1c897f5885ac5468613e40e1ea598c21c05d345d",
+            "size": 58516671,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "f066c0d9ea2f0d8a0a9cc7b2ca0a467a570ab034",
+            "size": 57704927,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8887ee791a143f92694a0908130354142a903b17",
+            "size": 56933956,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29-rc1",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.0-rc1",
+        "revision": "29.0.0-rc1"
+      },
+      "29.0.0-rc2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b4b41d429c35b42db07b6c65d4aa998ba8c4093c",
+            "size": 58602830,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "7a960367999169ccac5dbc60817e5f1725c4c738",
+            "size": 57785717,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "2de2a3e290cae4ce35e82c8a5abed49b1cdd24e3",
+            "size": 57000706,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29-rc2",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.0-rc2",
+        "revision": "29.0.0-rc2"
+      },
+      "29.0.0-rc3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "8b7177f198e8b92da8f9537aaf859f6edf222b01",
+            "size": 58639871,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "643e8d76625f6e2cfcd5494e50bae5e14725ec0c",
+            "size": 57810162,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6abce2ebfecf3580afd3129520999f95691a03df",
+            "size": 57092256,
+            "url": "https://dl.google.com/android/repository/build-tools_r29-rc3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29-rc3",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.0-rc3",
+        "revision": "29.0.0-rc3"
+      },
+      "29.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "fc209e5d91ab2daeac24345a5cb17261940547e4",
+            "size": 41682816,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "46ae9b1d1e2a67241d7da9c2cd8eae42f24cc6cd",
+            "size": 40852521,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "1c44e10d5f74e58c3e05bfc6f1631a59616059bc",
+            "size": 40163897,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.1",
+        "revision": "29.0.1"
+      },
+      "29.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "c0fc7e5c37ac96bfd0c611802e8ab36d0e71b398",
+            "size": 41678888,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "f781d9e03d5c2debcf51fed3792ee7a9d066723f",
+            "size": 40848529,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "595dc1730c844d892516d5f0e7894e992d19f63d",
+            "size": 40159970,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.2",
+        "revision": "29.0.2"
+      },
+      "29.0.3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "64efff52165cda5e31848acafa46a05e3f3b4651",
+            "size": 53797376,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "76520eb7712fb0bb4c023b55c6f65588ee268289",
+            "size": 52432183,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "813f8c35f016cef83e5b2b742229a3634d4658d3",
+            "size": 55201638,
+            "url": "https://dl.google.com/android/repository/build-tools_r29.0.3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 29.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/29.0.3",
+        "revision": "29.0.3"
+      },
+      "30.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "5bdda303b7aba4073dd2aeb8003b6b0b57098021",
+            "size": 68819159,
+            "url": "https://dl.google.com/android/repository/build-tools_r30-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "80b06ce5fa4af2ed14db343a8131af658dda79a8",
+            "size": 67373109,
+            "url": "https://dl.google.com/android/repository/build-tools_r30-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "5276f337e4eb4d8e5fb82f846045610f8b8e3650",
+            "size": 70027538,
+            "url": "https://dl.google.com/android/repository/build-tools_r30-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 30",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/30.0.0",
+        "revision": "30.0.0"
+      },
+      "30.0.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "dae27b63a53f3c71a23a2e9517d435f79ce7975b",
+            "size": 52664463,
+            "url": "https://dl.google.com/android/repository/build-tools_r30.0.1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "b62ccd6d6468a374b7c8e641c3751bc929a89397",
+            "size": 51227882,
+            "url": "https://dl.google.com/android/repository/build-tools_r30.0.1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "76197fec228ca9b69086d6dd8a16e4589982bdc6",
+            "size": 53783332,
+            "url": "https://dl.google.com/android/repository/build-tools_r30.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 30.0.1",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/30.0.1",
+        "revision": "30.0.1"
+      },
+      "30.0.2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "6b0166d1f4b0b3d496c0dde660145dfa7898095f",
+            "size": 51227855,
+            "url": "https://dl.google.com/android/repository/5a6ceea22103d8dec989aefcef309949c0c42f1d.build-tools_r30.0.2-macosx.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "363632ff8f7a198bf9fa94e3b9e0db6927bf373d",
+            "size": 52664453,
+            "url": "https://dl.google.com/android/repository/build-tools_r30.0.2-linux.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "b42b77e02b82f242432cd7ffff5cbb92f6888ca7",
+            "size": 53783318,
+            "url": "https://dl.google.com/android/repository/efbaa277338195608aa4e3dbd43927e97f60218c.build-tools_r30.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 30.0.2",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/30.0.2",
+        "revision": "30.0.2"
+      },
+      "30.0.3": {
+        "archives": [
+          {
+            "os": "windows",
+            "sha1": "fc165c721b8d2da55e6fede467526c81f562be7b",
+            "size": 54254759,
+            "url": "https://dl.google.com/android/repository/91936d4ee3ccc839f0addd53c9ebf087b1e39251.build-tools_r30.0.3-windows.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "2076ea81b5a2fc298ef7bf85d666f496b928c7f1",
+            "size": 53134793,
+            "url": "https://dl.google.com/android/repository/build-tools_r30.0.3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "0807cd3f0dbc33c8be7f3d6faa263f6b14b502b7",
+            "size": 51698282,
+            "url": "https://dl.google.com/android/repository/f6d24b187cc6bd534c6c37604205171784ac5621.build-tools_r30.0.3-macosx.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 30.0.3",
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/30.0.3",
+        "revision": "30.0.3"
+      },
+      "31.0.0-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "e75dfb7a975809ba0ca0d25c2b82f7fd56444a4b",
+            "size": 53224980,
+            "url": "https://dl.google.com/android/repository/012061446cfd98341585d0d07401d0bd1a4c30f6.build-tools_r31-rc3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9d9ce209353c9046abe16285d58ef893c4b42221",
+            "size": 57592553,
+            "url": "https://dl.google.com/android/repository/41966dc138d44a3e3797b92fb68bf70552011d5d.build-tools_r31-rc3-windows.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "6859f11348d3984afbfcc74984802bd2e31cc0e2",
+            "size": 54724181,
+            "url": "https://dl.google.com/android/repository/build-tools_r31-rc3-linux.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 31-rc3",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/31.0.0-rc3",
+        "revision": "31.0.0-rc3"
+      }
+    },
+    "cmake": {
+      "3.10.2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "f227a85cb53dcb927ac52a5a717f647c4a29bf3b",
+            "size": 13447295,
+            "url": "https://dl.google.com/android/repository/cmake-3.10.2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "439e8799bf59f724f104bf62784b2985f1bfe561",
+            "size": 14275684,
+            "url": "https://dl.google.com/android/repository/cmake-3.10.2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "0a75b9c5bf558dc31caad7241a44515064656486",
+            "size": 11899659,
+            "url": "https://dl.google.com/android/repository/cmake-3.10.2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "CMake 3.10.2.4988404",
+        "license": "android-sdk-license",
+        "name": "cmake",
+        "path": "cmake/3.10.2.4988404",
+        "revision": "3.10.2"
+      },
+      "3.18.1": {
+        "archives": [
+          {
+            "os": "windows",
+            "sha1": "63723e9657a3ce1fc3ae078229c6199af80b76bd",
+            "size": 14676950,
+            "url": "https://dl.google.com/android/repository/7c386a739f915f5bd60051f2572c24782388e807.cmake-3.18.1-windows.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "809fdc8e14c745c6df4e506cc2157910f50b9cd9",
+            "size": 18505220,
+            "url": "https://dl.google.com/android/repository/ba34c321f92f6e6fd696c8354c262c122f56abf8.cmake-3.18.1-darwin.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "9435bbe2120763871c75c37a365451b48c007fed",
+            "size": 21005945,
+            "url": "https://dl.google.com/android/repository/cmake-3.18.1-linux.zip"
+          }
+        ],
+        "displayName": "CMake 3.18.1",
+        "license": "android-sdk-license",
+        "name": "cmake",
+        "path": "cmake/3.18.1",
+        "revision": "3.18.1"
+      },
+      "3.6.4111459": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "c9b02d630079783c6d67cb91488b622cfcd9765c",
+            "size": 12295830,
+            "url": "https://dl.google.com/android/repository/cmake-3.6.4111459-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "71c539b9c33f0943e9ad6251fea0b161c0b70782",
+            "size": 13980243,
+            "url": "https://dl.google.com/android/repository/cmake-3.6.4111459-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "4c4730dc3f399b2fa9ab701112d2c439368a59a5",
+            "size": 10428915,
+            "url": "https://dl.google.com/android/repository/cmake-3.6.4111459-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "CMake 3.6.4111459",
+        "license": "android-sdk-license",
+        "name": "cmake",
+        "path": "cmake/3.6.4111459",
+        "revision": "3.6.4111459"
+      }
+    },
+    "cmdline-tools": {
+      "1.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "6ffc5bd72db2c755f9b374ed829202262a6d8aaf",
+            "size": 81680508,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "23f803c07e392bb769507c88b23c2c7868cc7a6f",
+            "size": 81680498,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-6200805_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a863da8763de2febeb7429e7894fb65a092609db",
+            "size": 81665410,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-6200805_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/1.0",
+        "revision": "1.0"
+      },
+      "2.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "14b2114c6eae9e10686a18138d2bb468c46f8e0c",
+            "size": 86521858,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-6514223_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d45816955198c4dfd652584f4c0f1b0e86efb1b7",
+            "size": 86521848,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-6514223_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "e11b418c1d2d28589e9194915be2561f1e1e7a95",
+            "size": 86506760,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-6514223_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/2.0",
+        "revision": "2.0"
+      },
+      "2.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "9172381ff070ee2a416723c1989770cf4b0d1076",
+            "size": 86532348,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "c0c6bb9f1970bfadeaac623dfabf22c3e56baaec",
+            "size": 86532338,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-6609375_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "e2e19c2ff584efa87ef0cfdd1987f92881323208",
+            "size": 86517250,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-6609375_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/2.1",
+        "revision": "2.1"
+      },
+      "3.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "4f4417d53923c34891f1c05f302be2ed197d6844",
+            "size": 87259900,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "4846d2aede9db06361a5f0885d03997a6199229a",
+            "size": 87259890,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-6858069_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f0bf21e0a13dfcc48e7b0166f44dcff49912d2ee",
+            "size": 87244802,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-6858069_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/3.0",
+        "revision": "3.0"
+      },
+      "4.0-rc01": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "98d3f2715f6bfbacef063d1376d7765fe5b93309",
+            "size": 99514756,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-6987402_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "573d312a3fdc7700d9c395d647292d90b193d4ee",
+            "size": 99514744,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-6987402_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "72fae22d41fb8aa4f22e408e18c9d00f06050f7b",
+            "size": 99496635,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-6987402_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "license": "android-sdk-preview-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/4.0-beta01",
+        "revision": "4.0-rc01"
+      },
+      "5.0-rc01": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "f06b1642396ef1e431b990dbe386d5f1e3deabcc",
+            "size": 102189958,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-7006259_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "0752424530724f76cb5a28de84d663e63739e6ee",
+            "size": 102189946,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-7006259_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6f8e359dba91af39c046a791ea32e3ca5149a078",
+            "size": 102171837,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-7006259_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "license": "android-sdk-preview-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/5.0-alpha01",
+        "revision": "5.0-rc01"
+      }
+    },
+    "emulator": {
+      "30.5.5": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "90f8a9942253db75ab4d13f791377e9739a88617",
+            "size": 300476485,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-7285888.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "ccdee1aa99e4ec39f5a762d6912682ac248b92f0",
+            "size": 272500365,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-7285888.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "84c3105ba1a3a94963e1f99b3f706d0231948fc9",
+            "size": 324371999,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-7285888.zip"
+          }
+        ],
+        "displayName": "Android Emulator",
+        "license": "android-sdk-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "30.5.5"
+      },
+      "30.6.3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "66c9b788de49548d0faab052274f97b042f7241d",
+            "size": 308984491,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-7266284.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "ecd9b55fe4784b6c8683faa4b1d2c951b8929154",
+            "size": 272243636,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-7266284.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "5736749dc46ad950ec84e8275dfde2606d3e8a80",
+            "size": 324657514,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-7266284.zip"
+          }
+        ],
+        "displayName": "Android Emulator",
+        "license": "android-sdk-preview-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "30.6.3"
+      }
+    },
+    "extras": {
+      "1.1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "18632007ecb843b4fc69babd521a9b061868534b",
+            "size": 1307393,
+            "url": "https://dl.google.com/android/repository/desktop-head-unit-linux_r01.1.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "ccb64105888ba61ab06f20ad1ba97c71d440a421",
+            "size": 2299061,
+            "url": "https://dl.google.com/android/repository/desktop-head-unit-macosx_r01.1.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f26d80a84020b40e24f8a99873dea6a9c7978f10",
+            "size": 2615480,
+            "url": "https://dl.google.com/android/repository/desktop-head-unit-windows_r01.1.zip"
+          }
+        ],
+        "displayName": "Android Auto Desktop Head Unit Emulator",
+        "license": "android-sdk-license",
+        "name": "extras",
+        "path": "extras/google/auto",
+        "revision": "1.1"
+      },
+      "2.0-rc1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "b480489e604371301da10731a793b234b01b8f42",
+            "size": 4527281,
+            "url": "https://dl.google.com/android/repository/desktop-head-unit-linux_r02.0.rc1.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "3adaf99d06eaeeb31f7bdbb62ae841e740bfc156",
+            "size": 5592023,
+            "url": "https://dl.google.com/android/repository/desktop-head-unit-macosx_r02.0.rc1.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "e07788ed91d8e6dd3374f77da1cf78afb2664cc0",
+            "size": 5703857,
+            "url": "https://dl.google.com/android/repository/desktop-head-unit-windows_r02.0.rc1.zip"
+          }
+        ],
+        "displayName": "Android Auto Desktop Head Unit Emulator",
+        "license": "android-sdk-preview-license",
+        "name": "extras",
+        "path": "extras/google/auto",
+        "revision": "2.0-rc1"
+      }
+    },
+    "ndk": {
+      "16.1.4479499": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "e51e615449b98c716cf912057e2682e75d55e2de",
+            "size": 839630771,
+            "url": "https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "42aa43aae89a50d1c66c3f9fdecd676936da6128",
+            "size": 852525873,
+            "url": "https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f3f1909ed1052e98dda2c79d11c22f3da28daf25",
+            "size": 723301086,
+            "url": "https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 16.1.4479499",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/16.1.4479499",
+        "revision": "16.1.4479499"
+      },
+      "17.2.4988734": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "f97e3d7711497e3b4faf9e7b3fa0f0da90bb649c",
+            "size": 675091485,
+            "url": "https://dl.google.com/android/repository/android-ndk-r17c-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "12cacc70c3fd2f40574015631c00f41fb8a39048",
+            "size": 709387703,
+            "url": "https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "3e3b8d1650f9d297d130be2b342db956003f5992",
+            "size": 650626501,
+            "url": "https://dl.google.com/android/repository/android-ndk-r17c-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 17.2.4988734",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/17.2.4988734",
+        "revision": "17.2.4988734"
+      },
+      "18.1.5063045": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "98cb9909aa8c2dab32db188bbdc3ac6207e09440",
+            "size": 542911996,
+            "url": "https://dl.google.com/android/repository/android-ndk-r18b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "500679655da3a86aecf67007e8ab230ea9b4dd7b",
+            "size": 557038702,
+            "url": "https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6b6d4138aaaad7166679fdfa4780e177f95cee6f",
+            "size": 522489470,
+            "url": "https://dl.google.com/android/repository/android-ndk-r18b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 18.1.5063045",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/18.1.5063045",
+        "revision": "18.1.5063045"
+      },
+      "19.0.5232133": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "86c1a962601b23b8a6d3d535c93b4b0bc4f29249",
+            "size": 807592927,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "f02ad84cb5b6e1ff3eea9e6168037c823408c8ac",
+            "size": 823337344,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "37906e8e79a9dddf6805325f706a072055e4136c",
+            "size": 795986424,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 19.0.5232133",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/19.0.5232133",
+        "revision": "19.0.5232133"
+      },
+      "19.2.5345600": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "f46b8193109bba8a58e0461c1a48f4534051fb25",
+            "size": 807630656,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19c-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "fd94d0be6017c6acbd193eb95e09cf4b6f61b834",
+            "size": 823376982,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c4cd8c0b6e7618ca0a871a5f24102e40c239f6a3",
+            "size": 796051997,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 19.2.5345600",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/19.2.5345600",
+        "revision": "19.2.5345600"
+      },
+      "20.0.5392854-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "cd94191ace6b31ec9af1cc370173e16934e1cb8b",
+            "size": 840834121,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "8285ae2e24a7232fd0cbfb55e955c8586ef2ee02",
+            "size": 857406412,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c89022bd9a2c32b42a1b94e98bbd88ab4c4e350e",
+            "size": 830099430,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 20.0.5392854",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/20.0.5392854",
+        "revision": "20.0.5392854-rc2"
+      },
+      "20.0.5471264-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "665a035cadb0dd03e6502ba25c18643f6e4ede24",
+            "size": 843617071,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "674d8fb0e0df8e8be1c31fa321eb176548a19ba3",
+            "size": 860198768,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9375dc82cf576f4a255bf908dfc628d8ddee0d89",
+            "size": 832889871,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 20.0.5471264",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/20.0.5471264",
+        "revision": "20.0.5471264-rc3"
+      },
+      "20.0.5594570": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "96d5f1c50452596912d1982439c514194b5751e6",
+            "size": 843152912,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "8665fc84a1b1f0d6ab3b5fdd1e30200cc7b9adff",
+            "size": 859737910,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "36e1dc77fad08ad2498fb94b13ad8caf26bbd9df",
+            "size": 832429986,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 20.0.5594570",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/20.0.5594570",
+        "revision": "20.0.5594570"
+      },
+      "20.1.5948944": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "b51290ab69cb89de1f0ba108702277bc333b38be",
+            "size": 843201217,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "d903fdf077039ad9331fb6c3bee78aa46d45527b",
+            "size": 859780564,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "ead0846608040b8344ad2bc9bc721b88cf13fb8d",
+            "size": 832473103,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 20.1.5948944",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/20.1.5948944",
+        "revision": "20.1.5948944"
+      },
+      "21.0.6011959-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "34a46c3867c9d87a80895c0b8a098256052536d2",
+            "size": 958791657,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "335f30302bee700a9a5fdfe3ae533a4963499c44",
+            "size": 1043467643,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "e5902e4f6c5b6f0354a2572a85f42f19c1a7b9d8",
+            "size": 1057424857,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.0.6011959",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/21.0.6011959",
+        "revision": "21.0.6011959-rc2"
+      },
+      "21.0.6113669": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "0d50636cc0e34ed3ba540d6d5818ea0cf10f16aa",
+            "size": 958656601,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "afc9c0b9faad222898ac8168c78ad4ccac8a1b5c",
+            "size": 1043332542,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c61631eacbd40c30273b716a4e589c6877b85419",
+            "size": 1057294207,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.0.6113669",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/21.0.6113669",
+        "revision": "21.0.6113669"
+      },
+      "21.1.6210238-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "971609f9a579ebbcb8d121a5d5aa0cba716b2d1f",
+            "size": 987084422,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "cf06ed408663c11c8f4824f9370c7a900ec074dd",
+            "size": 1071756532,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a920ca1ab75733b510180cef23f3797ded40dbb7",
+            "size": 1087478202,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.1.6210238",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/21.1.6210238",
+        "revision": "21.1.6210238-rc1"
+      },
+      "21.1.6273396-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "41110daad93e6a9a3662d7dd2fb233b21be3d27e",
+            "size": 987112894,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "b9a6463ab72ad183c89e5316f0c5493f64b54966",
+            "size": 1071784976,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "dc6dc614cbd94b345b66f85d3f867638593fb199",
+            "size": 1087508597,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.1.6273396",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/21.1.6273396",
+        "revision": "21.1.6273396-rc2"
+      },
+      "21.1.6352462": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "e1de2f749c5c32ae991c3ccaabfcdf7688ee221f",
+            "size": 1014473187,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "50250fcba479de477b45801e2699cca47f7e1267",
+            "size": 1162377080,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6809fac4a6e829f4bac64628fa9835d57bbd61a8",
+            "size": 1079474640,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.1.6352462",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/21.1.6352462",
+        "revision": "21.1.6352462"
+      },
+      "21.1.6363665-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "767f722c14dd27a22b17903e09b768407131129e",
+            "size": 1042902819,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "29139085aa402d6b27d4394c30e797f814876d1e",
+            "size": 1190809917,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8ecb03c728b8dc814db30c8152c4436cb1536c8d",
+            "size": 1109667800,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.1.6363665",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/21.1.6363665",
+        "revision": "21.1.6363665-rc3"
+      },
+      "21.2.6472646": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "c42a836f6697a4ef8b927813d5f7dd12e974cfba",
+            "size": 1014322452,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21c-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8",
+            "size": 1162375023,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21c-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "93563a1297a60b5da49a48f62340dbf0c878a5f3",
+            "size": 1079490351,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21c-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.2.6472646",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/21.2.6472646",
+        "revision": "21.2.6472646"
+      },
+      "21.3.6528147": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "ef06c9f9d7efd6f243eb3c05ac440562ae29ae12",
+            "size": 1042615469,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21d-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "bcf4023eb8cb6976a4c7cff0a8a8f145f162bf4d",
+            "size": 1190667841,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21d-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "99175ce1210258f2280568cd340e0666c69955c7",
+            "size": 1109536102,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21d-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.3.6528147",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/21.3.6528147",
+        "revision": "21.3.6528147"
+      },
+      "21.4.7075529": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3f15c23a1c247ad17c7c271806848dbd40434738",
+            "size": 1042617180,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "c3ebc83c96a4d7f539bd72c241b2be9dcd29bda9",
+            "size": 1190670072,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fc44fea8bb3f5a6789821f40f41dce2d2cd5dc30",
+            "size": 1109665123,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.4.7075529",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/21.4.7075529",
+        "revision": "21.4.7075529"
+      },
+      "22.0.6917172-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "0ff242f820663fe45773bca7a2df036004fc7c69",
+            "size": 1047697781,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "687f696f43b23e2623e7f7073bbd575d254f66f6",
+            "size": 1146575022,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "ef38999c0e3c96124acffab6971ad2054a433b91",
+            "size": 1080588810,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 22.0.6917172",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/22.0.6917172",
+        "revision": "22.0.6917172-rc1"
+      },
+      "22.0.7026061": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "9cf3816ed3e4308ff03bd5f69100b373bad12f13",
+            "size": 1047577432,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "82274313aba10da6177fd41868f56a0f9651dd81",
+            "size": 1146450986,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c03f761caf1c6f5efbeb5ccfa573ea922cb955b3",
+            "size": 1080471370,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 22.0.7026061",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/22.0.7026061",
+        "revision": "22.0.7026061"
+      },
+      "22.1.7171670": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "dc80e8a2cfcb28db74c1931d42c652e9d17ff2c3",
+            "size": 1049337733,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "9ece64c7f19763dd67320d512794969930fce9dc",
+            "size": 1148198368,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "96ba1a049303cf6bf3ee84cfd64d6bcd43486a50",
+            "size": 1082301775,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 22.1.7171670",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/22.1.7171670",
+        "revision": "22.1.7171670"
+      },
+      "23.0.7123448-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "708ebbceb719c43a3165503ea82fb107d823ad54",
+            "size": 721278316,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "1340ed20f27fcb184ea814ae63e0f3cd75890342",
+            "size": 804392699,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c056900896129d3dd4eb953a53a8961d9853aa20",
+            "size": 749304589,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 23.0.7123448",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/23.0.7123448",
+        "revision": "23.0.7123448-rc1"
+      },
+      "23.0.7196353-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "454fd0c1e8385896ad465d7cfd653e28fbf3523f",
+            "size": 674507658,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "290e8c39bb9732ac8784855e1f22342eb488228e",
+            "size": 705747711,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "00194ae44ce90f2052ab8e42f1a11a0db8d50c2a",
+            "size": 747953762,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 23.0.7196353",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/23.0.7196353",
+        "revision": "23.0.7196353-rc2"
+      },
+      "23.0.7272597-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3b977f0f8e0fa2d6777fae6b1d37aebfc075ab56",
+            "size": 695243724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "2298465ef13dab0c527b9cf6ef892b1ec6461fb4",
+            "size": 724828157,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8c10a51f50f4f12ccc839dcb4bd8107133024c2f",
+            "size": 785932724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 23.0.7272597",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/23.0.7272597",
+        "revision": "23.0.7272597-rc3"
+      }
+    },
+    "ndk-bundle": {
+      "16.1.4479499": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "e51e615449b98c716cf912057e2682e75d55e2de",
+            "size": 839630771,
+            "url": "https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "42aa43aae89a50d1c66c3f9fdecd676936da6128",
+            "size": 852525873,
+            "url": "https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f3f1909ed1052e98dda2c79d11c22f3da28daf25",
+            "size": 723301086,
+            "url": "https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "16.1.4479499"
+      },
+      "17.2.4988734": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "f97e3d7711497e3b4faf9e7b3fa0f0da90bb649c",
+            "size": 675091485,
+            "url": "https://dl.google.com/android/repository/android-ndk-r17c-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "12cacc70c3fd2f40574015631c00f41fb8a39048",
+            "size": 709387703,
+            "url": "https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "3e3b8d1650f9d297d130be2b342db956003f5992",
+            "size": 650626501,
+            "url": "https://dl.google.com/android/repository/android-ndk-r17c-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "17.2.4988734"
+      },
+      "18.1.5063045": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "98cb9909aa8c2dab32db188bbdc3ac6207e09440",
+            "size": 542911996,
+            "url": "https://dl.google.com/android/repository/android-ndk-r18b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "500679655da3a86aecf67007e8ab230ea9b4dd7b",
+            "size": 557038702,
+            "url": "https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6b6d4138aaaad7166679fdfa4780e177f95cee6f",
+            "size": 522489470,
+            "url": "https://dl.google.com/android/repository/android-ndk-r18b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "18.1.5063045"
+      },
+      "19.0.5232133": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "86c1a962601b23b8a6d3d535c93b4b0bc4f29249",
+            "size": 807592927,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "f02ad84cb5b6e1ff3eea9e6168037c823408c8ac",
+            "size": 823337344,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "37906e8e79a9dddf6805325f706a072055e4136c",
+            "size": 795986424,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "19.0.5232133"
+      },
+      "19.2.5345600": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "f46b8193109bba8a58e0461c1a48f4534051fb25",
+            "size": 807630656,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19c-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "fd94d0be6017c6acbd193eb95e09cf4b6f61b834",
+            "size": 823376982,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c4cd8c0b6e7618ca0a871a5f24102e40c239f6a3",
+            "size": 796051997,
+            "url": "https://dl.google.com/android/repository/android-ndk-r19c-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "19.2.5345600"
+      },
+      "20.0.5392854-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "cd94191ace6b31ec9af1cc370173e16934e1cb8b",
+            "size": 840834121,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "8285ae2e24a7232fd0cbfb55e955c8586ef2ee02",
+            "size": 857406412,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c89022bd9a2c32b42a1b94e98bbd88ab4c4e350e",
+            "size": 830099430,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "20.0.5392854-rc2"
+      },
+      "20.0.5471264-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "665a035cadb0dd03e6502ba25c18643f6e4ede24",
+            "size": 843617071,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "674d8fb0e0df8e8be1c31fa321eb176548a19ba3",
+            "size": 860198768,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9375dc82cf576f4a255bf908dfc628d8ddee0d89",
+            "size": 832889871,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "20.0.5471264-rc3"
+      },
+      "20.0.5594570": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "96d5f1c50452596912d1982439c514194b5751e6",
+            "size": 843152912,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "8665fc84a1b1f0d6ab3b5fdd1e30200cc7b9adff",
+            "size": 859737910,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "36e1dc77fad08ad2498fb94b13ad8caf26bbd9df",
+            "size": 832429986,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "20.0.5594570"
+      },
+      "20.1.5948944": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "b51290ab69cb89de1f0ba108702277bc333b38be",
+            "size": 843201217,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "d903fdf077039ad9331fb6c3bee78aa46d45527b",
+            "size": 859780564,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "ead0846608040b8344ad2bc9bc721b88cf13fb8d",
+            "size": 832473103,
+            "url": "https://dl.google.com/android/repository/android-ndk-r20b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "20.1.5948944"
+      },
+      "21.0.6011959-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "34a46c3867c9d87a80895c0b8a098256052536d2",
+            "size": 958791657,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "335f30302bee700a9a5fdfe3ae533a4963499c44",
+            "size": 1043467643,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "e5902e4f6c5b6f0354a2572a85f42f19c1a7b9d8",
+            "size": 1057424857,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.0.6011959-rc2"
+      },
+      "21.0.6113669": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "0d50636cc0e34ed3ba540d6d5818ea0cf10f16aa",
+            "size": 958656601,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "afc9c0b9faad222898ac8168c78ad4ccac8a1b5c",
+            "size": 1043332542,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c61631eacbd40c30273b716a4e589c6877b85419",
+            "size": 1057294207,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.0.6113669"
+      },
+      "21.1.6210238-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "971609f9a579ebbcb8d121a5d5aa0cba716b2d1f",
+            "size": 987084422,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "cf06ed408663c11c8f4824f9370c7a900ec074dd",
+            "size": 1071756532,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a920ca1ab75733b510180cef23f3797ded40dbb7",
+            "size": 1087478202,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.1.6210238-rc1"
+      },
+      "21.1.6273396-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "41110daad93e6a9a3662d7dd2fb233b21be3d27e",
+            "size": 987112894,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "b9a6463ab72ad183c89e5316f0c5493f64b54966",
+            "size": 1071784976,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "dc6dc614cbd94b345b66f85d3f867638593fb199",
+            "size": 1087508597,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.1.6273396-rc2"
+      },
+      "21.1.6352462": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "e1de2f749c5c32ae991c3ccaabfcdf7688ee221f",
+            "size": 1014473187,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "50250fcba479de477b45801e2699cca47f7e1267",
+            "size": 1162377080,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "6809fac4a6e829f4bac64628fa9835d57bbd61a8",
+            "size": 1079474640,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.1.6352462"
+      },
+      "21.1.6363665-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "767f722c14dd27a22b17903e09b768407131129e",
+            "size": 1042902819,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "29139085aa402d6b27d4394c30e797f814876d1e",
+            "size": 1190809917,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8ecb03c728b8dc814db30c8152c4436cb1536c8d",
+            "size": 1109667800,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21b-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.1.6363665-rc3"
+      },
+      "21.2.6472646": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "c42a836f6697a4ef8b927813d5f7dd12e974cfba",
+            "size": 1014322452,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21c-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8",
+            "size": 1162375023,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21c-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "93563a1297a60b5da49a48f62340dbf0c878a5f3",
+            "size": 1079490351,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21c-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.2.6472646"
+      },
+      "21.3.6528147": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "ef06c9f9d7efd6f243eb3c05ac440562ae29ae12",
+            "size": 1042615469,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21d-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "bcf4023eb8cb6976a4c7cff0a8a8f145f162bf4d",
+            "size": 1190667841,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21d-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "99175ce1210258f2280568cd340e0666c69955c7",
+            "size": 1109536102,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21d-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.3.6528147"
+      },
+      "21.4.7075529": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3f15c23a1c247ad17c7c271806848dbd40434738",
+            "size": 1042617180,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "c3ebc83c96a4d7f539bd72c241b2be9dcd29bda9",
+            "size": 1190670072,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fc44fea8bb3f5a6789821f40f41dce2d2cd5dc30",
+            "size": 1109665123,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.4.7075529"
+      },
+      "22.0.6917172-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "0ff242f820663fe45773bca7a2df036004fc7c69",
+            "size": 1047697781,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "687f696f43b23e2623e7f7073bbd575d254f66f6",
+            "size": 1146575022,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "ef38999c0e3c96124acffab6971ad2054a433b91",
+            "size": 1080588810,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "22.0.6917172-rc1"
+      },
+      "22.0.7026061": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "9cf3816ed3e4308ff03bd5f69100b373bad12f13",
+            "size": 1047577432,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "82274313aba10da6177fd41868f56a0f9651dd81",
+            "size": 1146450986,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c03f761caf1c6f5efbeb5ccfa573ea922cb955b3",
+            "size": 1080471370,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "22.0.7026061"
+      },
+      "22.1.7171670": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "dc80e8a2cfcb28db74c1931d42c652e9d17ff2c3",
+            "size": 1049337733,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "9ece64c7f19763dd67320d512794969930fce9dc",
+            "size": 1148198368,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "96ba1a049303cf6bf3ee84cfd64d6bcd43486a50",
+            "size": 1082301775,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "22.1.7171670"
+      },
+      "23.0.7123448-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "708ebbceb719c43a3165503ea82fb107d823ad54",
+            "size": 721278316,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "1340ed20f27fcb184ea814ae63e0f3cd75890342",
+            "size": 804392699,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c056900896129d3dd4eb953a53a8961d9853aa20",
+            "size": 749304589,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "23.0.7123448-rc1"
+      },
+      "23.0.7196353-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "454fd0c1e8385896ad465d7cfd653e28fbf3523f",
+            "size": 674507658,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "290e8c39bb9732ac8784855e1f22342eb488228e",
+            "size": 705747711,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "00194ae44ce90f2052ab8e42f1a11a0db8d50c2a",
+            "size": 747953762,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "23.0.7196353-rc2"
+      },
+      "23.0.7272597-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3b977f0f8e0fa2d6777fae6b1d37aebfc075ab56",
+            "size": 695243724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "2298465ef13dab0c527b9cf6ef892b1ec6461fb4",
+            "size": 724828157,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8c10a51f50f4f12ccc839dcb4bd8107133024c2f",
+            "size": 785932724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "23.0.7272597-rc3"
+      }
+    },
+    "patcher": {
+      "1": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "046699c5e2716ae11d77e0bad814f7f33fab261e",
+            "size": 1827327,
+            "url": "https://dl.google.com/android/repository/3534162-studio.sdk-patcher.zip"
+          }
+        ],
+        "displayName": "SDK Patch Applier v4",
+        "license": "android-sdk-license",
+        "name": "patcher",
+        "path": "patcher/v4",
+        "revision": "1"
+      }
+    },
+    "platform-tools": {
+      "31.0.2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "78937049851e1db90317612c6b831759f56fc86d",
+            "size": 13829393,
+            "url": "https://dl.google.com/android/repository/42b081e1e068bb936179551684cdcb30315e245c.platform-tools_r31.0.2-darwin.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "ff02a9d8c6fa9687e1207fc0c4b84033925d452d",
+            "size": 13876419,
+            "url": "https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9cc0f642a66706a978214395b85c8e8228c24f2f",
+            "size": 12537668,
+            "url": "https://dl.google.com/android/repository/platform-tools_r31.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform-Tools",
+        "license": "android-sdk-license",
+        "name": "platform-tools",
+        "path": "platform-tools",
+        "revision": "31.0.2"
+      }
+    },
+    "platforms": {
+      "10": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "887e37783ec32f541ea33c2c649dda648e8e6fb3",
+            "size": 85470907,
+            "url": "https://dl.google.com/android/repository/android-2.3.3_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 10",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-10",
+        "revision": "10"
+      },
+      "11": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "2c7d4bd13f276e76f6bbd87315fe27aba351dd37",
+            "size": 104513908,
+            "url": "https://dl.google.com/android/repository/android-3.0_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 11",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-11",
+        "revision": "11"
+      },
+      "12": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "4a50a6679cd95bb68bb5fc032e754cd7c5e2b1bf",
+            "size": 106472351,
+            "url": "https://dl.google.com/android/repository/android-3.1_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 12",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-12",
+        "revision": "12"
+      },
+      "13": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "6189a500a8c44ae73a439604363de93591163cd9",
+            "size": 108426536,
+            "url": "https://dl.google.com/android/repository/android-3.2_r01.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 13",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-13",
+        "revision": "13"
+      },
+      "14": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "d4f1d8fbca25225b5f0e7a0adf0d39c3d6e60b3c",
+            "size": 46038082,
+            "url": "https://dl.google.com/android/repository/android-14_r04.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 14",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-14",
+        "revision": "14"
+      },
+      "15": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "69ab4c443b37184b2883af1fd38cc20cbeffd0f3",
+            "size": 44533475,
+            "url": "https://dl.google.com/android/repository/android-15_r05.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 15",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-15",
+        "revision": "15"
+      },
+      "16": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "12a5ce6235a76bc30f62c26bda1b680e336abd07",
+            "size": 48128695,
+            "url": "https://dl.google.com/android/repository/android-16_r05.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 16",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-16",
+        "revision": "16"
+      },
+      "17": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "dbe14101c06e6cdb34e300393e64e64f8c92168a",
+            "size": 57030216,
+            "url": "https://dl.google.com/android/repository/android-17_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 17",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-17",
+        "revision": "17"
+      },
+      "18": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e6b09b3505754cbbeb4a5622008b907262ee91cb",
+            "size": 57771739,
+            "url": "https://dl.google.com/android/repository/android-18_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 18",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-18",
+        "revision": "18"
+      },
+      "19": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "2ff20d89e68f2f5390981342e009db5a2d456aaa",
+            "size": 63871092,
+            "url": "https://dl.google.com/android/repository/android-19_r04.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 19",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-19",
+        "revision": "19"
+      },
+      "2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "c054d25c9b4c6251fa49c2f9c54336998679d3fe",
+            "size": 45476658,
+            "url": "https://dl.google.com/android/repository/android-1.1_r1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "e21dbcff45b7356657449ebb3c7e941be2bb5ebe",
+            "size": 45584305,
+            "url": "https://dl.google.com/android/repository/android-1.1_r1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a4060f29ed39fc929c302836d488998c53c3002e",
+            "size": 46828615,
+            "url": "https://dl.google.com/android/repository/android-1.1_r1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 2",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-2",
+        "revision": "2"
+      },
+      "20": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "a9251f8a3f313ab05834a07a963000927637e01d",
+            "size": 63567784,
+            "url": "https://dl.google.com/android/repository/android-20_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 20",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-20",
+        "revision": "20"
+      },
+      "21": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "53536556059bb29ae82f414fd2e14bc335a4eb4c",
+            "size": 65897960,
+            "url": "https://dl.google.com/android/repository/android-21_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 21",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-21",
+        "revision": "21"
+      },
+      "22": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5d1bd10fea962b216a0dece1247070164760a9fc",
+            "size": 66852371,
+            "url": "https://dl.google.com/android/repository/android-22_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 22",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-22",
+        "revision": "22"
+      },
+      "23": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "027fede3de6aa1649115bbd0bffff30ccd51c9a0",
+            "size": 70433421,
+            "url": "https://dl.google.com/android/repository/platform-23_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 23",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-23",
+        "revision": "23"
+      },
+      "24": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "8912da3d4bfe7a9f28f0e5ce92d3a8dc96342aee",
+            "size": 82648154,
+            "url": "https://dl.google.com/android/repository/platform-24_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 24",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-24",
+        "revision": "24"
+      },
+      "25": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "00c2c5765e8988504be10a1eb66ed71fcdbd7fe8",
+            "size": 85424763,
+            "url": "https://dl.google.com/android/repository/platform-25_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 25",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-25",
+        "revision": "25"
+      },
+      "26": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e4ae5d7aa557a3c827135838ee400da8443ac4ef",
+            "size": 63623734,
+            "url": "https://dl.google.com/android/repository/platform-26_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 26",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-26",
+        "revision": "26"
+      },
+      "27": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "35f747e7e70b2d16e0e4246876be28d15ea1c353",
+            "size": 65635348,
+            "url": "https://dl.google.com/android/repository/platform-27_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 27",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-27",
+        "revision": "27"
+      },
+      "28": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "9a4e52b1d55bd2e24216b150aafae2503d3efba6",
+            "size": 75565084,
+            "url": "https://dl.google.com/android/repository/platform-28_r06.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 28",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-28",
+        "revision": "28"
+      },
+      "29": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "9d8a7e0ffa5168dbca6c60355b9129c6c7572aff",
+            "size": 78293913,
+            "url": "https://dl.google.com/android/repository/platform-29_r05.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 29",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-29",
+        "revision": "29"
+      },
+      "3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "5c134b7df5f4b8bd5b61ba93bdaebada8fa3468c",
+            "size": 53348669,
+            "url": "https://dl.google.com/android/repository/android-1.5_r04-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d3a67c2369afa48b6c3c7624de5031c262018d1e",
+            "size": 52440607,
+            "url": "https://dl.google.com/android/repository/android-1.5_r04-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "5bb106d2e40d481edd337b0833093843e15fe49a",
+            "size": 54624370,
+            "url": "https://dl.google.com/android/repository/android-1.5_r04-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 3",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-3",
+        "revision": "3"
+      },
+      "30": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e7c6280901dcfa511af098d67dd88c4dfcbc6ea2",
+            "size": 52328361,
+            "url": "https://dl.google.com/android/repository/platform-30_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 30",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-30",
+        "revision": "30"
+      },
+      "4": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "483ed088e45bbdf3444baaf9250c8b02e5383cb0",
+            "size": 63454485,
+            "url": "https://dl.google.com/android/repository/android-1.6_r03-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "bdafad44f5df9f127979bdb21a1fdd87ee3cd625",
+            "size": 62418496,
+            "url": "https://dl.google.com/android/repository/android-1.6_r03-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "ce0b5e4ffaf12ca4fd07c2da71a8a1ab4a03dc22",
+            "size": 64654625,
+            "url": "https://dl.google.com/android/repository/android-1.6_r03-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 4",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-4",
+        "revision": "4"
+      },
+      "5": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "be9be6a99ca32875c96ec7f91160ca9fce7e3c7d",
+            "size": 75095268,
+            "url": "https://dl.google.com/android/repository/android-2.0_r01-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "2a866d0870dbba18e0503cd41e5fae988a21b314",
+            "size": 74956356,
+            "url": "https://dl.google.com/android/repository/android-2.0_r01-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "aeb623217ff88b87216d6eb7dbc846ed53f68f57",
+            "size": 76288040,
+            "url": "https://dl.google.com/android/repository/android-2.0_r01-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 5",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-5",
+        "revision": "5"
+      },
+      "6": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "ce2c971dce352aa28af06bda92a070116aa5ae1a",
+            "size": 79192618,
+            "url": "https://dl.google.com/android/repository/android-2.0.1_r01-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "c3096f80d75a6fc8cb38ef8a18aec920e53d42c0",
+            "size": 79035527,
+            "url": "https://dl.google.com/android/repository/android-2.0.1_r01-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "255781ebe4509d9707d0e77edda2815e2bc216e6",
+            "size": 80385601,
+            "url": "https://dl.google.com/android/repository/android-2.0.1_r01-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 6",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-6",
+        "revision": "6"
+      },
+      "7": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5ce51b023ac19f8738500b1007a1da5de2349a1e",
+            "size": 70142829,
+            "url": "https://dl.google.com/android/repository/android-2.1_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 7",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-7",
+        "revision": "7"
+      },
+      "8": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "231262c63eefdff8fd0386e9ccfefeb27a8f9202",
+            "size": 74652366,
+            "url": "https://dl.google.com/android/repository/android-2.2_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 8",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-8",
+        "revision": "8"
+      },
+      "9": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "209f8a7a8b2cb093fce858b8b55fed3ba5206773",
+            "size": 78732563,
+            "url": "https://dl.google.com/android/repository/android-2.3.1_r02.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 9",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-9",
+        "revision": "9"
+      },
+      "S": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "3aee3ad760dc7becf657d6421629fe360215f92e",
+            "size": 56206479,
+            "url": "https://dl.google.com/android/repository/platform-S_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform S",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-S",
+        "revision": "S"
+      }
+    },
+    "skiaparser": {
+      "2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "2703a570224a5ced1f73eb3efbdb3192a1ecec81",
+            "size": 6681896,
+            "url": "https://dl.google.com/android/repository/skiaparser-7248848-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "ecf8794beccf578d4130bb9f7f2c7fa0c40c62c2",
+            "size": 7340904,
+            "url": "https://dl.google.com/android/repository/skiaparser-7248848-mac.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "84c28480ca057e48e8d2fed0ae8f52fc21aa7e61",
+            "size": 6450856,
+            "url": "https://dl.google.com/android/repository/skiaparser-7248848-win.zip"
+          }
+        ],
+        "displayName": "Layout Inspector image server for API S",
+        "license": "android-sdk-license",
+        "name": "skiaparser",
+        "path": "skiaparser/2",
+        "revision": "2"
+      },
+      "6": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "78af2cd3e4168af80c16d7686536baa318e10cc4",
+            "size": 6323164,
+            "url": "https://dl.google.com/android/repository/skiaparser-7083912-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "73aa4e3b52177cf7d4cf956a74311e0097987bb4",
+            "size": 6561072,
+            "url": "https://dl.google.com/android/repository/skiaparser-7083912-mac.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "28dde025a70a0f4819cf195c1cb6e0e2b4bf4514",
+            "size": 6059180,
+            "url": "https://dl.google.com/android/repository/skiaparser-7083912-win.zip"
+          }
+        ],
+        "displayName": "Layout Inspector image server for API 29-30",
+        "license": "android-sdk-license",
+        "name": "skiaparser",
+        "path": "skiaparser/1",
+        "revision": "6"
+      }
+    },
+    "sources": {
+      "14": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "eaf4ed7dcac46e68516a1b4aa5b0d9e5a39a7555",
+            "size": 16152383,
+            "url": "https://dl.google.com/android/repository/sources-14_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 14",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-14",
+        "revision": "14"
+      },
+      "15": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e5992a5747c9590783fbbdd700337bf0c9f6b1fa",
+            "size": 16468746,
+            "url": "https://dl.google.com/android/repository/sources-15_r02.zip"
+          }
+        ],
+        "displayName": "Sources for Android 15",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-15",
+        "revision": "15"
+      },
+      "16": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "0f83c14ed333c45d962279ab5d6bc98a0269ef84",
+            "size": 17876720,
+            "url": "https://dl.google.com/android/repository/sources-16_r02.zip"
+          }
+        ],
+        "displayName": "Sources for Android 16",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-16",
+        "revision": "16"
+      },
+      "17": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "6f1f18cd2d2b1852d7f6892df9cee3823349d43a",
+            "size": 18976816,
+            "url": "https://dl.google.com/android/repository/sources-17_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 17",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-17",
+        "revision": "17"
+      },
+      "18": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "8b49fdf7433f4881a2bfb559b5dd05d8ec65fb78",
+            "size": 20226735,
+            "url": "https://dl.google.com/android/repository/sources-18_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 18",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-18",
+        "revision": "18"
+      },
+      "19": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "433a1d043ef77561571250e94cb7a0ef24a202e7",
+            "size": 21819439,
+            "url": "https://dl.google.com/android/repository/sources-19_r02.zip"
+          }
+        ],
+        "displayName": "Sources for Android 19",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-19",
+        "revision": "19"
+      },
+      "20": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "8da3e40f2625f9f7ef38b7e403f49f67226c0d76",
+            "size": 23367603,
+            "url": "https://dl.google.com/android/repository/sources-20_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 20",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-20",
+        "revision": "20"
+      },
+      "21": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "137a5044915d32bea297a8c1552684802bbc2e25",
+            "size": 28274751,
+            "url": "https://dl.google.com/android/repository/sources-21_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 21",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-21",
+        "revision": "21"
+      },
+      "22": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "98320e13976d11597a4a730a8d203ac9a03ed5a6",
+            "size": 28861236,
+            "url": "https://dl.google.com/android/repository/sources-22_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 22",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-22",
+        "revision": "22"
+      },
+      "23": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "b0f15da2762b42f543c5e364c2b15b198cc99cc2",
+            "size": 31771965,
+            "url": "https://dl.google.com/android/repository/sources-23_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 23",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-23",
+        "revision": "23"
+      },
+      "24": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "6b96115830a83d654479f32ce4b724ca9011148b",
+            "size": 30270410,
+            "url": "https://dl.google.com/android/repository/sources-24_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 24",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-24",
+        "revision": "24"
+      },
+      "25": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "bbc72efd1a9bad87cc507e308f0d29aad438c52c",
+            "size": 30822685,
+            "url": "https://dl.google.com/android/repository/sources-25_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 25",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-25",
+        "revision": "25"
+      },
+      "26": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "2af701ee3223d580409288540b1d06932fd8f9b9",
+            "size": 35138547,
+            "url": "https://dl.google.com/android/repository/sources-26_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 26",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-26",
+        "revision": "26"
+      },
+      "27": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "7b714670561d08f54751af42aca929867b806596",
+            "size": 36997618,
+            "url": "https://dl.google.com/android/repository/sources-27_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 27",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-27",
+        "revision": "27"
+      },
+      "28": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "5610e0c24235ee3fa343c899ddd551be30315255",
+            "size": 42552241,
+            "url": "https://dl.google.com/android/repository/sources-28_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 28",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-28",
+        "revision": "28"
+      },
+      "29": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "d0ad249e152b3a8fe3cb7c4a329453a048be29e4",
+            "size": 39477018,
+            "url": "https://dl.google.com/android/repository/sources-29_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 29",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-29",
+        "revision": "29"
+      },
+      "30": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e4c000fb3afb32380609ddcad91f5d6495eeccb1",
+            "size": 43263073,
+            "url": "https://dl.google.com/android/repository/sources-30_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 30",
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-30",
+        "revision": "30"
+      }
+    },
+    "tools": {
+      "26.1.1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "ed85ea7b59bc3483ce0af4c198523ba044e083ad",
+            "size": 103022432,
+            "url": "https://dl.google.com/android/repository/sdk-tools-darwin-4333796.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "8c7c28554a32318461802c1291d76fccfafde054",
+            "size": 154582459,
+            "url": "https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "aa298b5346ee0d63940d13609fe6bec621384510",
+            "size": 156136858,
+            "url": "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip"
+          }
+        ],
+        "displayName": "Android SDK Tools",
+        "license": "android-sdk-license",
+        "name": "tools",
+        "path": "tools",
+        "revision": "26.1.1"
+      }
+    }
+  }
+}
diff --git a/pkgs/development/mobile/androidenv/tools/25.nix b/pkgs/development/mobile/androidenv/tools/25.nix
index 80b5858031d..7489569d507 100644
--- a/pkgs/development/mobile/androidenv/tools/25.nix
+++ b/pkgs/development/mobile/androidenv/tools/25.nix
@@ -3,7 +3,7 @@
 deployAndroidPackage {
   name = "androidsdk";
   buildInputs = [ autoPatchelfHook makeWrapper ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXext pkgs.xlibs.libXdamage pkgs.xlibs.libxcb pkgs.xlibs.libXfixes pkgs.xlibs.libXrender pkgs.fontconfig.lib pkgs.freetype pkgs.libGL pkgs.zlib pkgs.ncurses5 pkgs.libpulseaudio pkgs_i686.glibc pkgs_i686.xlibs.libX11 pkgs_i686.xlibs.libXrender pkgs_i686.fontconfig pkgs_i686.freetype pkgs_i686.zlib ];
+    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xorg.libX11 pkgs.xorg.libXext pkgs.xorg.libXdamage pkgs.xorg.libxcb pkgs.xorg.libXfixes pkgs.xorg.libXrender pkgs.fontconfig.lib pkgs.freetype pkgs.libGL pkgs.zlib pkgs.ncurses5 pkgs.libpulseaudio pkgs_i686.glibc pkgs_i686.xorg.libX11 pkgs_i686.xorg.libXrender pkgs_i686.fontconfig pkgs_i686.freetype pkgs_i686.zlib ];
   inherit package os;
 
   patchInstructions = ''
@@ -41,7 +41,7 @@ deployAndroidPackage {
     do
         wrapProgram $PWD/$i \
           --prefix PATH : ${pkgs.jdk8}/bin \
-          --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xlibs.libX11 pkgs.xlibs.libXtst ]}
+          --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xorg.libX11 pkgs.xorg.libXtst ]}
     done
 
     ${lib.optionalString (os == "linux") ''
diff --git a/pkgs/development/mobile/androidenv/tools/26.nix b/pkgs/development/mobile/androidenv/tools/26.nix
index 0234c9f3d04..a768a120547 100644
--- a/pkgs/development/mobile/androidenv/tools/26.nix
+++ b/pkgs/development/mobile/androidenv/tools/26.nix
@@ -4,7 +4,7 @@ deployAndroidPackage {
   name = "androidsdk";
   inherit os package;
   buildInputs = [ autoPatchelfHook makeWrapper ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xlibs.libX11 pkgs.xlibs.libXrender pkgs.xlibs.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xlibs.libX11 pkgs_i686.xlibs.libXrender pkgs_i686.xlibs.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ];
+    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.xorg.libX11 pkgs.xorg.libXrender pkgs.xorg.libXext pkgs.fontconfig pkgs.freetype pkgs_i686.glibc pkgs_i686.xorg.libX11 pkgs_i686.xorg.libXrender pkgs_i686.xorg.libXext pkgs_i686.fontconfig.lib pkgs_i686.freetype pkgs_i686.zlib pkgs.fontconfig.lib ];
 
   patchInstructions = ''
     ${lib.optionalString (os == "linux") ''
@@ -27,7 +27,7 @@ deployAndroidPackage {
     # Wrap monitor script
     wrapProgram $PWD/monitor \
       --prefix PATH : ${pkgs.jdk8}/bin \
-      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xlibs.libX11 pkgs.xlibs.libXtst ]}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.xorg.libX11 pkgs.xorg.libXtst ]}
 
     # Patch all script shebangs
     patchShebangs .
diff --git a/pkgs/development/mobile/checkra1n/default.nix b/pkgs/development/mobile/checkra1n/default.nix
new file mode 100644
index 00000000000..110bb187f61
--- /dev/null
+++ b/pkgs/development/mobile/checkra1n/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "checkra1n";
+  version = "0.12.4";
+
+  src = fetchurl {
+    url = "https://assets.checkra.in/downloads/linux/cli/x86_64/dac9968939ea6e6bfbdedeb41d7e2579c4711dc2c5083f91dced66ca397dc51d/checkra1n";
+    sha256 = "07f5glwwlrpdvj8ky265q8fp3i3r4mz1vd6yvvxnnvpa764rdjfs";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -dm755 "$out/bin"
+    install -m755 $src $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    description = "Jailbreak for iPhone 5s though iPhone X, iOS 12.0 and up";
+    homepage = "https://checkra.in/";
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ onny ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
index 98963ba4128..6f4522ebf1c 100644
--- a/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
+++ b/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
@@ -1,23 +1,23 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.2)
-    activesupport (5.2.4.3)
+    CFPropertyList (3.0.3)
+    activesupport (5.2.4.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
-    algoliasearch (1.27.3)
+    algoliasearch (1.27.5)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.10.0.beta.2)
+    cocoapods (1.10.1)
       addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.10.0.beta.2)
+      cocoapods-core (= 1.10.1)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -31,8 +31,8 @@ GEM
       molinillo (~> 0.6.6)
       nap (~> 1.0)
       ruby-macho (~> 1.4)
-      xcodeproj (>= 1.17.0, < 2.0)
-    cocoapods-core (1.10.0.beta.2)
+      xcodeproj (>= 1.19.0, < 2.0)
+    cocoapods-core (1.10.1)
       activesupport (> 5.0, < 6)
       addressable (~> 2.6)
       algoliasearch (~> 1.0)
@@ -52,31 +52,31 @@ GEM
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.13.1)
+    ffi (1.15.0)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (1.8.5)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    json (2.3.1)
-    minitest (5.14.1)
+    json (2.5.1)
+    minitest (5.14.4)
     molinillo (0.6.6)
     nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
-    public_suffix (4.0.5)
+    public_suffix (4.0.6)
     ruby-macho (1.4.0)
     thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
-    xcodeproj (1.18.0)
+    xcodeproj (1.19.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
diff --git a/pkgs/development/mobile/cocoapods/Gemfile.lock b/pkgs/development/mobile/cocoapods/Gemfile.lock
index 9e891569d92..cf718b02c08 100644
--- a/pkgs/development/mobile/cocoapods/Gemfile.lock
+++ b/pkgs/development/mobile/cocoapods/Gemfile.lock
@@ -1,26 +1,27 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.2)
-    activesupport (4.2.11.3)
-      i18n (~> 0.7)
+    CFPropertyList (3.0.3)
+    activesupport (5.2.4.5)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
       minitest (~> 5.1)
-      thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    algoliasearch (1.27.2)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    algoliasearch (1.27.5)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.9.3)
-      activesupport (>= 4.0.2, < 5)
+    cocoapods (1.10.1)
+      addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.9.3)
+      cocoapods-core (= 1.10.1)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
-      cocoapods-downloader (>= 1.2.2, < 2.0)
+      cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
       cocoapods-search (>= 1.0.0, < 2.0)
-      cocoapods-stats (>= 1.0.0, < 2.0)
       cocoapods-trunk (>= 1.4.0, < 2.0)
       cocoapods-try (>= 1.1.0, < 2.0)
       colored2 (~> 3.1)
@@ -30,55 +31,57 @@ GEM
       molinillo (~> 0.6.6)
       nap (~> 1.0)
       ruby-macho (~> 1.4)
-      xcodeproj (>= 1.14.0, < 2.0)
-    cocoapods-core (1.9.3)
-      activesupport (>= 4.0.2, < 6)
+      xcodeproj (>= 1.19.0, < 2.0)
+    cocoapods-core (1.10.1)
+      activesupport (> 5.0, < 6)
+      addressable (~> 2.6)
       algoliasearch (~> 1.0)
       concurrent-ruby (~> 1.1)
       fuzzy_match (~> 2.0.4)
       nap (~> 1.0)
       netrc (~> 0.11)
+      public_suffix
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.4)
-    cocoapods-downloader (1.3.0)
+    cocoapods-downloader (1.4.0)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.0)
-    cocoapods-stats (1.1.0)
     cocoapods-trunk (1.5.0)
       nap (>= 0.8, < 2.0)
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.8)
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.12.2)
+    ffi (1.15.0)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (0.9.5)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    json (2.3.0)
-    minitest (5.14.1)
+    json (2.5.1)
+    minitest (5.14.4)
     molinillo (0.6.6)
-    nanaimo (0.2.6)
+    nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
+    public_suffix (4.0.6)
     ruby-macho (1.4.0)
     thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
-    tzinfo (1.2.7)
+    tzinfo (1.2.9)
       thread_safe (~> 0.1)
-    xcodeproj (1.16.0)
+    xcodeproj (1.19.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
-      nanaimo (~> 0.2.6)
+      nanaimo (~> 0.3.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/development/mobile/cocoapods/default.nix b/pkgs/development/mobile/cocoapods/default.nix
index f0d1a3b89d0..8559ff5c74c 100644
--- a/pkgs/development/mobile/cocoapods/default.nix
+++ b/pkgs/development/mobile/cocoapods/default.nix
@@ -13,7 +13,7 @@ bundlerApp {
   passthru.updateScript = toString ./update;
 
   meta = with lib; {
-    description     = "CocoaPods manages dependencies for your Xcode projects.";
+    description     = "Manages dependencies for your Xcode projects";
     homepage        = "https://github.com/CocoaPods/CocoaPods";
     license         = licenses.mit;
     platforms       = platforms.darwin;
diff --git a/pkgs/development/mobile/cocoapods/gemset-beta.nix b/pkgs/development/mobile/cocoapods/gemset-beta.nix
index b456f728b4c..9c18d393bcb 100644
--- a/pkgs/development/mobile/cocoapods/gemset-beta.nix
+++ b/pkgs/development/mobile/cocoapods/gemset-beta.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "5.2.4.3";
+    version = "5.2.4.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
+      sha256 = "0ly8zsgvih540xmxr098hsngv61cf119wf28q5hbvi1f7kgwvh96";
       type = "gem";
     };
-    version = "1.27.3";
+    version = "1.27.5";
   };
   atomos = {
     groups = ["default"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
+      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.0.3";
   };
   claide = {
     groups = ["default"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jf5q75h410b6gymy86j4zy9yhb6n28wa7hrk8p7y2dsafdzbric";
+      sha256 = "0k1fgp93nbgvp5m76wf067jcqy5zzbx0kczcxvhrzdxkkixzm30a";
       type = "gem";
     };
-    version = "1.10.0.beta.2";
+    version = "1.10.1";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -79,10 +79,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vrw6v5fp0m903ghvfwaw3mbxrr68x7hz9bj34rj4icirwp4ifyl";
+      sha256 = "0x5lh6ws3rn2zxv7bagam54rkcslxrx6w1anwd35rjxsn4xx0d83";
       type = "gem";
     };
-    version = "1.10.0.beta.2";
+    version = "1.10.1";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -161,10 +161,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   escape = {
     groups = ["default"];
@@ -192,10 +192,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   fourflusher = {
     groups = ["default"];
@@ -243,30 +243,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.9";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.1";
+    version = "5.14.4";
   };
   molinillo = {
     groups = ["default"];
@@ -313,10 +313,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.5";
+    version = "4.0.6";
   };
   ruby-macho = {
     groups = ["default"];
@@ -355,10 +355,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
@@ -366,9 +366,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18idiqfbvyrcyflccwy4qw125psckrnqy7ggci33m8f3zs8h7hnm";
+      sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
       type = "gem";
     };
-    version = "1.18.0";
+    version = "1.19.0";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/mobile/cocoapods/gemset.nix b/pkgs/development/mobile/cocoapods/gemset.nix
index 8ff1b2e118b..90c1687aeab 100644
--- a/pkgs/development/mobile/cocoapods/gemset.nix
+++ b/pkgs/development/mobile/cocoapods/gemset.nix
@@ -1,14 +1,25 @@
 {
   activesupport = {
-    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
+      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
       type = "gem";
     };
-    version = "4.2.11.3";
+    version = "5.2.4.5";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
   };
   algoliasearch = {
     dependencies = ["httpclient" "json"];
@@ -16,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b3xk42ry6dlsqn379p884zdi4iyra67xh45rwl6vcrwmrnbq7f0";
+      sha256 = "0ly8zsgvih540xmxr098hsngv61cf119wf28q5hbvi1f7kgwvh96";
       type = "gem";
     };
-    version = "1.27.2";
+    version = "1.27.5";
   };
   atomos = {
     source = {
@@ -34,10 +45,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
+      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.0.3";
   };
   claide = {
     groups = ["default"];
@@ -50,26 +61,26 @@
     version = "1.0.3";
   };
   cocoapods = {
-    dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
+    dependencies = ["addressable" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zqj1878izp34cn7552q2djs3zd4a5ylyv0af3yxbz34z0qllk60";
+      sha256 = "0k1fgp93nbgvp5m76wf067jcqy5zzbx0kczcxvhrzdxkkixzm30a";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.1";
   };
   cocoapods-core = {
-    dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
+    dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sn1561sdhq2bh35pmi9nhq1adjcgdkhxybd9pxcjs75zmqzpz13";
+      sha256 = "0x5lh6ws3rn2zxv7bagam54rkcslxrx6w1anwd35rjxsn4xx0d83";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.1";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -86,10 +97,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08vn0pgcyn6w6fq5xjd7szv2h9s5rzl17kyidnd7fl5qdmzc9c54";
+      sha256 = "1j03hxvz3m82fwgx3jayw0y2iqm7zpacn88r6nfj2arkbjxmvjwz";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.0";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -108,16 +119,6 @@
     };
     version = "1.0.0";
   };
-  cocoapods-stats = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1xhdh5v94p6l612rwrk290nd2hdfx8lbaqfbkmj34md218kilqww";
-      type = "gem";
-    };
-    version = "1.1.0";
-  };
   cocoapods-trunk = {
     dependencies = ["nap" "netrc"];
     groups = ["default"];
@@ -152,10 +153,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.8";
   };
   escape = {
     source = {
@@ -181,10 +182,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.15.0";
   };
   fourflusher = {
     groups = ["default"];
@@ -224,32 +225,34 @@
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "0.9.5";
+    version = "1.8.9";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.1";
+    version = "5.14.4";
   };
   molinillo = {
     source = {
@@ -260,12 +263,14 @@
     version = "0.6.6";
   };
   nanaimo = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.3.0";
   };
   nap = {
     source = {
@@ -283,6 +288,16 @@
     };
     version = "0.11.0";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
   ruby-macho = {
     groups = ["default"];
     platforms = [];
@@ -318,10 +333,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      sha256 = "0zwqqh6138s8b321fwvfbywxy00lw1azw4ql3zr0xh1aqxf8cnvj";
       type = "gem";
     };
-    version = "1.2.7";
+    version = "1.2.9";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
@@ -329,9 +344,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
+      sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.19.0";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/mobile/flashtool/default.nix b/pkgs/development/mobile/flashtool/default.nix
deleted file mode 100644
index 84c42c895ce..00000000000
--- a/pkgs/development/mobile/flashtool/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ stdenv, requireFile, p7zip, jre, libusb1, platform-tools, gtk2, glib, libXtst }:
-
-# TODO:
-#
-#   The FlashTool and FlashToolConsole scripts are messy and should probably we
-#   replaced entirely. All these scripts do is try to guess the environment in
-#   which to run the Java binary (and they guess wrong on NixOS).
-#
-#   The FlashTool scripts run 'chmod' on the binaries installed in the Nix
-#   store. These commands fail, naturally, because the Nix story is (hopefully)
-#   mounted read-only. This doesn't matter, though, because the build
-#   instructions fix the executable bits already.
-
-stdenv.mkDerivation rec {
-  name = "flashtool-0.9.14.0";
-
-  src = requireFile {
-    url = "http://dfiles.eu/files/n8c1c3pgc";
-    name = "flashtool-0.9.14.0-linux.tar.7z";
-    sha256 = "0mfjdjj7clz2dhkg7lzy1m8hk8ngla7zgcryf51aki1gnpbb2zc1";
-  };
-
-  buildInputs = [ p7zip jre ];
-
-  unpackPhase = ''
-    7z e ${src}
-    tar xf ${name}-linux.tar
-    sourceRoot=FlashTool
-  '';
-
-  buildPhase = ''
-    ln -s ${platform-tools}/libexec/android-sdk/platform-tools/adb x10flasher_lib/adb.linux
-    ln -s ${platform-tools}/libexec/android-sdk/platform-tools/fastboot x10flasher_lib/fastboot.linux
-    ln -s ${libusb1.out}/lib/libusb-1.0.so.0 ./x10flasher_lib/linux/lib32/libusbx-1.0.so
-
-    chmod +x x10flasher_lib/unyaffs.linux.x86 x10flasher_lib/bin2elf x10flasher_lib/bin2sin
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" x10flasher_lib/unyaffs.linux.x86
-    ln -sf unyaffs.linux.x86 x10flasher_lib/unyaffs.linux
-
-    ln -s swt32.jar x10flasher_lib/swtlin/swt.jar
-
-    sed -i \
-      -e 's|$(uname -m)|i686|' \
-      -e 's|export JAVA_HOME=.*|export JAVA_HOME=${jre}|' \
-      -e 's|export LD_LIBRARY_PATH=.*|export LD_LIBRARY_PATH=${stdenv.lib.makeLibraryPath [ libXtst glib gtk2 ]}:./x10flasher_lib/linux/lib32|' \
-      FlashTool FlashToolConsole
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-    mv * $out/
-  '';
-
-  meta = {
-    homepage = "http://www.flashtool.net/";
-    description = "S1 flashing software for Sony phones from X10 to Xperia Z Ultra";
-    license = stdenv.lib.licenses.unfreeRedistributableFirmware;
-    platforms = [ "i686-linux" ];
-    hydraPlatforms = stdenv.lib.platforms.none;
-    broken = true;
-  };
-}
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index 72a376d39a8..1aa81132c26 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, makeWrapper, which, zlib, libGL, glib, xorg, libxkbcommon
-, xdg_utils
+{ stdenv, lib, fetchurl, makeWrapper, which, zlib, libGL, glib, xorg, libxkbcommon
+, xdg-utils
 # For glewinfo
 , libXmu, libXi, libXext }:
 
@@ -7,7 +7,7 @@ let
   packages = [
     stdenv.cc.cc zlib glib xorg.libX11 libxkbcommon libXmu libXi libXext libGL
   ];
-  libPath = stdenv.lib.makeLibraryPath packages;
+  libPath = lib.makeLibraryPath packages;
 in
 stdenv.mkDerivation rec {
   pname = "genymotion";
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
     sha256 = "0lvfdlpmmsyq2i9gs4mf6a8fxkfimdr4rhyihqnfhjij3fzxz4lk";
   };
 
-  buildInputs = [ makeWrapper which xdg_utils ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ which xdg-utils ];
 
   unpackPhase = ''
     mkdir -p phony-home $out/share/applications
@@ -66,7 +67,7 @@ stdenv.mkDerivation rec {
     rm $out/libexec/genymotion/libxkbcommon*
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Fast and easy Android emulation";
     longDescription = ''
       Genymotion is a relatively fast Android emulator which comes with
@@ -74,8 +75,8 @@ stdenv.mkDerivation rec {
       suitable for application testing.
      '';
     homepage = "https://www.genymotion.com/";
-    license = stdenv.lib.licenses.unfree;
+    license = licenses.unfree;
     platforms = ["x86_64-linux"];
-    maintainers = [ stdenv.lib.maintainers.puffnfresh ];
+    maintainers = [ maintainers.puffnfresh ];
   };
 }
diff --git a/pkgs/development/mobile/gomobile/default.nix b/pkgs/development/mobile/gomobile/default.nix
new file mode 100644
index 00000000000..ce44b7dd934
--- /dev/null
+++ b/pkgs/development/mobile/gomobile/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib, fetchgit, buildGoModule, zlib, makeWrapper, xcodeenv, androidenv
+, xcodeWrapperArgs ? { }
+, xcodeWrapper ? xcodeenv.composeXcodeWrapper xcodeWrapperArgs
+, androidPkgs ? androidenv.composeAndroidPackages {
+    includeNDK = true;
+    ndkVersion = "22.1.7171670";
+  } }:
+
+buildGoModule {
+  pname = "gomobile";
+  version = "unstable-2021-06-14";
+
+  vendorSha256 = "1irgkgv72rakg7snk1bnp10ibr64ykz9l40s59l4fnl63zsh12a0";
+
+  src = fetchgit {
+    rev = "7c8f154d100840bc5828285bb390bbae1cb5a98c";
+    name = "gomobile";
+    url = "https://go.googlesource.com/mobile";
+    sha256 = "1w9mra1mqf60iafp0ywvja5196fjsjyfhvz4yizqq4qkyll5qmj1";
+  };
+
+  subPackages = [ "bind" "cmd/gobind" "cmd/gomobile" ];
+
+  # Fails with: go: cannot find GOROOT directory
+  doCheck = false;
+
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optionals stdenv.isDarwin [ xcodeWrapper ];
+
+  # Prevent a non-deterministic temporary directory from polluting the resulting object files
+  postPatch = ''
+    substituteInPlace cmd/gomobile/env.go --replace \
+      'tmpdir, err = ioutil.TempDir("", "gomobile-work-")' \
+      'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "gomobile-work")' \
+      --replace '"io/ioutil"' ""
+    substituteInPlace cmd/gomobile/init.go --replace \
+      'tmpdir, err = ioutil.TempDir(gomobilepath, "work-")' \
+      'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "work")'
+  '';
+
+  # Necessary for GOPATH when using gomobile.
+  postInstall = ''
+    mkdir -p $out/src/golang.org/x
+    ln -s $src $out/src/golang.org/x/mobile
+    wrapProgram $out/bin/gomobile \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ zlib ]}" \
+      --prefix PATH : "${androidPkgs.androidsdk}/bin" \
+      --set ANDROID_NDK_HOME "${androidPkgs.androidsdk}/libexec/android-sdk/ndk-bundle" \
+      --set ANDROID_HOME "${androidPkgs.androidsdk}/libexec/android-sdk"
+  '';
+
+  meta = with lib; {
+    description = "A tool for building and running mobile apps written in Go";
+    homepage = "https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jakubgs ];
+  };
+}
diff --git a/pkgs/development/mobile/imgpatchtools/default.nix b/pkgs/development/mobile/imgpatchtools/default.nix
index fd14a73e2ce..c45e4973f56 100644
--- a/pkgs/development/mobile/imgpatchtools/default.nix
+++ b/pkgs/development/mobile/imgpatchtools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, bzip2, openssl, zlib }:
+{ lib, stdenv, fetchzip, bzip2, openssl, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "imgpatchtools";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   installPhase = "install -Dt $out/bin bin/*";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Tools to manipulate Android OTA archives";
     longDescription = ''
       This package is useful for Android development. In particular, it can be
diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix
index a7e158bd3bb..82a264e702d 100644
--- a/pkgs/development/mobile/titaniumenv/build-app.nix
+++ b/pkgs/development/mobile/titaniumenv/build-app.nix
@@ -1,4 +1,4 @@
-{stdenv, composeAndroidPackages, composeXcodeWrapper, titaniumsdk, titanium, alloy, jdk, python, nodejs, which, file}:
+{stdenv, lib, composeAndroidPackages, composeXcodeWrapper, titaniumsdk, titanium, alloy, jdk, python, nodejs, which, file}:
 { name, src, preBuild ? "", target, tiVersion ? null
 , release ? false, androidKeyStore ? null, androidKeyAlias ? null, androidKeyStorePassword ? null
 , iosMobileProvisioningProfile ? null, iosCertificateName ? null, iosCertificate ? null, iosCertificatePassword ? null, iosVersion ? "12.1", iosBuildStore ? false
@@ -34,14 +34,14 @@ let
   extraArgs = removeAttrs args [ "name" "preRebuild" "androidsdkArgs" "xcodewrapperArgs" ];
 in
 stdenv.mkDerivation ({
-  name = stdenv.lib.replaceChars [" "] [""] name;
+  name = lib.replaceChars [" "] [""] name;
 
   buildInputs = [ nodejs titanium alloy python which file jdk ];
 
   buildPhase = ''
     ${preBuild}
 
-    ${stdenv.lib.optionalString stdenv.isDarwin ''
+    ${lib.optionalString stdenv.isDarwin ''
       # Hack that provides a writable alloy package on macOS. Without it the build fails because of a file permission error.
       alloy=$(dirname $(type -p alloy))/..
       cp -rv $alloy/* alloy
@@ -51,7 +51,7 @@ stdenv.mkDerivation ({
 
     export HOME=${if target == "iphone" then "/Users/$(whoami)" else "$TMPDIR"}
 
-    ${stdenv.lib.optionalString (tiVersion != null) ''
+    ${lib.optionalString (tiVersion != null) ''
       # Replace titanium version by the provided one
       sed -i -e "s|<sdk-version>[0-9a-zA-Z\.]*</sdk-version>|<sdk-version>${tiVersion}</sdk-version>|" tiapp.xml
     ''}
@@ -76,7 +76,7 @@ stdenv.mkDerivation ({
       export GRADLE_USER_HOME=$TMPDIR/gradle
 
       ${if release then ''
-        ${stdenv.lib.optionalString stdenv.isDarwin ''
+        ${lib.optionalString stdenv.isDarwin ''
           # Signing the app does not work with OpenJDK on macOS, use host SDK instead
           export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
         ''}
@@ -171,7 +171,7 @@ stdenv.mkDerivation ({
         mkdir -p $out/nix-support
         echo "file binary-dist \"$(echo $out/*.ipa)\"" > $out/nix-support/hydra-build-products
 
-        ${stdenv.lib.optionalString enableWirelessDistribution ''
+        ${lib.optionalString enableWirelessDistribution ''
           appname="$(basename $out/*.ipa .ipa)"
           bundleId=$(grep '<id>[a-zA-Z0-9.]*</id>' tiapp.xml | sed -e 's|<id>||' -e 's|</id>||' -e 's/ //g')
           version=$(grep '<version>[a-zA-Z0-9.]*</version>' tiapp.xml | sed -e 's|<version>||' -e 's|</version>||' -e 's/ //g')
@@ -184,5 +184,5 @@ stdenv.mkDerivation ({
     else throw "Target: ${target} is not supported!"}
   '';
 
-  failureHook = stdenv.lib.optionalString (release && target == "iphone") deleteKeychain;
+  failureHook = lib.optionalString (release && target == "iphone") deleteKeychain;
 } // extraArgs)
diff --git a/pkgs/development/mobile/titaniumenv/default.nix b/pkgs/development/mobile/titaniumenv/default.nix
index 44ec91d7e59..151502a5d16 100644
--- a/pkgs/development/mobile/titaniumenv/default.nix
+++ b/pkgs/development/mobile/titaniumenv/default.nix
@@ -8,11 +8,11 @@ rec {
       else throw "Titanium version not supported: "+tiVersion;
     in
     import titaniumSdkFile {
-      inherit (pkgs) stdenv fetchurl unzip makeWrapper;
+      inherit (pkgs) stdenv lib fetchurl unzip makeWrapper;
     };
 
   buildApp = import ./build-app.nix {
-    inherit (pkgs) stdenv python which file jdk nodejs;
+    inherit (pkgs) stdenv lib python which file jdk nodejs;
     inherit (pkgs.nodePackages) alloy titanium;
     inherit (androidenv) composeAndroidPackages;
     inherit (xcodeenv) composeXcodeWrapper;
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
index f471dc977b3..89fd34bb5a3 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   }
   else throw "Platform: ${stdenv.system} not supported!";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   buildCommand = ''
     mkdir -p $out
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
index 2af53a63b58..fb462cc27fe 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, makeWrapper}:
+{stdenv, lib, fetchurl, unzip, makeWrapper}:
 
 let
   # Gradle is a build system that bootstraps itself. This is what it actually
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   }
   else throw "Platform: ${stdenv.system} not supported!";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   buildCommand = ''
     mkdir -p $out
@@ -87,7 +87,7 @@ stdenv.mkDerivation {
     # Patch maven central repository with our own local directory. This prevents the builder from downloading Maven artifacts
     sed -i -e 's|mavenCentral()|maven { url "${fakeMavenRepo}" }|' android/templates/build/proguard.gradle
 
-    ${stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
+    ${lib.optionalString (stdenv.system == "x86_64-darwin") ''
       # Patch the strip frameworks script in the iPhone build template to not let
       # it skip the strip phase. This is caused by an assumption on the file
       # permissions in which Nix deviates from the standard.
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
index b995a566f52..c207b112fae 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, makeWrapper}:
+{stdenv, lib, fetchurl, unzip, makeWrapper}:
 
 let
   # Gradle is a build system that bootstraps itself. This is what it actually
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
   }
   else throw "Platform: ${stdenv.system} not supported!";
 
-  buildInputs = [ unzip makeWrapper ];
+  nativeBuildInputs = [ makeWrapper unzip ];
 
   buildCommand = ''
     mkdir -p $out
@@ -87,7 +87,7 @@ stdenv.mkDerivation {
     # Patch maven central repository with our own local directory. This prevents the builder from downloading Maven artifacts
     sed -i -e 's|mavenCentral()|maven { url "${fakeMavenRepo}" }|' android/templates/build/proguard.gradle
 
-    ${stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
+    ${lib.optionalString (stdenv.system == "x86_64-darwin") ''
       # Patch the strip frameworks script in the iPhone build template to not let
       # it skip the strip phase. This is caused by an assumption on the file
       # permissions in which Nix deviates from the standard.
diff --git a/pkgs/development/mobile/webos/cmake-modules.nix b/pkgs/development/mobile/webos/cmake-modules.nix
index cd58ea4e20c..0f73646c769 100644
--- a/pkgs/development/mobile/webos/cmake-modules.nix
+++ b/pkgs/development/mobile/webos/cmake-modules.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "cmake-modules-webos";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   setupHook = ./cmake-setup-hook.sh;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "CMake modules needed to build Open WebOS components";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/development/mobile/webos/novacom.nix b/pkgs/development/mobile/webos/novacom.nix
index e7afdb32137..eca29dd2fab 100644
--- a/pkgs/development/mobile/webos/novacom.nix
+++ b/pkgs/development/mobile/webos/novacom.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, webos, cmake, pkgconfig }:
+{ lib, stdenv, fetchFromGitHub, webos, cmake, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "novacom";
@@ -11,14 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "12s6g7l20kakyjlhqpli496miv2kfsdp17lcwhdrzdxvxl6hnf4n";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig webos.cmake-modules ];
+  nativeBuildInputs = [ cmake pkg-config webos.cmake-modules ];
 
   postInstall = ''
     install -Dm755 -t $out/bin ../scripts/novaterm
     substituteInPlace $out/bin/novaterm --replace "exec novacom" "exec $out/bin/novacom"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utility for communicating with WebOS devices";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/development/mobile/webos/novacomd.nix b/pkgs/development/mobile/webos/novacomd.nix
index 932ec0e59d6..dc330ce6d4e 100644
--- a/pkgs/development/mobile/webos/novacomd.nix
+++ b/pkgs/development/mobile/webos/novacomd.nix
@@ -1,6 +1,6 @@
-{ stdenv,
+{ lib, stdenv,
 fetchFromGitHub, fetchpatch,
-webos, cmake, pkgconfig,
+webos, cmake, pkg-config,
 libusb-compat-0_1 }:
 
 stdenv.mkDerivation rec {
@@ -25,13 +25,13 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ cmake pkgconfig webos.cmake-modules ];
+  nativeBuildInputs = [ cmake pkg-config webos.cmake-modules ];
 
   buildInputs = [ libusb-compat-0_1 ];
 
   cmakeFlags = [ "-DWEBOS_TARGET_MACHINE_IMPL=host" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Daemon for communicating with WebOS devices";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/development/mobile/xcodeenv/build-app.nix b/pkgs/development/mobile/xcodeenv/build-app.nix
index fa108c8e470..ae8416c8d76 100644
--- a/pkgs/development/mobile/xcodeenv/build-app.nix
+++ b/pkgs/development/mobile/xcodeenv/build-app.nix
@@ -1,4 +1,4 @@
-{stdenv, composeXcodeWrapper}:
+{stdenv, lib, composeXcodeWrapper}:
 { name
 , src
 , sdkVersion ? "13.1"
@@ -53,13 +53,13 @@ let
   extraArgs = removeAttrs args ([ "name" "scheme" "xcodeFlags" "release" "certificateFile" "certificatePassword" "provisioningProfile" "signMethod" "generateIPA" "generateXCArchive" "enableWirelessDistribution" "installURL" "bundleId" "version" ] ++ builtins.attrNames xcodewrapperFormalArgs);
 in
 stdenv.mkDerivation ({
-  name = stdenv.lib.replaceChars [" "] [""] name; # iOS app names can contain spaces, but in the Nix store this is not allowed
+  name = lib.replaceChars [" "] [""] name; # iOS app names can contain spaces, but in the Nix store this is not allowed
   buildPhase = ''
     # Be sure that the Xcode wrapper has priority over everything else.
     # When using buildInputs this does not seem to be the case.
     export PATH=${xcodewrapper}/bin:$PATH
-    
-    ${stdenv.lib.optionalString release ''
+
+    ${lib.optionalString release ''
       export HOME=/Users/$(whoami)
       keychainName="$(basename $out)"
 
@@ -69,7 +69,7 @@ stdenv.mkDerivation ({
       security unlock-keychain -p "" $keychainName
 
       # Import the certificate into the keychain
-      security import ${certificateFile} -k $keychainName -P "${certificatePassword}" -A 
+      security import ${certificateFile} -k $keychainName -P "${certificatePassword}" -A
 
       # Grant the codesign utility permissions to read from the keychain
       security set-key-partition-list -S apple-tool:,apple: -s -k "" $keychainName
@@ -91,10 +91,10 @@ stdenv.mkDerivation ({
     # Do the building
     export LD=/usr/bin/clang # To avoid problem with -isysroot parameter that is unrecognized by the stock ld. Comparison with an impure build shows that it uses clang instead. Ugly, but it works
 
-    xcodebuild -target ${_target} -configuration ${_configuration} ${stdenv.lib.optionalString (scheme != null) "-scheme ${scheme}"} -sdk ${_sdk} TARGETED_DEVICE_FAMILY="1, 2" ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateIPA || generateXCArchive then "-archivePath \"${name}.xcarchive\" archive" else ""} ${if release then '' PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName-db"'' else ""} ${xcodeFlags}
+    xcodebuild -target ${_target} -configuration ${_configuration} ${lib.optionalString (scheme != null) "-scheme ${scheme}"} -sdk ${_sdk} TARGETED_DEVICE_FAMILY="1, 2" ONLY_ACTIVE_ARCH=NO CONFIGURATION_TEMP_DIR=$TMPDIR CONFIGURATION_BUILD_DIR=$out ${if generateIPA || generateXCArchive then "-archivePath \"${name}.xcarchive\" archive" else ""} ${if release then '' PROVISIONING_PROFILE=$PROVISIONING_PROFILE OTHER_CODE_SIGN_FLAGS="--keychain $HOME/Library/Keychains/$keychainName-db"'' else ""} ${xcodeFlags}
 
-    ${stdenv.lib.optionalString release ''
-      ${stdenv.lib.optionalString generateIPA ''
+    ${lib.optionalString release ''
+      ${lib.optionalString generateIPA ''
         # Create export plist file
         cat > "${name}.plist" <<EOF
         <?xml version="1.0" encoding="UTF-8"?>
@@ -112,7 +112,7 @@ stdenv.mkDerivation ({
             <string>manual</string>
             <key>method</key>
             <string>${signMethod}</string>
-            ${stdenv.lib.optionalString (signMethod == "enterprise" || signMethod == "ad-hoc") ''
+            ${lib.optionalString (signMethod == "enterprise" || signMethod == "ad-hoc") ''
               <key>compileBitcode</key>
               <false/>
             ''}
@@ -127,14 +127,14 @@ stdenv.mkDerivation ({
         mkdir -p $out/nix-support
         echo "file binary-dist \"$(echo $out/*.ipa)\"" > $out/nix-support/hydra-build-products
 
-        ${stdenv.lib.optionalString enableWirelessDistribution ''
+        ${lib.optionalString enableWirelessDistribution ''
           # Add another hacky build product that enables wireless adhoc installations
           appname="$(basename "$(echo $out/*.ipa)" .ipa)"
           sed -e "s|@INSTALL_URL@|${installURL}?bundleId=${bundleId}\&amp;version=${appVersion}\&amp;title=$appname|" ${./install.html.template} > $out/''${appname}.html
           echo "doc install \"$out/''${appname}.html\"" >> $out/nix-support/hydra-build-products
         ''}
       ''}
-      ${stdenv.lib.optionalString generateXCArchive ''
+      ${lib.optionalString generateXCArchive ''
         mkdir -p $out
         mv "${name}.xcarchive" $out
       ''}
@@ -144,7 +144,7 @@ stdenv.mkDerivation ({
     ''}
   '';
 
-  failureHook = stdenv.lib.optionalString release deleteKeychain;
+  failureHook = lib.optionalString release deleteKeychain;
 
   installPhase = "true";
 } // extraArgs)
diff --git a/pkgs/development/mobile/xcodeenv/default.nix b/pkgs/development/mobile/xcodeenv/default.nix
index 47686e6d69e..90642ca7d9a 100644
--- a/pkgs/development/mobile/xcodeenv/default.nix
+++ b/pkgs/development/mobile/xcodeenv/default.nix
@@ -1,4 +1,4 @@
-{stdenv}:
+{ stdenv, lib }:
 
 rec {
   composeXcodeWrapper = import ./compose-xcodewrapper.nix {
@@ -6,10 +6,10 @@ rec {
   };
 
   buildApp = import ./build-app.nix {
-    inherit stdenv composeXcodeWrapper;
+    inherit stdenv lib composeXcodeWrapper;
   };
 
   simulateApp = import ./simulate-app.nix {
-    inherit stdenv composeXcodeWrapper;
+    inherit stdenv lib composeXcodeWrapper;
   };
 }
diff --git a/pkgs/development/mobile/xcodeenv/simulate-app.nix b/pkgs/development/mobile/xcodeenv/simulate-app.nix
index 1a55f8366a3..ea0502eb981 100644
--- a/pkgs/development/mobile/xcodeenv/simulate-app.nix
+++ b/pkgs/development/mobile/xcodeenv/simulate-app.nix
@@ -1,4 +1,4 @@
-{stdenv, composeXcodeWrapper}:
+{stdenv, lib, composeXcodeWrapper}:
 {name, app ? null, bundleId ? null, ...}@args:
 
 assert app != null -> bundleId != null;
@@ -9,7 +9,7 @@ let
   xcodewrapper = composeXcodeWrapper xcodewrapperArgs;
 in
 stdenv.mkDerivation {
-  name = stdenv.lib.replaceChars [" "] [""] name;
+  name = lib.replaceChars [" "] [""] name;
   buildCommand = ''
     mkdir -p $out/bin
     cat > $out/bin/run-test-simulator << "EOF"
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
     # Open the simulator instance
     open -a "$(readlink "${xcodewrapper}/bin/Simulator")" --args -CurrentDeviceUDID $udid
 
-    ${stdenv.lib.optionalString (app != null) ''
+    ${lib.optionalString (app != null) ''
       # Copy the app and restore the write permissions
       appTmpDir=$(mktemp -d -t appTmpDir)
       cp -r "$(echo ${app}/*.app)" "$appTmpDir"
diff --git a/pkgs/development/mobile/xpwn/default.nix b/pkgs/development/mobile/xpwn/default.nix
index 0c49a29b322..075a247f12c 100644
--- a/pkgs/development/mobile/xpwn/default.nix
+++ b/pkgs/development/mobile/xpwn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, zlib, libpng, bzip2, libusb-compat-0_1, openssl }:
+{ lib, stdenv, fetchFromGitHub, cmake, zlib, libpng, bzip2, libusb-compat-0_1, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "xpwn";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ zlib libpng bzip2 libusb-compat-0_1 openssl ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage    = "http://planetbeing.lighthouseapp.com/projects/15246-xpwn";
     description = "Custom NOR firmware loader/IPSW generator for the iPhone";
     license     = licenses.gpl3Plus;