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/adbfs-rootless/default.nix35
-rw-r--r--pkgs/development/mobile/androidenv/cmdline-tools.nix8
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix47
-rw-r--r--pkgs/development/mobile/androidenv/deploy-androidpackages.nix2
-rw-r--r--pkgs/development/mobile/androidenv/examples/shell-with-emulator.nix12
-rw-r--r--pkgs/development/mobile/androidenv/examples/shell.nix23
-rw-r--r--pkgs/development/mobile/androidenv/mkrepo.rb111
-rwxr-xr-xpkgs/development/mobile/androidenv/mkrepo.sh7
-rw-r--r--pkgs/development/mobile/androidenv/platform-tools.nix2
-rw-r--r--pkgs/development/mobile/androidenv/repo.json2549
-rw-r--r--pkgs/development/mobile/androidenv/tools.nix4
-rw-r--r--pkgs/development/mobile/cordova/default.nix28
-rw-r--r--pkgs/development/mobile/fdroidcl/default.nix36
-rw-r--r--pkgs/development/mobile/fdroidcl/go_mod_version_update.patch47
-rw-r--r--pkgs/development/mobile/genymotion/default.nix4
-rw-r--r--pkgs/development/mobile/ios-webkit-debug-proxy/0001-Don-t-compile-examples.patch23
-rw-r--r--pkgs/development/mobile/ios-webkit-debug-proxy/default.nix63
-rw-r--r--pkgs/development/mobile/maestro/default.nix4
-rw-r--r--pkgs/development/mobile/titanium-alloy/default.nix29
-rw-r--r--pkgs/development/mobile/titanium/default.nix29
-rw-r--r--pkgs/development/mobile/titaniumenv/build-app.nix3
-rw-r--r--pkgs/development/mobile/titaniumenv/default.nix4
-rw-r--r--pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix21
-rw-r--r--pkgs/development/mobile/xcodeenv/default.nix14
24 files changed, 2864 insertions, 241 deletions
diff --git a/pkgs/development/mobile/adbfs-rootless/default.nix b/pkgs/development/mobile/adbfs-rootless/default.nix
index 85bf2fb44906c..674988dccb17e 100644
--- a/pkgs/development/mobile/adbfs-rootless/default.nix
+++ b/pkgs/development/mobile/adbfs-rootless/default.nix
@@ -1,42 +1,43 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, fuse, adb }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, fuse
+, android-tools
+}:
 
 stdenv.mkDerivation rec {
   pname = "adbfs-rootless";
-  version = "2016-10-02";
+  version = "unstable-2023-03-21";
 
   src = fetchFromGitHub {
     owner = "spion";
-    repo = "adbfs-rootless";
-    rev = "b58963430e40c9246710a16cec58e7ffc88baa48";
-    sha256 = "1kjibl86k6pf7vciwaaxwv5m4q28zdpd2g7yhp71av32jq6j3wm8";
+    repo = pname;
+    rev = "fd56381af4dc9ae2f09b904c295686871a46ed0f";
+    sha256 = "atiVjRfqvhTlm8Q+3iTNNPQiNkLIaHDLg5HZDJvpl2Q=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/spion/adbfs-rootless/issues/14
-      url = "https://github.com/kronenpj/adbfs-rootless/commit/35f87ce0a7aeddaaad118daed3022e01453b838d.patch";
-      sha256 = "1iigla74n3hphnyx9ffli9wqk7v71ylvsxama868czlg7851jqj9";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ fuse ];
 
   postPatch = ''
     # very ugly way of replacing the adb calls
-    sed -e 's|"adb |"${adb}/bin/adb |g' \
-        -i adbfs.cpp
+    substituteInPlace adbfs.cpp \
+      --replace '"adb ' '"${android-tools}/bin/adb '
   '';
 
   installPhase = ''
+    runHook preInstall
     install -D adbfs $out/bin/adbfs
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Mount Android phones on Linux with adb, no root required";
     inherit (src.meta) homepage;
     license = licenses.bsd3;
-    maintainers = with maintainers; [ Profpatsch ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/mobile/androidenv/cmdline-tools.nix b/pkgs/development/mobile/androidenv/cmdline-tools.nix
index b3ca1c171b659..11ad37453f2a8 100644
--- a/pkgs/development/mobile/androidenv/cmdline-tools.nix
+++ b/pkgs/development/mobile/androidenv/cmdline-tools.nix
@@ -1,4 +1,4 @@
-{deployAndroidPackage, lib, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, stdenv, cmdLineToolsVersion, postInstall}:
+{deployAndroidPackage, lib, package, autoPatchelfHook, makeWrapper, os, pkgs, pkgsi686Linux, stdenv, postInstall}:
 
 deployAndroidPackage {
   name = "androidsdk";
@@ -16,7 +16,7 @@ deployAndroidPackage {
     export ANDROID_SDK_ROOT="$out/libexec/android-sdk"
 
     # Wrap all scripts that require JAVA_HOME
-    find $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin -maxdepth 1 -type f -executable | while read program; do
+    find $ANDROID_SDK_ROOT/${package.path}/bin -maxdepth 1 -type f -executable | while read program; do
       if grep -q "JAVA_HOME" $program; then
         wrapProgram $program  --prefix PATH : ${pkgs.jdk11}/bin \
           --prefix ANDROID_SDK_ROOT : $ANDROID_SDK_ROOT
@@ -24,12 +24,12 @@ deployAndroidPackage {
     done
 
     # Wrap sdkmanager script
-    wrapProgram $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin/sdkmanager \
+    wrapProgram $ANDROID_SDK_ROOT/${package.path}/bin/sdkmanager \
       --prefix PATH : ${lib.makeBinPath [ pkgs.jdk11 ]} \
       --add-flags "--sdk_root=$ANDROID_SDK_ROOT"
 
     # Patch all script shebangs
-    patchShebangs $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin
+    patchShebangs $ANDROID_SDK_ROOT/${package.path}/bin
 
     cd $ANDROID_SDK_ROOT
     ${postInstall}
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index 8c24b10093be0..8414217002d90 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -2,12 +2,12 @@
 , licenseAccepted ? false
 }:
 
-{ cmdLineToolsVersion ? "8.0"
+{ cmdLineToolsVersion ? "11.0"
 , toolsVersion ? "26.1.1"
-, platformToolsVersion ? "33.0.3"
-, buildToolsVersions ? [ "33.0.1" ]
+, platformToolsVersion ? "34.0.4"
+, buildToolsVersions ? [ "34.0.0" ]
 , includeEmulator ? false
-, emulatorVersion ? "31.3.14"
+, emulatorVersion ? "32.1.14"
 , platformVersions ? []
 , includeSources ? false
 , includeSystemImages ? false
@@ -15,7 +15,7 @@
 , abiVersions ? [ "armeabi-v7a" "arm64-v8a" ]
 , cmakeVersions ? [ ]
 , includeNDK ? false
-, ndkVersion ? "25.1.8937393"
+, ndkVersion ? "25.2.9519653"
 , ndkVersions ? [ndkVersion]
 , useGoogleAPIs ? false
 , useGoogleTVAddOns ? false
@@ -116,6 +116,7 @@ rec {
   deployAndroidPackages = callPackage ./deploy-androidpackages.nix {
     inherit stdenv lib mkLicenses;
   };
+
   deployAndroidPackage = ({package, os ? null, buildInputs ? [], patchInstructions ? "", meta ? {}, ...}@args:
     let
       extraParams = removeAttrs args [ "package" "os" "buildInputs" "patchInstructions" ];
@@ -127,15 +128,25 @@ rec {
     } // extraParams
   ));
 
+  # put a much nicer error message that includes the available options.
+  check-version = packages: package: version:
+    if lib.hasAttrByPath [ package version ] packages then
+      packages.${package}.${version}
+    else
+      throw ''
+        The version ${version} is missing in package ${package}.
+        The only available versions are ${builtins.concatStringsSep ", " (builtins.attrNames packages.${package})}.
+      '';
+
   platform-tools = callPackage ./platform-tools.nix {
     inherit deployAndroidPackage;
     os = if stdenv.system == "aarch64-darwin" then "macosx" else os; # "macosx" is a universal binary here
-    package = packages.platform-tools.${platformToolsVersion};
+    package = check-version packages "platform-tools" platformToolsVersion;
   };
 
   tools = callPackage ./tools.nix {
     inherit deployAndroidPackage os;
-    package = packages.tools.${toolsVersion};
+    package = check-version packages "tools" toolsVersion;
 
     postInstall = ''
       ${linkPlugin { name = "platform-tools"; plugin = platform-tools; }}
@@ -152,7 +163,7 @@ rec {
   build-tools = map (version:
     callPackage ./build-tools.nix {
       inherit deployAndroidPackage os;
-      package = packages.build-tools.${version};
+      package = check-version packages "build-tools" version;
 
       postInstall = ''
         ${linkPlugin { name = "tools"; plugin = tools; check = toolsVersion != null; }}
@@ -162,7 +173,7 @@ rec {
 
   emulator = callPackage ./emulator.nix {
     inherit deployAndroidPackage os;
-    package = packages.emulator.${emulatorVersion};
+    package = check-version packages "emulator" emulatorVersion;
 
     postInstall = ''
       ${linkSystemImages { images = system-images; check = includeSystemImages; }}
@@ -172,14 +183,14 @@ rec {
   platforms = map (version:
     deployAndroidPackage {
       inherit os;
-      package = packages.platforms.${version};
+      package = check-version packages "platforms" version;
     }
   ) platformVersions;
 
   sources = map (version:
     deployAndroidPackage {
       inherit os;
-      package = packages.sources.${version};
+      package = check-version packages "sources" version;
     }
   ) platformVersions;
 
@@ -223,7 +234,7 @@ rec {
   cmake = map (version:
     callPackage ./cmake.nix {
       inherit deployAndroidPackage os;
-      package = packages.cmake.${version};
+      package = check-version packages "cmake" version;
     }
   ) cmakeVersions;
 
@@ -243,14 +254,14 @@ rec {
   google-apis = map (version:
     deployAndroidPackage {
       inherit os;
-      package = addons.addons.${version}.google_apis;
+      package = (check-version addons "addons" version).google_apis;
     }
   ) (builtins.filter (platformVersion: platformVersion < "26") platformVersions); # API level 26 and higher include Google APIs by default
 
   google-tv-addons = map (version:
     deployAndroidPackage {
       inherit os;
-      package = addons.addons.${version}.google_tv_addon;
+      package = (check-version addons "addons" version).google_tv_addon;
     }
   ) platformVersions;
 
@@ -303,6 +314,8 @@ rec {
       '') plugins}
     ''; # */
 
+  cmdline-tools-package = check-version packages "cmdline-tools" cmdLineToolsVersion;
+
   # This derivation deploys the tools package and symlinks all the desired
   # plugins that we want to use. If the license isn't accepted, prints all the licenses
   # requested and throws.
@@ -318,9 +331,9 @@ rec {
       by an environment variable for a single invocation of the nix tools.
         $ export NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1
   '' else callPackage ./cmdline-tools.nix {
-    inherit deployAndroidPackage os cmdLineToolsVersion;
+    inherit deployAndroidPackage os;
 
-    package = packages.cmdline-tools.${cmdLineToolsVersion};
+    package = cmdline-tools-package;
 
     postInstall = ''
       # Symlink all requested plugins
@@ -364,7 +377,7 @@ rec {
           ln -s $i $out/bin
       done
 
-      find $ANDROID_SDK_ROOT/cmdline-tools/${cmdLineToolsVersion}/bin -type f -executable | while read i; do
+      find $ANDROID_SDK_ROOT/${cmdline-tools-package.path}/bin -type f -executable | while read i; do
           ln -s $i $out/bin
       done
 
diff --git a/pkgs/development/mobile/androidenv/deploy-androidpackages.nix b/pkgs/development/mobile/androidenv/deploy-androidpackages.nix
index aaedae1eb4bf1..36d5842d9f689 100644
--- a/pkgs/development/mobile/androidenv/deploy-androidpackages.nix
+++ b/pkgs/development/mobile/androidenv/deploy-androidpackages.nix
@@ -60,7 +60,7 @@ let
 in
 stdenv.mkDerivation ({
   inherit buildInputs;
-  pname = lib.concatMapStringsSep "-" (package: package.name) sortedPackages;
+  pname = "android-sdk-${lib.concatMapStringsSep "-" (package: package.name) sortedPackages}";
   version = lib.concatMapStringsSep "-" (package: package.revision) sortedPackages;
   src = map (package:
     if os != null && builtins.hasAttr os package.archives then package.archives.${os} else package.archives.all
diff --git a/pkgs/development/mobile/androidenv/examples/shell-with-emulator.nix b/pkgs/development/mobile/androidenv/examples/shell-with-emulator.nix
index ebfe97b856ad8..4cee79824a6be 100644
--- a/pkgs/development/mobile/androidenv/examples/shell-with-emulator.nix
+++ b/pkgs/development/mobile/androidenv/examples/shell-with-emulator.nix
@@ -26,7 +26,7 @@ let
   # Declaration of versions for everything. This is useful since these
   # versions may be used in multiple places in this Nix expression.
   android = {
-    platforms = [ "33" ];
+    platforms = [ "34" ];
     systemImageTypes = [ "google_apis" ];
     abis = [ "arm64-v8a" "x86_64" ];
   };
@@ -115,10 +115,10 @@ pkgs.mkShell rec {
       echo "installed_packages_section: ''${installed_packages_section}"
 
       packages=(
-        "build-tools;33.0.1" "cmdline-tools;8.0" \
-        "emulator" "patcher;v4" "platform-tools" "platforms;android-33" \
-        "system-images;android-33;google_apis;arm64-v8a" \
-        "system-images;android-33;google_apis;x86_64"
+        "build-tools;34.0.0" "cmdline-tools;11.0" \
+        "emulator" "patcher;v4" "platform-tools" "platforms;android-34" \
+        "system-images;android-34;google_apis;arm64-v8a" \
+        "system-images;android-34;google_apis;x86_64"
       )
 
       for package in "''${packages[@]}"; do
@@ -135,7 +135,7 @@ pkgs.mkShell rec {
       nativeBuildInputs = [ androidSdk androidEmulator jdk ];
     } ''
       avdmanager delete avd -n testAVD || true
-      echo "" | avdmanager create avd --force --name testAVD --package 'system-images;android-33;google_apis;x86_64'
+      echo "" | avdmanager create avd --force --name testAVD --package 'system-images;android-34;google_apis;x86_64'
       result=$(avdmanager list avd)
 
       if [[ ! $result =~ "Name: testAVD" ]]; then
diff --git a/pkgs/development/mobile/androidenv/examples/shell.nix b/pkgs/development/mobile/androidenv/examples/shell.nix
index 775f69bce4c51..67e6421dbba3e 100644
--- a/pkgs/development/mobile/androidenv/examples/shell.nix
+++ b/pkgs/development/mobile/androidenv/examples/shell.nix
@@ -25,18 +25,18 @@ let
   # versions may be used in multiple places in this Nix expression.
   android = {
     versions = {
-      cmdLineToolsVersion = "8.0";
-      platformTools = "33.0.3";
-      buildTools = "30.0.3";
+      cmdLineToolsVersion = "11.0";
+      platformTools = "34.0.4";
+      buildTools = "34.0.0";
       ndk = [
         "25.1.8937393" # LTS NDK
-        "24.0.8215888"
+        "26.0.10404224-rc1"
       ];
-      cmake = "3.22.1";
-      emulator = "31.3.14";
+      cmake = "3.6.4111459";
+      emulator = "33.1.17";
     };
 
-    platforms = ["23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33"];
+    platforms = [ "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" ];
     abis = ["armeabi-v7a" "arm64-v8a"];
     extras = ["extras;google;gcm"];
   };
@@ -165,19 +165,20 @@ pkgs.mkShell rec {
       installed_packages_section=$(echo "''${output%%Available Packages*}" | awk 'NR>4 {print $1}')
 
       packages=(
-        "build-tools;30.0.3" "platform-tools" \
+        "build-tools;34.0.0" "platform-tools" \
         "platforms;android-23" "platforms;android-24" "platforms;android-25" "platforms;android-26" \
         "platforms;android-27" "platforms;android-28" "platforms;android-29" "platforms;android-30" \
-        "platforms;android-31" "platforms;android-32" "platforms;android-33" \
+        "platforms;android-31" "platforms;android-32" "platforms;android-33" "platforms;android-34" \
         "sources;android-23" "sources;android-24" "sources;android-25" "sources;android-26" \
         "sources;android-27" "sources;android-28" "sources;android-29" "sources;android-30" \
-        "sources;android-31" "sources;android-32" "sources;android-33" \
+        "sources;android-31" "sources;android-32" "sources;android-33" "sources;android-34" \
         "system-images;android-28;google_apis_playstore;arm64-v8a" \
         "system-images;android-29;google_apis_playstore;arm64-v8a" \
         "system-images;android-30;google_apis_playstore;arm64-v8a" \
         "system-images;android-31;google_apis_playstore;arm64-v8a" \
         "system-images;android-32;google_apis_playstore;arm64-v8a" \
-        "system-images;android-33;google_apis_playstore;arm64-v8a"
+        "system-images;android-33;google_apis_playstore;arm64-v8a" \
+        "system-images;android-34;google_apis_playstore;arm64-v8a"
       )
 
       for package in "''${packages[@]}"; do
diff --git a/pkgs/development/mobile/androidenv/mkrepo.rb b/pkgs/development/mobile/androidenv/mkrepo.rb
index fa813301558fc..4263935177e7e 100644
--- a/pkgs/development/mobile/androidenv/mkrepo.rb
+++ b/pkgs/development/mobile/androidenv/mkrepo.rb
@@ -177,8 +177,8 @@ def empty? value
   !value || value.empty?
 end
 
-# Fixes up returned hashes by sorting keys.
-# Will also convert archives (e.g. {'linux' => {'sha1' => ...}, 'macosx' => ...} to
+# Fixes up returned hashes by converting archives like
+#  (e.g. {'linux' => {'sha1' => ...}, 'macosx' => ...} to
 # [{'os' => 'linux', 'sha1' => ...}, {'os' => 'macosx', ...}, ...].
 def fixup value
   Hash[value.map do |k, v|
@@ -191,7 +191,35 @@ def fixup value
     else
       [k, v]
     end
-  end.sort {|(k1, v1), (k2, v2)| k1 <=> k2 }]
+  end]
+end
+
+# Today since Unix Epoch, January 1, 1970.
+def today
+  Time.now.utc.to_i / 24 / 60 / 60
+end
+
+# The expiration strategy. Expire if the last available day was before the `oldest_valid_day`.
+def expire_records record, oldest_valid_day
+  if record.is_a?(Hash)
+    if record.has_key?('last-available-day') &&
+      record['last-available-day'] < oldest_valid_day
+      return nil
+    end
+    update = {}
+    # This should only happen in the first run of this scrip after adding the `expire_record` function.
+    if record.has_key?('displayName') &&
+      !record.has_key?('last-available-day')
+      update['last-available-day'] = today
+    end
+    record.each {|key, value|
+      v = expire_records value, oldest_valid_day
+      update[key] = v if v
+    }
+    update
+  else
+    record
+  end
 end
 
 # Normalize the specified license text.
@@ -253,6 +281,7 @@ def parse_package_xml doc
     target['dependencies'] ||= dependencies if dependencies
     target['archives'] ||= {}
     merge target['archives'], archives
+    target['last-available-day'] = today
   end
 
   [licenses, packages]
@@ -294,6 +323,7 @@ def parse_image_xml doc
     target['dependencies'] ||= dependencies if dependencies
     target['archives'] ||= {}
     merge target['archives'], archives
+    target['last-available-day'] = today
   end
 
   [licenses, images]
@@ -351,19 +381,36 @@ def parse_addon_xml doc
     target['dependencies'] ||= dependencies if dependencies
     target['archives'] ||= {}
     merge target['archives'], archives
+    target['last-available-day'] = today
   end
 
   [licenses, addons, extras]
 end
 
+# Make the clean diff by always sorting the result before puting it in the stdout.
+def sort_recursively value
+  if value.is_a?(Hash)
+    Hash[
+      value.map do |k, v|
+        [k, sort_recursively(v)]
+      end.sort_by {|(k, v)| k }
+    ]
+  elsif value.is_a?(Array)
+    value.map do |v| sort_recursively(v) end
+  else
+    value
+  end
+end
+
 def merge_recursively a, b
   a.merge!(b) {|key, a_item, b_item|
     if a_item.is_a?(Hash) && b_item.is_a?(Hash)
       merge_recursively(a_item, b_item)
-    else
-      a[key] = b_item
+    elsif b_item != nil
+      b_item
     end
   }
+  a
 end
 
 def merge dest, src
@@ -376,31 +423,55 @@ opts = Slop.parse do |o|
   o.array '-a', '--addons', 'addon repo XMLs to parse'
 end
 
-result = {
-  licenses: {},
-  packages: {},
-  images: {},
-  addons: {},
-  extras: {}
-}
+result = {}
+result['licenses'] = {}
+result['packages'] = {}
+result['images'] = {}
+result['addons'] = {}
+result['extras'] = {}
 
 opts[:packages].each do |filename|
   licenses, packages = parse_package_xml(Nokogiri::XML(File.open(filename)) { |conf| conf.noblanks })
-  merge result[:licenses], licenses
-  merge result[:packages], packages
+  merge result['licenses'], licenses
+  merge result['packages'], packages
 end
 
 opts[:images].each do |filename|
   licenses, images = parse_image_xml(Nokogiri::XML(File.open(filename)) { |conf| conf.noblanks })
-  merge result[:licenses], licenses
-  merge result[:images], images
+  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)) { |conf| conf.noblanks })
-  merge result[:licenses], licenses
-  merge result[:addons], addons
-  merge result[:extras], extras
+  merge result['licenses'], licenses
+  merge result['addons'], addons
+  merge result['extras'], extras
+end
+
+# As we keep the old packages in the repo JSON file, we should have
+# a strategy to remove them at some point!
+# So with this variable we claim it's okay to remove them from the
+# JSON after two years that they are not available.
+two_years_ago = today - 2 * 365
+
+input = {}
+begin
+  input_json = (STDIN.tty?) ? "{}" : $stdin.read
+  if input_json != nil && !input_json.empty?
+    input =  expire_records(JSON.parse(input_json), two_years_ago)
+  end
+rescue JSON::ParserError => e
+  $stderr.write(e.message)
+  return
 end
 
-puts JSON.pretty_generate(fixup(result))
+
+fixup_result = fixup(result)
+
+# Regular installation of Android SDK would keep the previously installed packages even if they are not
+# in the uptodate XML files, so here we try to support this logic by keeping un-available packages,
+# therefore the old packages will work as long as the links are working on the Google servers.
+output = merge input, fixup_result
+
+puts JSON.pretty_generate(sort_recursively(output))
diff --git a/pkgs/development/mobile/androidenv/mkrepo.sh b/pkgs/development/mobile/androidenv/mkrepo.sh
index fd7e22457f020..f1b6ec73798cd 100755
--- a/pkgs/development/mobile/androidenv/mkrepo.sh
+++ b/pkgs/development/mobile/androidenv/mkrepo.sh
@@ -1,12 +1,12 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p "ruby.withPackages (pkgs: with pkgs; [ slop nokogiri ])"
+#!nix-shell -i bash -p "ruby.withPackages (pkgs: with pkgs; [ slop nokogiri moreutils ])"
 
 set -e
 
 pushd "$(dirname "$0")" &>/dev/null || exit 1
 
 echo "Writing repo.json" >&2
-ruby mkrepo.rb \
+cat ./repo.json | ruby mkrepo.rb \
     --packages ./xml/repository2-1.xml \
     --images ./xml/android-sys-img2-1.xml \
     --images ./xml/android-tv-sys-img2-1.xml \
@@ -14,6 +14,7 @@ ruby mkrepo.rb \
     --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
+    --addons ./xml/addon2-1.xml \
+         | sponge repo.json
 
 popd &>/dev/null
diff --git a/pkgs/development/mobile/androidenv/platform-tools.nix b/pkgs/development/mobile/androidenv/platform-tools.nix
index eed3b896bfca3..4ed98e7a7d7ff 100644
--- a/pkgs/development/mobile/androidenv/platform-tools.nix
+++ b/pkgs/development/mobile/androidenv/platform-tools.nix
@@ -3,7 +3,7 @@
 deployAndroidPackage {
   inherit package os;
   nativeBuildInputs = lib.optionals (os == "linux") [ autoPatchelfHook ];
-  buildInputs = lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 ];
+  buildInputs = lib.optionals (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc.lib pkgs.zlib pkgs.ncurses5 ];
 
   patchInstructions = lib.optionalString (os == "linux") ''
     addAutoPatchelfSearchPath $packageBaseDir/lib64
diff --git a/pkgs/development/mobile/androidenv/repo.json b/pkgs/development/mobile/androidenv/repo.json
index 0a4a733a49e0f..ecb649bba9724 100644
--- a/pkgs/development/mobile/androidenv/repo.json
+++ b/pkgs/development/mobile/androidenv/repo.json
@@ -11,6 +11,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-10",
@@ -63,6 +64,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-11",
@@ -108,6 +110,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-12",
@@ -158,6 +161,7 @@
           }
         ],
         "displayName": "Google TV Addon",
+        "last-available-day": 19579,
         "license": "android-googletv-license",
         "name": "google_tv_addon",
         "path": "add-ons/addon-google_tv_addon-google-12",
@@ -194,6 +198,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-13",
@@ -244,6 +249,7 @@
           }
         ],
         "displayName": "Google TV Addon",
+        "last-available-day": 19579,
         "license": "android-googletv-license",
         "name": "google_tv_addon",
         "path": "add-ons/addon-google_tv_addon-google-13",
@@ -280,6 +286,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-14",
@@ -332,6 +339,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-15",
@@ -391,6 +399,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-16",
@@ -450,6 +459,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-17",
@@ -509,6 +519,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-18",
@@ -568,6 +579,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-19",
@@ -627,6 +639,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-21",
@@ -686,6 +699,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-22",
@@ -745,6 +759,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-23",
@@ -804,6 +819,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-24",
@@ -863,6 +879,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-25",
@@ -922,6 +939,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-3",
@@ -967,6 +985,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-4",
@@ -1012,6 +1031,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-5",
@@ -1057,6 +1077,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-6",
@@ -1102,6 +1123,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-7",
@@ -1147,6 +1169,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-8",
@@ -1192,6 +1215,7 @@
           }
         ],
         "displayName": "Google APIs",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "google_apis",
         "path": "add-ons/addon-google_apis-google-9",
@@ -1238,6 +1262,7 @@
         }
       ],
       "displayName": "Android Support Repository",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-android-m2repository",
       "path": "extras/android/m2repository",
@@ -1261,12 +1286,13 @@
       "archives": [
         {
           "os": "windows",
-          "sha1": "7be9c46e3bbf4ab107fa614e426f925584ce310b",
-          "size": 166975,
-          "url": "https://dl.google.com/android/repository/gvm-windows_v1_8_0.zip"
+          "sha1": "1a4ef9875cb0adfe5500632ad7140027cfb080d9",
+          "size": 168741,
+          "url": "https://dl.google.com/android/repository/gvm-windows_v2_0_0.zip"
         }
       ],
-      "displayName": "Android Emulator Hypervisor Driver for AMD Processors (installer)",
+      "displayName": "Android Emulator Hypervisor Driver for AMD Processors (installer: Deprecated)",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-Android_Emulator_Hypervisor_Driver",
       "path": "extras/google/Android_Emulator_Hypervisor_Driver",
@@ -1296,6 +1322,7 @@
         }
       ],
       "displayName": "Google AdMob Ads SDK",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-admob_ads_sdk",
       "path": "extras/google/admob_ads_sdk",
@@ -1323,6 +1350,7 @@
         }
       ],
       "displayName": "Google Analytics App Tracking SDK",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-analytics_sdk_v2",
       "path": "extras/google/analytics_sdk_v2",
@@ -1350,6 +1378,7 @@
         }
       ],
       "displayName": "Google Cloud Messaging for Android Library",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-gcm",
       "path": "extras/google/gcm",
@@ -1384,6 +1413,7 @@
         }
       },
       "displayName": "Google Play services",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-google_play_services",
       "path": "extras/google/google_play_services",
@@ -1411,6 +1441,7 @@
         }
       ],
       "displayName": "Google Play services for Froyo",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-google_play_services_froyo",
       "path": "extras/google/google_play_services_froyo",
@@ -1438,6 +1469,7 @@
         }
       ],
       "displayName": "Google Play Instant Development SDK",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-instantapps",
       "path": "extras/google/instantapps",
@@ -1474,6 +1506,7 @@
         }
       },
       "displayName": "Google Repository",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-m2repository",
       "path": "extras/google/m2repository",
@@ -1501,6 +1534,7 @@
         }
       ],
       "displayName": "Google Play APK Expansion library",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-market_apk_expansion",
       "path": "extras/google/market_apk_expansion",
@@ -1528,6 +1562,7 @@
         }
       ],
       "displayName": "Google Play Licensing Library",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-market_licensing",
       "path": "extras/google/market_licensing",
@@ -1556,6 +1591,7 @@
         }
       ],
       "displayName": "Android Auto API Simulators",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-simulators",
       "path": "extras/google/simulators",
@@ -1583,6 +1619,7 @@
         }
       ],
       "displayName": "Google USB Driver",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-usb_driver",
       "path": "extras/google/usb_driver",
@@ -1610,6 +1647,7 @@
         }
       ],
       "displayName": "Google Web Driver",
+      "last-available-day": 19579,
       "license": "android-sdk-license",
       "name": "extras-google-webdriver",
       "path": "extras/google/webdriver",
@@ -1637,6 +1675,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0",
+      "last-available-day": 19579,
       "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",
@@ -1664,6 +1703,7 @@
         }
       ],
       "displayName": "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4",
+      "last-available-day": 19579,
       "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",
@@ -1691,6 +1731,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0-alpha8",
+      "last-available-day": 19579,
       "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",
@@ -1718,6 +1759,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0-beta1",
+      "last-available-day": 19579,
       "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",
@@ -1745,6 +1787,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0-beta2",
+      "last-available-day": 19579,
       "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",
@@ -1772,6 +1815,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0-beta3",
+      "last-available-day": 19579,
       "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",
@@ -1799,6 +1843,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0-beta4",
+      "last-available-day": 19579,
       "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",
@@ -1826,6 +1871,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.0-beta5",
+      "last-available-day": 19579,
       "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",
@@ -1853,6 +1899,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.1",
+      "last-available-day": 19579,
       "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",
@@ -1880,6 +1927,7 @@
         }
       ],
       "displayName": "Solver for ConstraintLayout 1.0.2",
+      "last-available-day": 19579,
       "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",
@@ -1914,6 +1962,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0",
+      "last-available-day": 19579,
       "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",
@@ -1948,6 +1997,7 @@
         }
       },
       "displayName": "com.android.support.constraint:constraint-layout:1.0.0-alpha4",
+      "last-available-day": 19579,
       "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",
@@ -1982,6 +2032,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0-alpha8",
+      "last-available-day": 19579,
       "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",
@@ -2016,6 +2067,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0-beta1",
+      "last-available-day": 19579,
       "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",
@@ -2050,6 +2102,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0-beta2",
+      "last-available-day": 19579,
       "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",
@@ -2084,6 +2137,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0-beta3",
+      "last-available-day": 19579,
       "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",
@@ -2118,6 +2172,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0-beta4",
+      "last-available-day": 19579,
       "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",
@@ -2152,6 +2207,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.0-beta5",
+      "last-available-day": 19579,
       "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",
@@ -2186,6 +2242,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.1",
+      "last-available-day": 19579,
       "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",
@@ -2220,6 +2277,7 @@
         }
       },
       "displayName": "ConstraintLayout for Android 1.0.2",
+      "last-available-day": 19579,
       "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",
@@ -2258,6 +2316,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-10-default-armeabi-v7a",
           "path": "system-images/android-10/default/armeabi-v7a",
@@ -2295,6 +2354,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-10-default-x86",
           "path": "system-images/android-10/default/x86",
@@ -2334,6 +2394,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-10-google_apis-armeabi-v7a",
           "path": "system-images/android-10/google_apis/armeabi-v7a",
@@ -2374,6 +2435,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-10-google_apis-x86",
           "path": "system-images/android-10/google_apis/x86",
@@ -2411,6 +2473,7 @@
             }
           ],
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-14-default-armeabi-v7a",
           "path": "system-images/android-14/default/armeabi-v7a",
@@ -2452,6 +2515,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-15-default-armeabi-v7a",
           "path": "system-images/android-15/default/armeabi-v7a",
@@ -2489,6 +2553,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-15-default-x86",
           "path": "system-images/android-15/default/x86",
@@ -2528,6 +2593,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-15-google_apis-armeabi-v7a",
           "path": "system-images/android-15/google_apis/armeabi-v7a",
@@ -2568,6 +2634,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-15-google_apis-x86",
           "path": "system-images/android-15/google_apis/x86",
@@ -2612,6 +2679,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-16-default-armeabi-v7a",
           "path": "system-images/android-16/default/armeabi-v7a",
@@ -2642,6 +2710,7 @@
             }
           ],
           "displayName": "MIPS System Image",
+          "last-available-day": 19579,
           "license": "mips-android-sysimage-license",
           "name": "system-image-16-default-mips",
           "path": "system-images/android-16/default/mips",
@@ -2679,6 +2748,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-16-default-x86",
           "path": "system-images/android-16/default/x86",
@@ -2718,6 +2788,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-16-google_apis-armeabi-v7a",
           "path": "system-images/android-16/google_apis/armeabi-v7a",
@@ -2758,6 +2829,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-16-google_apis-x86",
           "path": "system-images/android-16/google_apis/x86",
@@ -2802,6 +2874,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-17-default-armeabi-v7a",
           "path": "system-images/android-17/default/armeabi-v7a",
@@ -2832,6 +2905,7 @@
             }
           ],
           "displayName": "MIPS System Image",
+          "last-available-day": 19579,
           "license": "mips-android-sysimage-license",
           "name": "system-image-17-default-mips",
           "path": "system-images/android-17/default/mips",
@@ -2869,6 +2943,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-17-default-x86",
           "path": "system-images/android-17/default/x86",
@@ -2911,6 +2986,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-17-google_apis-armeabi-v7a",
           "path": "system-images/android-17/google_apis/armeabi-v7a",
@@ -2951,6 +3027,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-17-google_apis-x86",
           "path": "system-images/android-17/google_apis/x86",
@@ -2995,6 +3072,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-18-default-armeabi-v7a",
           "path": "system-images/android-18/default/armeabi-v7a",
@@ -3032,6 +3110,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-18-default-x86",
           "path": "system-images/android-18/default/x86",
@@ -3071,6 +3150,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-18-google_apis-armeabi-v7a",
           "path": "system-images/android-18/google_apis/armeabi-v7a",
@@ -3111,6 +3191,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-18-google_apis-x86",
           "path": "system-images/android-18/google_apis/x86",
@@ -3155,6 +3236,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-19-default-armeabi-v7a",
           "path": "system-images/android-19/default/armeabi-v7a",
@@ -3192,6 +3274,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-19-default-x86",
           "path": "system-images/android-19/default/x86",
@@ -3231,6 +3314,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-19-google_apis-armeabi-v7a",
           "path": "system-images/android-19/google_apis/armeabi-v7a",
@@ -3271,6 +3355,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-19-google_apis-x86",
           "path": "system-images/android-19/google_apis/x86",
@@ -3308,6 +3393,7 @@
             }
           ],
           "displayName": "Android TV ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-android-tv-armeabi-v7a",
           "path": "system-images/android-21/android-tv/armeabi-v7a",
@@ -3337,6 +3423,7 @@
             }
           ],
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-android-tv-x86",
           "path": "system-images/android-21/android-tv/x86",
@@ -3368,6 +3455,7 @@
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-default-arm64-v8a",
           "path": "system-images/android-21/default/arm64-v8a",
@@ -3405,6 +3493,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-default-armeabi-v7a",
           "path": "system-images/android-21/default/armeabi-v7a",
@@ -3442,6 +3531,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-default-x86",
           "path": "system-images/android-21/default/x86",
@@ -3478,7 +3568,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-default-x86_64",
           "path": "system-images/android-21/default/x86_64",
@@ -3511,6 +3602,7 @@
             }
           ],
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-google_apis-arm64-v8a",
           "path": "system-images/android-21/google_apis/arm64-v8a",
@@ -3551,6 +3643,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-google_apis-armeabi-v7a",
           "path": "system-images/android-21/google_apis/armeabi-v7a",
@@ -3591,6 +3684,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-google_apis-x86",
           "path": "system-images/android-21/google_apis/x86",
@@ -3630,7 +3724,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-21-google_apis-x86_64",
           "path": "system-images/android-21/google_apis/x86_64",
@@ -3668,6 +3763,7 @@
             }
           ],
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-android-tv-x86",
           "path": "system-images/android-22/android-tv/x86",
@@ -3699,6 +3795,7 @@
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-default-arm64-v8a",
           "path": "system-images/android-22/default/arm64-v8a",
@@ -3736,6 +3833,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-default-armeabi-v7a",
           "path": "system-images/android-22/default/armeabi-v7a",
@@ -3773,6 +3871,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-default-x86",
           "path": "system-images/android-22/default/x86",
@@ -3809,7 +3908,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-default-x86_64",
           "path": "system-images/android-22/default/x86_64",
@@ -3842,6 +3942,7 @@
             }
           ],
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-google_apis-arm64-v8a",
           "path": "system-images/android-22/google_apis/arm64-v8a",
@@ -3882,6 +3983,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-google_apis-armeabi-v7a",
           "path": "system-images/android-22/google_apis/armeabi-v7a",
@@ -3922,6 +4024,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-google_apis-x86",
           "path": "system-images/android-22/google_apis/x86",
@@ -3961,7 +4064,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-22-google_apis-x86_64",
           "path": "system-images/android-22/google_apis/x86_64",
@@ -3999,6 +4103,7 @@
             }
           ],
           "displayName": "Android TV ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-android-tv-armeabi-v7a",
           "path": "system-images/android-23/android-tv/armeabi-v7a",
@@ -4035,6 +4140,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-android-tv-x86",
           "path": "system-images/android-23/android-tv/x86",
@@ -4066,6 +4172,7 @@
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-default-arm64-v8a",
           "path": "system-images/android-23/default/arm64-v8a",
@@ -4103,6 +4210,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-default-armeabi-v7a",
           "path": "system-images/android-23/default/armeabi-v7a",
@@ -4140,6 +4248,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-default-x86",
           "path": "system-images/android-23/default/x86",
@@ -4176,7 +4285,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-default-x86_64",
           "path": "system-images/android-23/default/x86_64",
@@ -4209,6 +4319,7 @@
             }
           ],
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-google_apis-arm64-v8a",
           "path": "system-images/android-23/google_apis/arm64-v8a",
@@ -4249,6 +4360,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-google_apis-armeabi-v7a",
           "path": "system-images/android-23/google_apis/armeabi-v7a",
@@ -4289,6 +4401,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-google_apis-x86",
           "path": "system-images/android-23/google_apis/x86",
@@ -4328,7 +4441,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-23-google_apis-x86_64",
           "path": "system-images/android-23/google_apis/x86_64",
@@ -4373,6 +4487,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-android-tv-x86",
           "path": "system-images/android-24/android-tv/x86",
@@ -4404,6 +4519,7 @@
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-default-arm64-v8a",
           "path": "system-images/android-24/default/arm64-v8a",
@@ -4441,6 +4557,7 @@
             }
           },
           "displayName": "ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-default-armeabi-v7a",
           "path": "system-images/android-24/default/armeabi-v7a",
@@ -4478,6 +4595,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-default-x86",
           "path": "system-images/android-24/default/x86",
@@ -4514,7 +4632,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-default-x86_64",
           "path": "system-images/android-24/default/x86_64",
@@ -4554,6 +4673,7 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-google_apis-arm64-v8a",
           "path": "system-images/android-24/google_apis/arm64-v8a",
@@ -4594,6 +4714,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-google_apis-x86",
           "path": "system-images/android-24/google_apis/x86",
@@ -4633,7 +4754,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-google_apis-x86_64",
           "path": "system-images/android-24/google_apis/x86_64",
@@ -4676,6 +4798,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-24-google_apis_playstore-x86",
           "path": "system-images/android-24/google_apis_playstore/x86",
@@ -4720,6 +4843,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-android-tv-x86",
           "path": "system-images/android-25/android-tv/x86",
@@ -4758,6 +4882,7 @@
             }
           },
           "displayName": "Android Wear ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-android-wear-armeabi-v7a",
           "path": "system-images/android-25/android-wear/armeabi-v7a",
@@ -4794,6 +4919,7 @@
             }
           },
           "displayName": "Android Wear Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-android-wear-x86",
           "path": "system-images/android-25/android-wear/x86",
@@ -4825,6 +4951,7 @@
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-default-arm64-v8a",
           "path": "system-images/android-25/default/arm64-v8a",
@@ -4862,6 +4989,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-default-x86",
           "path": "system-images/android-25/default/x86",
@@ -4898,7 +5026,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-default-x86_64",
           "path": "system-images/android-25/default/x86_64",
@@ -4931,6 +5060,7 @@
             }
           ],
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-google_apis-arm64-v8a",
           "path": "system-images/android-25/google_apis/arm64-v8a",
@@ -4971,6 +5101,7 @@
             }
           },
           "displayName": "Google APIs ARM EABI v7a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-google_apis-armeabi-v7a",
           "path": "system-images/android-25/google_apis/armeabi-v7a",
@@ -5011,6 +5142,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-google_apis-x86",
           "path": "system-images/android-25/google_apis/x86",
@@ -5050,7 +5182,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-google_apis-x86_64",
           "path": "system-images/android-25/google_apis/x86_64",
@@ -5093,6 +5226,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-25-google_apis_playstore-x86",
           "path": "system-images/android-25/google_apis_playstore/x86",
@@ -5147,6 +5281,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-26-android-tv-x86",
           "path": "system-images/android-26/android-tv/x86",
@@ -5185,6 +5320,7 @@
             }
           },
           "displayName": "Android Wear Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-android-wear-x86",
           "path": "system-images/android-26/android-wear/x86",
@@ -5210,9 +5346,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "c3199baf49790fc65f90f7ce734435d5778f6a30",
-              "size": 328910124,
-              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-26_r01.zip"
+              "sha1": "12353141d08dd302fbebc03872f0e1ca7357c55f",
+              "size": 330014927,
+              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-26_r02.zip"
             }
           ],
           "dependencies": {
@@ -5228,12 +5364,13 @@
             }
           },
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-default-arm64-v8a",
           "path": "system-images/android-26/default/arm64-v8a",
           "revision": "26-default-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:2": "arm64-v8a",
@@ -5264,6 +5401,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-default-x86",
           "path": "system-images/android-26/default/x86",
@@ -5299,7 +5437,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-default-x86_64",
           "path": "system-images/android-26/default/x86_64",
@@ -5325,9 +5464,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "75fe6f36cf0854270876543641da53887961a63b",
-              "size": 732225522,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-26_r01.zip"
+              "sha1": "307bb9e03b215ebcab5d2a9edd47839009c57c8f",
+              "size": 733341370,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-26_r02.zip"
             }
           ],
           "dependencies": {
@@ -5343,12 +5482,13 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-google_apis-arm64-v8a",
           "path": "system-images/android-26/google_apis/arm64-v8a",
           "revision": "26-google_apis-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:3": "arm64-v8a",
@@ -5393,6 +5533,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-google_apis-x86",
           "path": "system-images/android-26/google_apis/x86",
@@ -5442,7 +5583,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-26-google_apis-x86_64",
           "path": "system-images/android-26/google_apis/x86_64",
@@ -5495,6 +5637,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-26-google_apis_playstore-x86",
           "path": "system-images/android-26/google_apis_playstore/x86",
@@ -5539,6 +5682,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-27-android-tv-x86",
           "path": "system-images/android-27/android-tv/x86",
@@ -5564,9 +5708,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "cb01199edae33ce375c6d8e08aea08911ff0d583",
-              "size": 331796092,
-              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-27_r01.zip"
+              "sha1": "e014473ac510cc9d8e9b412826332923277fa827",
+              "size": 332173536,
+              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-27_r02.zip"
             }
           ],
           "dependencies": {
@@ -5582,12 +5726,13 @@
             }
           },
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-27-default-arm64-v8a",
           "path": "system-images/android-27/default/arm64-v8a",
           "revision": "27-default-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:2": "arm64-v8a",
@@ -5618,6 +5763,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-27-default-x86",
           "path": "system-images/android-27/default/x86",
@@ -5653,7 +5799,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-27-default-x86_64",
           "path": "system-images/android-27/default/x86_64",
@@ -5679,9 +5826,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "a7ae177097205090fee9801349575cea0dd9f606",
-              "size": 730343967,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-27_r01.zip"
+              "sha1": "e4c06bbee837cd8266774fc4ddd1c70338ab6848",
+              "size": 730720117,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-27_r02.zip"
             }
           ],
           "dependencies": {
@@ -5697,12 +5844,13 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-27-google_apis-arm64-v8a",
           "path": "system-images/android-27/google_apis/arm64-v8a",
           "revision": "27-google_apis-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:3": "arm64-v8a",
@@ -5747,6 +5895,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-27-google_apis-x86",
           "path": "system-images/android-27/google_apis/x86",
@@ -5799,6 +5948,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-27-google_apis_playstore-x86",
           "path": "system-images/android-27/google_apis_playstore/x86",
@@ -5843,6 +5993,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-28-android-tv-x86",
           "path": "system-images/android-28/android-tv/x86",
@@ -5881,6 +6032,7 @@
             }
           },
           "displayName": "Wear OS Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-28-android-wear-x86",
           "path": "system-images/android-28/android-wear/x86",
@@ -5906,9 +6058,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "4de0491612ca12097be7deb76af835ebabadefca",
-              "size": 425671679,
-              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-28_r01.zip"
+              "sha1": "e209114dd0dfc2f4e0d328f5fd7367fec39ee1bd",
+              "size": 426760297,
+              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-28_r02.zip"
             }
           ],
           "dependencies": {
@@ -5924,12 +6076,13 @@
             }
           },
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-28-default-arm64-v8a",
           "path": "system-images/android-28/default/arm64-v8a",
           "revision": "28-default-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:2": "arm64-v8a",
@@ -5953,6 +6106,7 @@
             }
           ],
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-28-default-x86",
           "path": "system-images/android-28/default/x86",
@@ -5981,7 +6135,8 @@
               "url": "https://dl.google.com/android/repository/sys-img/android/x86_64-28_r04.zip"
             }
           ],
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-28-default-x86_64",
           "path": "system-images/android-28/default/x86_64",
@@ -6007,9 +6162,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "3360092d11284a9f2d7146847932a426c438b372",
-              "size": 856031756,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-28_r01.zip"
+              "sha1": "28f59164bdb4cb18f1a1060f1880450e06cf4d10",
+              "size": 857120029,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-28_r02.zip"
             }
           ],
           "dependencies": {
@@ -6025,12 +6180,13 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
-          "license": "android-sdk-arm-dbt-license",
+          "last-available-day": 19579,
+          "license": "android-sdk-license",
           "name": "system-image-28-google_apis-arm64-v8a",
           "path": "system-images/android-28/google_apis/arm64-v8a",
           "revision": "28-google_apis-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:3": "arm64-v8a",
@@ -6075,6 +6231,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-28-google_apis-x86",
           "path": "system-images/android-28/google_apis/x86",
@@ -6124,7 +6281,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-28-google_apis-x86_64",
           "path": "system-images/android-28/google_apis/x86_64",
@@ -6154,9 +6312,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "8901ad796ada9d40272c429427ba628de6919281",
-              "size": 835797733,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-28_r01.zip"
+              "sha1": "205a4720befd41be99fcdfb2550fa1680e9a2e18",
+              "size": 836861962,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-28_r02.zip"
             }
           ],
           "dependencies": {
@@ -6172,12 +6330,13 @@
             }
           },
           "displayName": "Google ARM64-V8a Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-28-google_apis_playstore-arm64-v8a",
           "path": "system-images/android-28/google_apis_playstore/arm64-v8a",
           "revision": "28-google_apis_playstore-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:3": "arm64-v8a",
@@ -6222,6 +6381,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-28-google_apis_playstore-x86",
           "path": "system-images/android-28/google_apis_playstore/x86",
@@ -6271,7 +6431,8 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-28-google_apis_playstore-x86_64",
           "path": "system-images/android-28/google_apis_playstore/x86_64",
@@ -6326,6 +6487,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-29-android-tv-x86",
           "path": "system-images/android-29/android-tv/x86",
@@ -6357,6 +6519,7 @@
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-default-arm64-v8a",
           "path": "system-images/android-29/default/arm64-v8a",
@@ -6410,6 +6573,7 @@
             }
           },
           "displayName": "Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-default-x86",
           "path": "system-images/android-29/default/x86",
@@ -6462,7 +6626,8 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-default-x86_64",
           "path": "system-images/android-29/default/x86_64",
@@ -6506,6 +6671,7 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-29-google_apis-arm64-v8a",
           "path": "system-images/android-29/google_apis/arm64-v8a",
@@ -6551,6 +6717,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-google_apis-x86",
           "path": "system-images/android-29/google_apis/x86",
@@ -6595,7 +6762,8 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-google_apis-x86_64",
           "path": "system-images/android-29/google_apis/x86_64",
@@ -6649,6 +6817,7 @@
             }
           },
           "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-29-google_apis_playstore-arm64-v8a",
           "path": "system-images/android-29/google_apis_playstore/arm64-v8a",
@@ -6711,6 +6880,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-google_apis_playstore-x86",
           "path": "system-images/android-29/google_apis_playstore/x86",
@@ -6772,7 +6942,8 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-29-google_apis_playstore-x86_64",
           "path": "system-images/android-29/google_apis_playstore/x86_64",
@@ -6827,6 +6998,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-30-android-tv-x86",
           "path": "system-images/android-30/android-tv/x86",
@@ -6865,6 +7037,7 @@
             }
           },
           "displayName": "Wear OS 3 ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-30-android-wear-arm64-v8a",
           "path": "system-images/android-30/android-wear/arm64-v8a",
@@ -6901,6 +7074,7 @@
             }
           },
           "displayName": "Wear OS 3 Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-30-android-wear-x86",
           "path": "system-images/android-30/android-wear/x86",
@@ -6926,18 +7100,19 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "2462af138023fbbd1114421818890884d4ebceab",
-              "size": 548363604,
-              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-30_r01.zip"
+              "sha1": "e96298145a5e0bfd6da4816f51b06c520d8dba72",
+              "size": 548363615,
+              "url": "https://dl.google.com/android/repository/sys-img/android/arm64-v8a-30_r02.zip"
             }
           ],
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-30-default-arm64-v8a",
           "path": "system-images/android-30/default/arm64-v8a",
           "revision": "30-default-arm64-v8a",
           "revision-details": {
-            "major:0": "1"
+            "major:0": "2"
           },
           "type-details": {
             "abi:2": "arm64-v8a",
@@ -6955,9 +7130,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "e08119b65d2c188ef69f127028eb4c8cc632cd8f",
-              "size": 676379913,
-              "url": "https://dl.google.com/android/repository/sys-img/android/x86_64-30_r10.zip"
+              "sha1": "5e4de3946d46f88856c35efcc4d797b381456347",
+              "size": 676379777,
+              "url": "https://dl.google.com/android/repository/sys-img/android/x86_64-30_r11.zip"
             }
           ],
           "dependencies": {
@@ -6972,13 +7147,14 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-30-default-x86_64",
           "path": "system-images/android-30/default/x86_64",
           "revision": "30-default-x86_64",
           "revision-details": {
-            "major:0": "10"
+            "major:0": "11"
           },
           "type-details": {
             "abi:2": "x86_64",
@@ -6998,9 +7174,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "14393e29f2b1021d4bfece3a1cb29af745e95dac",
-              "size": 1244095258,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-30_r11.zip"
+              "sha1": "348aa8836d855745dd89295356330ad0b5622cb3",
+              "size": 1244297361,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-30_r12.zip"
             }
           ],
           "dependencies": {
@@ -7016,12 +7192,13 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
-          "license": "android-sdk-arm-dbt-license",
+          "last-available-day": 19579,
+          "license": "android-sdk-license",
           "name": "system-image-30-google_apis-arm64-v8a",
           "path": "system-images/android-30/google_apis/arm64-v8a",
           "revision": "30-google_apis-arm64-v8a",
           "revision-details": {
-            "major:0": "11"
+            "major:0": "12"
           },
           "type-details": {
             "abi:3": "arm64-v8a",
@@ -7066,6 +7243,7 @@
             }
           },
           "displayName": "Google APIs Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-30-google_apis-x86",
           "path": "system-images/android-30/google_apis/x86",
@@ -7093,9 +7271,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "8ec579d5fe31804dd80132f1678655bfc015609b",
-              "size": 1438274971,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-30_r11.zip"
+              "sha1": "efb07cd6268d93d7e2be88883bc9249a00b378b3",
+              "size": 1438275289,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-30_r12.zip"
             }
           ],
           "dependencies": {
@@ -7115,13 +7293,14 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
-          "license": "android-sdk-license",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-arm-dbt-license",
           "name": "system-image-30-google_apis-x86_64",
           "path": "system-images/android-30/google_apis/x86_64",
           "revision": "30-google_apis-x86_64",
           "revision-details": {
-            "major:0": "11"
+            "major:0": "12"
           },
           "type-details": {
             "abi:3": "x86_64",
@@ -7169,6 +7348,7 @@
             }
           },
           "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "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",
@@ -7231,6 +7411,7 @@
             }
           },
           "displayName": "Google Play Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-30-google_apis_playstore-x86",
           "path": "system-images/android-30/google_apis_playstore/x86",
@@ -7292,7 +7473,8 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "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",
@@ -7347,6 +7529,7 @@
             }
           },
           "displayName": "Android TV ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-31-android-tv-arm64-v8a",
           "path": "system-images/android-31/android-tv/arm64-v8a",
@@ -7393,6 +7576,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-31-android-tv-x86",
           "path": "system-images/android-31/android-tv/x86",
@@ -7436,6 +7620,7 @@
             }
           },
           "displayName": "ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-31-default-arm64-v8a",
           "path": "system-images/android-31/default/arm64-v8a",
@@ -7459,9 +7644,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "1200d6983af477fd6439f11cc5cabf9866bc4a16",
-              "size": 657244568,
-              "url": "https://dl.google.com/android/repository/sys-img/android/x86_64-31_r03.zip"
+              "sha1": "58bff3cb182c79bbfe3980fe77b87b51b9f7ad71",
+              "size": 657246510,
+              "url": "https://dl.google.com/android/repository/sys-img/android/x86_64-31_r05.zip"
             }
           ],
           "dependencies": {
@@ -7476,13 +7661,14 @@
               }
             }
           },
-          "displayName": "Intel x86 Atom_64 System Image",
+          "displayName": "Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-31-default-x86_64",
           "path": "system-images/android-31/default/x86_64",
           "revision": "31-default-x86_64",
           "revision-details": {
-            "major:0": "4"
+            "major:0": "5"
           },
           "type-details": {
             "abi:2": "x86_64",
@@ -7525,6 +7711,7 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-31-google_apis-arm64-v8a",
           "path": "system-images/android-31/google_apis/arm64-v8a",
@@ -7552,9 +7739,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "05a74ff8509fb76cbfd14b2e3307addad5c4d0df",
-              "size": 1458104208,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-31_r11.zip"
+              "sha1": "9aedd3e85cad7a479146f6858f4a94840c2a3f29",
+              "size": 1470822277,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-31_r14.zip"
             }
           ],
           "dependencies": {
@@ -7574,13 +7761,14 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-31-google_apis-x86_64",
           "path": "system-images/android-31/google_apis/x86_64",
           "revision": "31-google_apis-x86_64",
           "revision-details": {
-            "major:0": "11"
+            "major:0": "14"
           },
           "type-details": {
             "abi:3": "x86_64",
@@ -7633,6 +7821,7 @@
             }
           },
           "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-31-google_apis_playstore-arm64-v8a",
           "path": "system-images/android-31/google_apis_playstore/arm64-v8a",
@@ -7682,7 +7871,8 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-31-google_apis_playstore-x86_64",
           "path": "system-images/android-31/google_apis_playstore/x86_64",
@@ -7710,13 +7900,64 @@
     },
     "32": {
       "google_apis": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "f64546f7cfcd751d89c8b7799d444676b217c623",
+              "size": 1536995320,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-32_r06.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "30",
+                "micro:2": "3",
+                "minor:1": "7"
+              }
+            }
+          },
+          "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-32-google_apis-arm64-v8a",
+          "path": "system-images/android-32/google_apis/arm64-v8a",
+          "revision": "32-google_apis-arm64-v8a",
+          "revision-details": {
+            "major:0": "6"
+          },
+          "type-details": {
+            "abi:3": "arm64-v8a",
+            "api-level:0": "32",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Google APIs",
+              "id:0": "google_apis"
+            },
+            "vendor:2": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        },
         "x86_64": {
           "archives": [
             {
               "os": "all",
-              "sha1": "9727f570164b062e820d6e62edabc96d125027f6",
-              "size": 1471221547,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-32_r03.zip"
+              "sha1": "4b7fb40deefc6e7b5721774ce8f46310c2b434ca",
+              "size": 1511072885,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-32_r07.zip"
             }
           ],
           "dependencies": {
@@ -7736,13 +7977,14 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-32-google_apis-x86_64",
           "path": "system-images/android-32/google_apis/x86_64",
           "revision": "32-google_apis-x86_64",
           "revision-details": {
-            "major:0": "3"
+            "major:0": "7"
           },
           "type-details": {
             "abi:3": "x86_64",
@@ -7795,6 +8037,7 @@
             }
           },
           "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-32-google_apis_playstore-arm64-v8a",
           "path": "system-images/android-32/google_apis_playstore/arm64-v8a",
@@ -7856,7 +8099,8 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-32-google_apis_playstore-x86_64",
           "path": "system-images/android-32/google_apis_playstore/x86_64",
@@ -7911,6 +8155,7 @@
             }
           },
           "displayName": "Android TV ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-33-android-tv-arm64-v8a",
           "path": "system-images/android-33/android-tv/arm64-v8a",
@@ -7957,6 +8202,7 @@
             }
           },
           "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-33-android-tv-x86",
           "path": "system-images/android-33/android-tv/x86",
@@ -7977,14 +8223,90 @@
           }
         }
       },
+      "android-wear": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "d1d540281261cf23895004a18705b62a53928fe6",
+              "size": 976844607,
+              "url": "https://dl.google.com/android/repository/sys-img/android-wear/arm64-v8a-33_r02.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            }
+          },
+          "displayName": "Wear OS 4 - Preview ARM 64 v8a System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-33-android-wear-arm64-v8a",
+          "path": "system-images/android-33/android-wear/arm64-v8a",
+          "revision": "33-android-wear-arm64-v8a",
+          "revision-details": {
+            "major:0": "2"
+          },
+          "type-details": {
+            "abi:2": "arm64-v8a",
+            "api-level:0": "33",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Wear OS 4 - Preview",
+              "id:0": "android-wear"
+            }
+          }
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "91f88f49e9484a86f18600fbfdfd281619b5ce79",
+              "size": 1013350511,
+              "url": "https://dl.google.com/android/repository/sys-img/android-wear/x86_64-33_r02.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            }
+          },
+          "displayName": "Wear OS 4 - Preview Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-33-android-wear-x86_64",
+          "path": "system-images/android-33/android-wear/x86_64",
+          "revision": "33-android-wear-x86_64",
+          "revision-details": {
+            "major:0": "2"
+          },
+          "type-details": {
+            "abi:2": "x86_64",
+            "api-level:0": "33",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Wear OS 4 - Preview",
+              "id:0": "android-wear"
+            }
+          }
+        }
+      },
       "google_apis": {
         "arm64-v8a": {
           "archives": [
             {
               "os": "all",
-              "sha1": "8e7733de150ad1a912d63f90a11a1de705b5ddcf",
-              "size": 1619645676,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-33_r08.zip"
+              "sha1": "5efee22c6b46ca0b0614d2881e1f8170fbf5649d",
+              "size": 1629988084,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-33_r13.zip"
             }
           ],
           "dependencies": {
@@ -8005,12 +8327,13 @@
             }
           },
           "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-33-google_apis-arm64-v8a",
           "path": "system-images/android-33/google_apis/arm64-v8a",
           "revision": "33-google_apis-arm64-v8a",
           "revision-details": {
-            "major:0": "8"
+            "major:0": "13"
           },
           "type-details": {
             "abi:3": "arm64-v8a",
@@ -8032,9 +8355,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "6f5210b87ca249aa6ea2a25bb6d5598c19fa9372",
-              "size": 1510438727,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-33_r08.zip"
+              "sha1": "50bc7f4082ea5dcb2e51fd65ddf243f934bcb40a",
+              "size": 1545116967,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-33_r13.zip"
             }
           ],
           "dependencies": {
@@ -8054,13 +8377,14 @@
               }
             }
           },
-          "displayName": "Google APIs Intel x86 Atom_64 System Image",
-          "license": "android-sdk-license",
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-arm-dbt-license",
           "name": "system-image-33-google_apis-x86_64",
           "path": "system-images/android-33/google_apis/x86_64",
           "revision": "33-google_apis-x86_64",
           "revision-details": {
-            "major:0": "8"
+            "major:0": "13"
           },
           "type-details": {
             "abi:3": "x86_64",
@@ -8084,15 +8408,15 @@
           "archives": [
             {
               "os": "macosx",
-              "sha1": "831cfe87d12eb5dd9d107ca2dfb203d52ca7b217",
-              "size": 1582091204,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r07-darwin.zip"
+              "sha1": "51169278b759ce1f347a235497729bf5b558ecb2",
+              "size": 1475820733,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r01-darwin_ext05.zip"
             },
             {
               "os": "linux",
-              "sha1": "831cfe87d12eb5dd9d107ca2dfb203d52ca7b217",
-              "size": 1582091204,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r07-linux.zip"
+              "sha1": "51169278b759ce1f347a235497729bf5b558ecb2",
+              "size": 1475820733,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-33_r01-linux_ext05.zip"
             }
           ],
           "dependencies": {
@@ -8113,6 +8437,7 @@
             }
           },
           "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-33-google_apis_playstore-arm64-v8a",
           "path": "system-images/android-33/google_apis_playstore/arm64-v8a",
@@ -8140,9 +8465,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "b7491eecf45556bd96f7b7a80c020b18a8a7df0d",
-              "size": 1481773028,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-33_r07.zip"
+              "sha1": "e80584a2c9f8ba863a3fa961efc6d8866650f2eb",
+              "size": 1479931636,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-33_r01_ext05.zip"
             }
           ],
           "dependencies": {
@@ -8162,7 +8487,8 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-license",
           "name": "system-image-33-google_apis_playstore-x86_64",
           "path": "system-images/android-33/google_apis_playstore/x86_64",
@@ -8188,21 +8514,333 @@
         }
       }
     },
+    "34": {
+      "android-tv": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "d8ec0e59b3ba2c5d43cfc403bc1baffff40007ac",
+              "size": 880769986,
+              "url": "https://dl.google.com/android/repository/sys-img/android-tv/arm64-v8a-34_r01.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "28",
+                "micro:2": "6",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Android TV ARM 64 v8a System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-license",
+          "name": "system-image-34-android-tv-arm64-v8a",
+          "path": "system-images/android-34/android-tv/arm64-v8a",
+          "revision": "34-android-tv-arm64-v8a",
+          "revision-details": {
+            "major:0": "1"
+          },
+          "type-details": {
+            "abi:2": "arm64-v8a",
+            "api-level:0": "34",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Android TV",
+              "id:0": "android-tv"
+            }
+          }
+        },
+        "x86": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "33257a883decee2c120893f739d3a1806afdc3ca",
+              "size": 868584259,
+              "url": "https://dl.google.com/android/repository/sys-img/android-tv/x86-34_r01.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "28",
+                "micro:2": "6",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Android TV Intel x86 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-license",
+          "name": "system-image-34-android-tv-x86",
+          "path": "system-images/android-34/android-tv/x86",
+          "revision": "34-android-tv-x86",
+          "revision-details": {
+            "major:0": "1"
+          },
+          "type-details": {
+            "abi:2": "x86",
+            "api-level:0": "34",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Android TV",
+              "id:0": "android-tv"
+            }
+          }
+        }
+      },
+      "google_apis": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "e910dfb0002f52753933399ea93957023d2d2e60",
+              "size": 1592115349,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-34_r07.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-34-google_apis-arm64-v8a",
+          "path": "system-images/android-34/google_apis/arm64-v8a",
+          "revision": "34-google_apis-arm64-v8a",
+          "revision-details": {
+            "major:0": "7"
+          },
+          "type-details": {
+            "abi:3": "arm64-v8a",
+            "api-level:0": "34",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Google APIs",
+              "id:0": "google_apis"
+            },
+            "vendor:2": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "ad1a351d22ea0cfb3fe30201da3d410c24d9fd9d",
+              "size": 1545718157,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-34_r07.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-34-google_apis-x86_64",
+          "path": "system-images/android-34/google_apis/x86_64",
+          "revision": "34-google_apis-x86_64",
+          "revision-details": {
+            "major:0": "7"
+          },
+          "type-details": {
+            "abi:3": "x86_64",
+            "api-level:0": "34",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Google APIs",
+              "id:0": "google_apis"
+            },
+            "vendor:2": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        }
+      },
+      "google_apis_playstore": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "macosx",
+              "sha1": "43aa221d54537389d69ac49111b352362af490b8",
+              "size": 1553043568,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-34_r07-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "43aa221d54537389d69ac49111b352362af490b8",
+              "size": 1553043568,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-34_r07-linux.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-34-google_apis_playstore-arm64-v8a",
+          "path": "system-images/android-34/google_apis_playstore/arm64-v8a",
+          "revision": "34-google_apis_playstore-arm64-v8a",
+          "revision-details": {
+            "major:0": "7"
+          },
+          "type-details": {
+            "abi:3": "arm64-v8a",
+            "api-level:0": "34",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Google Play",
+              "id:0": "google_apis_playstore"
+            },
+            "vendor:2": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "29d3e349cc906f3eec80c8238898ebaed6e62233",
+              "size": 1514892655,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-34_r07.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-34-google_apis_playstore-x86_64",
+          "path": "system-images/android-34/google_apis_playstore/x86_64",
+          "revision": "34-google_apis_playstore-x86_64",
+          "revision-details": {
+            "major:0": "7"
+          },
+          "type-details": {
+            "abi:3": "x86_64",
+            "api-level:0": "34",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:1": {
+              "display:1": "Google Play",
+              "id:0": "google_apis_playstore"
+            },
+            "vendor:2": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        }
+      }
+    },
     "TiramisuPrivacySandbox": {
       "google_apis_playstore": {
         "arm64-v8a": {
           "archives": [
             {
               "os": "macosx",
-              "sha1": "069cdb5926cef729c8f14897cdc70e47acfe6736",
-              "size": 1489462208,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r08-darwin.zip"
+              "sha1": "d4cb5f1b985cb9f6ee093a00a910c5afc1bb0912",
+              "size": 1592946784,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r09-darwin.zip"
             },
             {
               "os": "linux",
-              "sha1": "069cdb5926cef729c8f14897cdc70e47acfe6736",
-              "size": 1489462208,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r08-linux.zip"
+              "sha1": "d4cb5f1b985cb9f6ee093a00a910c5afc1bb0912",
+              "size": 1592946784,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-TiramisuPrivacySandbox_r09-linux.zip"
             }
           ],
           "dependencies": {
@@ -8223,12 +8861,13 @@
             }
           },
           "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-arm-dbt-license",
           "name": "system-image-TiramisuPrivacySandbox-google_apis_playstore-arm64-v8a",
           "path": "system-images/android-TiramisuPrivacySandbox/google_apis_playstore/arm64-v8a",
           "revision": "TiramisuPrivacySandbox-google_apis_playstore-arm64-v8a",
           "revision-details": {
-            "major:0": "8"
+            "major:0": "9"
           },
           "type-details": {
             "abi:4": "arm64-v8a",
@@ -8251,9 +8890,9 @@
           "archives": [
             {
               "os": "all",
-              "sha1": "7ae1658d066353e9f079afe694bdc17c446c0c88",
-              "size": 1493513570,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-TiramisuPrivacySandbox_r08.zip"
+              "sha1": "4893f6e62413e97e2bad5f183319d65d3947a375",
+              "size": 1492912127,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-TiramisuPrivacySandbox_r09.zip"
             }
           ],
           "dependencies": {
@@ -8273,13 +8912,14 @@
               }
             }
           },
-          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
           "license": "android-sdk-preview-license",
           "name": "system-image-TiramisuPrivacySandbox-google_apis_playstore-x86_64",
           "path": "system-images/android-TiramisuPrivacySandbox/google_apis_playstore/x86_64",
           "revision": "TiramisuPrivacySandbox-google_apis_playstore-x86_64",
           "revision-details": {
-            "major:0": "8"
+            "major:0": "9"
           },
           "type-details": {
             "abi:4": "x86_64",
@@ -8299,6 +8939,340 @@
           }
         }
       }
+    },
+    "UpsideDownCake": {
+      "google_apis": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "2335c0cf2c76cb1883a6d6ee38e6fff99989596f",
+              "size": 1549237055,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-UpsideDownCake_r04.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google APIs ARM 64 v8a System Image",
+          "last-available-day": 19489,
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-UpsideDownCake-google_apis-arm64-v8a",
+          "path": "system-images/android-UpsideDownCake/google_apis/arm64-v8a",
+          "revision": "UpsideDownCake-google_apis-arm64-v8a",
+          "revision-details": {
+            "major:0": "4"
+          },
+          "type-details": {
+            "abi:4": "arm64-v8a",
+            "api-level:0": "33",
+            "codename:1": "UpsideDownCake",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:2": {
+              "display:1": "Google APIs",
+              "id:0": "google_apis"
+            },
+            "vendor:3": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "15a514144f57865a84abbd6df8e6897c80bb8b88",
+              "size": 1491492723,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis/x86_64-UpsideDownCake_r04.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google APIs Intel x86_64 Atom System Image",
+          "last-available-day": 19489,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-UpsideDownCake-google_apis-x86_64",
+          "path": "system-images/android-UpsideDownCake/google_apis/x86_64",
+          "revision": "UpsideDownCake-google_apis-x86_64",
+          "revision-details": {
+            "major:0": "4"
+          },
+          "type-details": {
+            "abi:4": "x86_64",
+            "api-level:0": "33",
+            "codename:1": "UpsideDownCake",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:2": {
+              "display:1": "Google APIs",
+              "id:0": "google_apis"
+            },
+            "vendor:3": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        }
+      },
+      "google_apis_playstore": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "macosx",
+              "sha1": "b9f7a7d25450e2385a8334af688ab862fc723dba",
+              "size": 1513459071,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-UpsideDownCake_r04-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "b9f7a7d25450e2385a8334af688ab862fc723dba",
+              "size": 1513459071,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-UpsideDownCake_r04-linux.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19489,
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-UpsideDownCake-google_apis_playstore-arm64-v8a",
+          "path": "system-images/android-UpsideDownCake/google_apis_playstore/arm64-v8a",
+          "revision": "UpsideDownCake-google_apis_playstore-arm64-v8a",
+          "revision-details": {
+            "major:0": "4"
+          },
+          "type-details": {
+            "abi:4": "arm64-v8a",
+            "api-level:0": "33",
+            "codename:1": "UpsideDownCake",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:2": {
+              "display:1": "Google Play",
+              "id:0": "google_apis_playstore"
+            },
+            "vendor:3": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "4647cbb1877cca1394b1a4fff52c644e6220d07a",
+              "size": 1464098477,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-UpsideDownCake_r04.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19489,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-UpsideDownCake-google_apis_playstore-x86_64",
+          "path": "system-images/android-UpsideDownCake/google_apis_playstore/x86_64",
+          "revision": "UpsideDownCake-google_apis_playstore-x86_64",
+          "revision-details": {
+            "major:0": "4"
+          },
+          "type-details": {
+            "abi:4": "x86_64",
+            "api-level:0": "33",
+            "codename:1": "UpsideDownCake",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:2": {
+              "display:1": "Google Play",
+              "id:0": "google_apis_playstore"
+            },
+            "vendor:3": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        }
+      }
+    },
+    "UpsideDownCakePrivacySandbox": {
+      "google_apis_playstore": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "macosx",
+              "sha1": "a312b771639410ede98d101e21f0d113201d2cc4",
+              "size": 1513441966,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-UpsideDownCakePrivacySandbox_r01-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "a312b771639410ede98d101e21f0d113201d2cc4",
+              "size": 1513441966,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-UpsideDownCakePrivacySandbox_r01-linux.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google Play ARM 64 v8a System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-UpsideDownCakePrivacySandbox-google_apis_playstore-arm64-v8a",
+          "path": "system-images/android-UpsideDownCakePrivacySandbox/google_apis_playstore/arm64-v8a",
+          "revision": "UpsideDownCakePrivacySandbox-google_apis_playstore-arm64-v8a",
+          "revision-details": {
+            "major:0": "1"
+          },
+          "type-details": {
+            "abi:4": "arm64-v8a",
+            "api-level:0": "33",
+            "codename:1": "UpsideDownCakePrivacySandbox",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:2": {
+              "display:1": "Google Play",
+              "id:0": "google_apis_playstore"
+            },
+            "vendor:3": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "all",
+              "sha1": "687378b8490f67bbb9b081fdf50c3c86f7f6a6bb",
+              "size": 1464123578,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-UpsideDownCakePrivacySandbox_r01.zip"
+            }
+          ],
+          "dependencies": {
+            "dependency:0": {
+              "element-attributes": {
+                "path": "patcher;v4"
+              }
+            },
+            "dependency:1": {
+              "element-attributes": {
+                "path": "emulator"
+              },
+              "min-revision:0": {
+                "major:0": "32",
+                "micro:2": "8",
+                "minor:1": "1"
+              }
+            }
+          },
+          "displayName": "Google Play Intel x86_64 Atom System Image",
+          "last-available-day": 19579,
+          "license": "android-sdk-preview-license",
+          "name": "system-image-UpsideDownCakePrivacySandbox-google_apis_playstore-x86_64",
+          "path": "system-images/android-UpsideDownCakePrivacySandbox/google_apis_playstore/x86_64",
+          "revision": "UpsideDownCakePrivacySandbox-google_apis_playstore-x86_64",
+          "revision-details": {
+            "major:0": "1"
+          },
+          "type-details": {
+            "abi:4": "x86_64",
+            "api-level:0": "33",
+            "codename:1": "UpsideDownCakePrivacySandbox",
+            "element-attributes": {
+              "xsi:type": "ns12:sysImgDetailsType"
+            },
+            "tag:2": {
+              "display:1": "Google Play",
+              "id:0": "google_apis_playstore"
+            },
+            "vendor:3": {
+              "display:1": "Google Inc.",
+              "id:0": "google"
+            }
+          }
+        }
+      }
     }
   },
   "licenses": {
@@ -8358,6 +9332,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 17",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8403,6 +9378,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 18.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8448,6 +9424,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 18.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8493,6 +9470,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 18.1.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8538,6 +9516,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 19",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8583,6 +9562,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 19.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8628,6 +9608,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 19.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8673,6 +9654,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 19.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8718,6 +9700,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 19.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/19.1.0",
@@ -8762,6 +9745,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 20",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/20.0.0",
@@ -8806,6 +9790,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 21",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8851,6 +9836,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 21.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8896,6 +9882,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 21.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8941,6 +9928,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 21.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -8986,6 +9974,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 21.1.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -9031,6 +10020,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 21.1.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/21.1.2",
@@ -9075,6 +10065,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 22",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -9120,6 +10111,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 22.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/22.0.1",
@@ -9164,6 +10156,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 23",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -9209,6 +10202,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 23.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/23.0.1",
@@ -9253,6 +10247,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 23.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/23.0.2",
@@ -9297,6 +10292,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 23.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/23.0.3",
@@ -9341,6 +10337,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 24",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/24.0.0",
@@ -9385,6 +10382,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 24.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/24.0.1",
@@ -9429,6 +10427,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 24.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/24.0.2",
@@ -9473,6 +10472,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 24.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/24.0.3",
@@ -9517,6 +10517,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 25",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/25.0.0",
@@ -9561,6 +10562,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 25.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/25.0.1",
@@ -9605,6 +10607,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 25.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/25.0.2",
@@ -9649,6 +10652,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 25.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/25.0.3",
@@ -9693,6 +10697,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 26",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/26.0.0",
@@ -9737,6 +10742,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 26.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/26.0.1",
@@ -9781,6 +10787,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 26.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/26.0.2",
@@ -9825,6 +10832,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 26.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/26.0.3",
@@ -9869,6 +10877,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 27",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/27.0.0",
@@ -9913,6 +10922,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 27.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/27.0.1",
@@ -9957,6 +10967,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 27.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/27.0.2",
@@ -10001,6 +11012,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 27.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/27.0.3",
@@ -10045,6 +11057,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 28",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/28.0.0",
@@ -10089,6 +11102,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 28-rc1",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -10135,6 +11149,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 28-rc2",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -10181,6 +11196,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 28.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/28.0.1",
@@ -10225,6 +11241,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 28.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/28.0.2",
@@ -10269,6 +11286,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 28.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/28.0.3",
@@ -10313,6 +11331,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/29.0.0",
@@ -10357,6 +11376,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29-rc1",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -10403,6 +11423,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29-rc2",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -10449,6 +11470,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29-rc3",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "build-tools",
         "obsolete": "true",
@@ -10495,6 +11517,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/29.0.1",
@@ -10539,6 +11562,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/29.0.2",
@@ -10583,6 +11607,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 29.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/29.0.3",
@@ -10627,6 +11652,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 30",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/30.0.0",
@@ -10671,6 +11697,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 30.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/30.0.1",
@@ -10715,6 +11742,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 30.0.2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/30.0.2",
@@ -10759,6 +11787,7 @@
           }
         },
         "displayName": "Android SDK Build-Tools 30.0.3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/30.0.3",
@@ -10796,6 +11825,7 @@
           }
         ],
         "displayName": "Android SDK Build-Tools 31",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/31.0.0",
@@ -10833,6 +11863,7 @@
           }
         ],
         "displayName": "Android SDK Build-Tools 32",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/32.0.0",
@@ -10870,6 +11901,7 @@
           }
         ],
         "displayName": "Android SDK Build-Tools 32.1-rc1",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "build-tools",
         "path": "build-tools/32.1.0-rc1",
@@ -10908,6 +11940,7 @@
           }
         ],
         "displayName": "Android SDK Build-Tools 33",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/33.0.0",
@@ -10945,6 +11978,7 @@
           }
         ],
         "displayName": "Android SDK Build-Tools 33.0.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "build-tools",
         "path": "build-tools/33.0.1",
@@ -10959,6 +11993,238 @@
             "xsi:type": "ns5:genericDetailsType"
           }
         }
+      },
+      "33.0.2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "9def17c815f46ac09024ebb674466d39d039255c",
+            "size": 56003588,
+            "url": "https://dl.google.com/android/repository/build-tools_r33.0.2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "482fd9244332cb3e7435f229a22552459b68b3ff",
+            "size": 60013768,
+            "url": "https://dl.google.com/android/repository/build-tools_r33.0.2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "1f33813c884a039f242b386e9127d3a96915066f",
+            "size": 55630250,
+            "url": "https://dl.google.com/android/repository/build-tools_r33.0.2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 33.0.2",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/33.0.2",
+        "revision": "33.0.2",
+        "revision-details": {
+          "major:0": "33",
+          "micro:2": "2",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "34.0.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "d6d58e0c6925a9e4d9a541e84cd1f405c2f9d2a9",
+            "size": 61224257,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "00e1301387028f33753e38274401694e1a27c62f",
+            "size": 76559180,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "62cfde1b6fcc3ad12a4d2ba1b537e752768bfd47",
+            "size": 58253258,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 34",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "build-tools",
+        "path": "build-tools/34.0.0",
+        "revision": "34.0.0",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "0",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "34.0.0-rc1": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "fec0a16d0c2fab6576fd58f6aa2e69a561ab1128",
+            "size": 60468599,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc1-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "1e3847d449ce6124ffbf528db601f3dfab25e77e",
+            "size": 62640488,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc1-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "73dca92f84827749882bd0ac501c4befdf3ab878",
+            "size": 57791540,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 34-rc1",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/34.0.0-rc1",
+        "revision": "34.0.0-rc1",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "0",
+          "minor:1": "0",
+          "preview:3": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "34.0.0-rc2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "bce35f1524d2ea5f6326809dc7accff0ee2fe370",
+            "size": 60835777,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc2-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "c47d9c9d040567b1b62eefc1a6306b5acebe3a76",
+            "size": 63005203,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc2-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "60c51d073ac760fdec647b9fecf086d1a35f7841",
+            "size": 58246192,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc2-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 34-rc2",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/34.0.0-rc2",
+        "revision": "34.0.0-rc2",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "0",
+          "minor:1": "0",
+          "preview:3": "2"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "34.0.0-rc3": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "0bcb893e8b009f1da3d538be47c6ae5907884bf6",
+            "size": 61165322,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc3-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "97db9e5009971021ca18bb62043764b68f756ede",
+            "size": 76497941,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "78fa4ca752017c3217786af16c513f44a5042433",
+            "size": 58326432,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc3-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 34-rc3",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/34.0.0-rc3",
+        "revision": "34.0.0-rc3",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "0",
+          "minor:1": "0",
+          "preview:3": "3"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "34.0.0-rc4": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "61f7cfa64786bffbf6c6c9a3d74d025a07239928",
+            "size": 61206867,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc4-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "522431b33cd7fa1407914a8fa66a27bfe1755cbb",
+            "size": 76553187,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc4-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "699f1cb99a8de88b1746ce12302d6c2ddce81186",
+            "size": 58219308,
+            "url": "https://dl.google.com/android/repository/build-tools_r34-rc4-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 34-rc4",
+        "last-available-day": 19489,
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/34.0.0-rc4",
+        "revision": "34.0.0-rc4",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "0",
+          "minor:1": "0",
+          "preview:3": "4"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
       }
     },
     "cmake": {
@@ -10984,6 +12250,7 @@
           }
         ],
         "displayName": "CMake 3.10.2.4988404",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmake",
         "path": "cmake/3.10.2.4988404",
@@ -11021,6 +12288,7 @@
           }
         ],
         "displayName": "CMake 3.18.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmake",
         "path": "cmake/3.18.1",
@@ -11058,6 +12326,7 @@
           }
         ],
         "displayName": "CMake 3.22.1",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmake",
         "path": "cmake/3.22.1",
@@ -11095,6 +12364,7 @@
           }
         ],
         "displayName": "CMake 3.6.4111459",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmake",
         "path": "cmake/3.6.4111459",
@@ -11134,6 +12404,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/1.0",
@@ -11148,6 +12419,232 @@
           }
         }
       },
+      "10.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "a787f0c35d3970f2ad634f7d91a2e7bc49e2c7f5",
+            "size": 138733165,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-9862592_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "2a0c97c8d9b11f9a64be0a7058bcdbf1aaab9910",
+            "size": 138733149,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-9862592_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "5a03c5ce16f4c99ffe7bded82798b01b07a79bc0",
+            "size": 138709020,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-9862592_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/10.0",
+        "revision": "10.0",
+        "revision-details": {
+          "major:0": "10",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "10.0-rc04": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "fe41906d2ce82df4cde74fe258e0ccdb283de60a",
+            "size": 138718717,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-9645777_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "021540982a843ae2c9b4e0a5c2034b29681b4f70",
+            "size": 138718701,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-9645777_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9c3877a2926c1e73af981964b0f4381a6d68fb21",
+            "size": 138694572,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-9645777_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19489,
+        "license": "android-sdk-preview-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/10.0-beta04",
+        "revision": "10.0-rc04",
+        "revision-details": {
+          "major:0": "10",
+          "minor:1": "0",
+          "preview:2": "04"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "11.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "87b485c7283cba69e41c10f05bf832d2fd691552",
+            "size": 148832188,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "4b831e6a978ce9170fc49a8010e2ece4be790c73",
+            "size": 148832172,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-10406996_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9b0082db87cf1738866f80160f497b8a53e149a3",
+            "size": 148808043,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-10406996_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/11.0",
+        "revision": "11.0",
+        "revision-details": {
+          "major:0": "11",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "11.0-rc01": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "26048ffc9a0b0b6ef0fe491e3796486d2387f043",
+            "size": 148831286,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-10320515_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "8cf501a4efbcc3be6bc15a48ad17fcda8bf03116",
+            "size": 148831270,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-10320515_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fe8694f50bf5b132c0c92f4a695f51aac71c8f27",
+            "size": 148807141,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-10320515_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/11.0-rc01",
+        "revision": "11.0-rc01",
+        "revision-details": {
+          "major:0": "11",
+          "minor:1": "0",
+          "preview:2": "01"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "11.0-rc07": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "c43e4fb8567c4625e8daf4cee0a5490f826a5442",
+            "size": 147822296,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-9644228_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "2c97234849128cb75b0691cf652ab098707c610c",
+            "size": 147822280,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-9644228_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "2bfc8fad022acce100a5b0583def1ca5bc56eff1",
+            "size": 147798151,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-9644228_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19489,
+        "license": "android-sdk-preview-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/11.0-alpha07",
+        "revision": "11.0-rc07",
+        "revision-details": {
+          "major:0": "11",
+          "minor:1": "0",
+          "preview:2": "07"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "12.0-rc15": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "9f67d98e686616bf92122b03051f02f695b11415",
+            "size": 153543827,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-10572941_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "feac1c4ad5e78e506cb55216181f3c5b58219e90",
+            "size": 153543811,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-10572941_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "4956c615fa087f5a716ffde76684085366c5a5bf",
+            "size": 153519682,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-10572941_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/12.0-alpha15",
+        "revision": "12.0-rc15",
+        "revision-details": {
+          "major:0": "12",
+          "minor:1": "0",
+          "preview:2": "15"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
       "2.0": {
         "archives": [
           {
@@ -11170,6 +12667,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "obsolete": "true",
@@ -11207,6 +12705,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/2.1",
@@ -11243,6 +12742,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/3.0",
@@ -11279,6 +12779,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/4.0",
@@ -11315,6 +12816,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/5.0",
@@ -11351,6 +12853,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/6.0",
@@ -11387,6 +12890,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/7.0",
@@ -11423,6 +12927,7 @@
           }
         ],
         "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "cmdline-tools",
         "path": "cmdline-tools/8.0",
@@ -11436,6 +12941,43 @@
             "xsi:type": "ns5:genericDetailsType"
           }
         }
+      },
+      "9.0": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "7f92d6e0783a6d73ade5396fe4cfcb58544ef14b",
+            "size": 133507477,
+            "url": "https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "587441bc37d957857c1f654726eb7e04ee9ca3e0",
+            "size": 133507463,
+            "url": "https://dl.google.com/android/repository/commandlinetools-mac-9477386_latest.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f8cd24223fee3b4cff857c9435caa72be0d08b70",
+            "size": 133486337,
+            "url": "https://dl.google.com/android/repository/commandlinetools-win-9477386_latest.zip"
+          }
+        ],
+        "displayName": "Android SDK Command-line Tools",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "cmdline-tools",
+        "path": "cmdline-tools/9.0",
+        "revision": "9.0",
+        "revision-details": {
+          "major:0": "9",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
       }
     },
     "emulator": {
@@ -11468,6 +13010,7 @@
           }
         },
         "displayName": "Android Emulator",
+        "last-available-day": 19469,
         "license": "android-sdk-license",
         "name": "emulator",
         "path": "emulator",
@@ -11512,6 +13055,7 @@
           }
         },
         "displayName": "Android Emulator",
+        "last-available-day": 19469,
         "license": "android-sdk-license",
         "name": "emulator",
         "path": "emulator",
@@ -11527,6 +13071,141 @@
           }
         }
       },
+      "32.1.10": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "518eaa8575a2e5ae7bbb19847e0c25b7968a9e91",
+            "size": 309316195,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-9475343.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "71ef457eeeee6b55382abf4a5aaab5de7426e383",
+            "size": 270160041,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-9475343.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "a53b8e1026325b48cb722d91deeb128947971b8f",
+            "size": 333004087,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-9475343.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "32.1.10",
+        "revision-details": {
+          "major:0": "32",
+          "micro:2": "10",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "32.1.12": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "556fb884d6e72b597bf5c1fa959f59744994fb68",
+            "size": 270165820,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-9751036.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "0ee17dd9b4410d38dc2f6a6227e899d6910b2c55",
+            "size": 332999329,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-9751036.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "d37d6e301f36d8f0797ca96a3fd6b8ee5f8d46ae",
+            "size": 307219070,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-9751036.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19489,
+        "license": "android-sdk-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "32.1.12",
+        "revision-details": {
+          "major:0": "32",
+          "micro:2": "12",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "32.1.14": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "04bab7711660fc9891fd5dec347a9f533a87af1a",
+            "size": 270178945,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-10330179.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "f039bd816f82cda85ee4a2e14497bd00a1998867",
+            "size": 333010879,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-10330179.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "3db11e3541bfced7dbaadc976a13045fd7e1bbcc",
+            "size": 309337702,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-10330179.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "32.1.14",
+        "revision-details": {
+          "major:0": "32",
+          "micro:2": "14",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
       "32.1.8": {
         "archives": [
           {
@@ -11556,6 +13235,7 @@
           }
         },
         "displayName": "Android Emulator",
+        "last-available-day": 19469,
         "license": "android-sdk-preview-license",
         "name": "emulator",
         "path": "emulator",
@@ -11570,6 +13250,186 @@
             "xsi:type": "ns5:genericDetailsType"
           }
         }
+      },
+      "33.1.10": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "f38b9ec7e9c9ff3b8c4022e7f9baa1d6622634a0",
+            "size": 325272345,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-10078095.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "e97f77ce116ff8fb13bd8f89a2097cc4ab1dbc67",
+            "size": 180494623,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-10078095.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8738b20ee568c4e6a84b66b1fa848517db646c47",
+            "size": 354011689,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-10078095.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19489,
+        "license": "android-sdk-preview-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "33.1.10",
+        "revision-details": {
+          "major:0": "33",
+          "micro:2": "10",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "33.1.17": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "cd989b0594ebe9382749b3a5dc026acb326e4de0",
+            "size": 341193257,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-10594030.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "72c3fb1591755ee5f5d662114a394d08247efc13",
+            "size": 261440080,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-10594030.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "cc302b5107e64348e957e4738530bcfbb58212a8",
+            "size": 363656447,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-10594030.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "33.1.17",
+        "revision-details": {
+          "major:0": "33",
+          "micro:2": "17",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "33.1.4": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "33be82356a352b79b742154f7c71f6f13455f27b",
+            "size": 345831055,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-9936625.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "cfa28a326b6328e2f3a068ac3030a075471d9df0",
+            "size": 260288819,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-9936625.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "0aab97a7b84853c8f8c7618191dc23416e2a7a4b",
+            "size": 373623936,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-9936625.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19469,
+        "license": "android-sdk-preview-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "33.1.4",
+        "revision-details": {
+          "major:0": "33",
+          "micro:2": "4",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "33.1.6": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "a31338f160fc5fa7973946d34a0d0ce1a2c0759a",
+            "size": 332134756,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-10047184.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "9f5c71277f52837d4fb43f72c80103bdf81c0569",
+            "size": 254562719,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-10047184.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "11ba13425c6fcd275f5e1aa95923f736dd2bcb64",
+            "size": 361497029,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-10047184.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "Android Emulator",
+        "last-available-day": 19489,
+        "license": "android-sdk-preview-license",
+        "name": "emulator",
+        "path": "emulator",
+        "revision": "33.1.6",
+        "revision-details": {
+          "major:0": "33",
+          "micro:2": "6",
+          "minor:1": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
       }
     },
     "extras": {
@@ -11595,6 +13455,7 @@
           }
         ],
         "displayName": "Android Auto Desktop Head Unit Emulator",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "extras",
         "path": "extras/google/auto",
@@ -11631,6 +13492,7 @@
           }
         ],
         "displayName": "Android Auto Desktop Head Unit Emulator",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "extras",
         "path": "extras/google/auto",
@@ -11676,6 +13538,7 @@
           }
         },
         "displayName": "NDK (Side by side) 16.1.4479499",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/16.1.4479499",
@@ -11720,6 +13583,7 @@
           }
         },
         "displayName": "NDK (Side by side) 17.2.4988734",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/17.2.4988734",
@@ -11764,6 +13628,7 @@
           }
         },
         "displayName": "NDK (Side by side) 18.1.5063045",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/18.1.5063045",
@@ -11808,6 +13673,7 @@
           }
         },
         "displayName": "NDK (Side by side) 19.0.5232133",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "obsolete": "true",
@@ -11853,6 +13719,7 @@
           }
         },
         "displayName": "NDK (Side by side) 19.2.5345600",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/19.2.5345600",
@@ -11897,6 +13764,7 @@
           }
         },
         "displayName": "NDK (Side by side) 20.0.5392854",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "obsolete": "true",
@@ -11943,6 +13811,7 @@
           }
         },
         "displayName": "NDK (Side by side) 20.0.5471264",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "obsolete": "true",
@@ -11989,6 +13858,7 @@
           }
         },
         "displayName": "NDK (Side by side) 20.0.5594570",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/20.0.5594570",
@@ -12033,6 +13903,7 @@
           }
         },
         "displayName": "NDK (Side by side) 20.1.5948944",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/20.1.5948944",
@@ -12077,6 +13948,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.0.6011959",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/21.0.6011959",
@@ -12122,6 +13994,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.0.6113669",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/21.0.6113669",
@@ -12166,6 +14039,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.1.6210238",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/21.1.6210238",
@@ -12211,6 +14085,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.1.6273396",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/21.1.6273396",
@@ -12256,6 +14131,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.1.6352462",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/21.1.6352462",
@@ -12300,6 +14176,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.1.6363665",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/21.1.6363665",
@@ -12345,6 +14222,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.2.6472646",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/21.2.6472646",
@@ -12389,6 +14267,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.3.6528147",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/21.3.6528147",
@@ -12433,6 +14312,7 @@
           }
         },
         "displayName": "NDK (Side by side) 21.4.7075529",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/21.4.7075529",
@@ -12477,6 +14357,7 @@
           }
         },
         "displayName": "NDK (Side by side) 22.0.6917172",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/22.0.6917172",
@@ -12522,6 +14403,7 @@
           }
         },
         "displayName": "NDK (Side by side) 22.0.7026061",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/22.0.7026061",
@@ -12566,6 +14448,7 @@
           }
         },
         "displayName": "NDK (Side by side) 22.1.7171670",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/22.1.7171670",
@@ -12610,6 +14493,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7123448",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/23.0.7123448",
@@ -12655,6 +14539,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7196353",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/23.0.7196353",
@@ -12700,6 +14585,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7272597",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/23.0.7272597",
@@ -12745,6 +14631,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7344513",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/23.0.7344513",
@@ -12790,6 +14677,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7421159",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/23.0.7421159",
@@ -12835,6 +14723,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7530507",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/23.0.7530507",
@@ -12880,6 +14769,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.0.7599858",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/23.0.7599858",
@@ -12924,6 +14814,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.1.7779620",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/23.1.7779620",
@@ -12968,6 +14859,7 @@
           }
         },
         "displayName": "NDK (Side by side) 23.2.8568313",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/23.2.8568313",
@@ -13012,6 +14904,7 @@
           }
         },
         "displayName": "NDK (Side by side) 24.0.7856742",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/24.0.7856742",
@@ -13057,6 +14950,7 @@
           }
         },
         "displayName": "NDK (Side by side) 24.0.7956693",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/24.0.7956693",
@@ -13102,6 +14996,7 @@
           }
         },
         "displayName": "NDK (Side by side) 24.0.8079956",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/24.0.8079956",
@@ -13147,6 +15042,7 @@
           }
         },
         "displayName": "NDK (Side by side) 24.0.8215888",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/24.0.8215888",
@@ -13191,6 +15087,7 @@
           }
         },
         "displayName": "NDK (Side by side) 25.0.8151533",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/25.0.8151533",
@@ -13236,6 +15133,7 @@
           }
         },
         "displayName": "NDK (Side by side) 25.0.8221429",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/25.0.8221429",
@@ -13281,6 +15179,7 @@
           }
         },
         "displayName": "NDK (Side by side) 25.0.8355429",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/25.0.8355429",
@@ -13326,6 +15225,7 @@
           }
         },
         "displayName": "NDK (Side by side) 25.0.8528842",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk",
         "path": "ndk/25.0.8528842",
@@ -13371,6 +15271,7 @@
           }
         },
         "displayName": "NDK (Side by side) 25.0.8775105",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/25.0.8775105",
@@ -13415,6 +15316,7 @@
           }
         },
         "displayName": "NDK (Side by side) 25.1.8937393",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk",
         "path": "ndk/25.1.8937393",
@@ -13429,6 +15331,97 @@
             "xsi:type": "ns5:genericDetailsType"
           }
         }
+      },
+      "25.2.9519653": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "75717f3473973c3630e772ec916de380157a593a",
+            "size": 717255580,
+            "url": "https://dl.google.com/android/repository/android-ndk-r25c-darwin.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "53af80a1cce9144025b81c78c8cd556bff42bd0e",
+            "size": 531118193,
+            "url": "https://dl.google.com/android/repository/android-ndk-r25c-linux.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "18c4a3cd108916f553b1bedad2672f2c6cd85a10",
+            "size": 467520926,
+            "url": "https://dl.google.com/android/repository/android-ndk-r25c-windows.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "NDK (Side by side) 25.2.9519653",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/25.2.9519653",
+        "revision": "25.2.9519653",
+        "revision-details": {
+          "major:0": "25",
+          "micro:2": "9519653",
+          "minor:1": "2"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "26.0.10404224-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "d6dbb122cf3fc52a64ae0d19d120a01ce0052f3b",
+            "size": 983730774,
+            "url": "https://dl.google.com/android/repository/android-ndk-r26-beta1-darwin.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "fb5e34313766764d9654b04603e69af813b18799",
+            "size": 668699088,
+            "url": "https://dl.google.com/android/repository/android-ndk-r26-beta1-linux.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "bcdc60cf0149fc862cbb5514e7879d8c46c6e1e0",
+            "size": 664889266,
+            "url": "https://dl.google.com/android/repository/android-ndk-r26-beta1-windows.zip"
+          }
+        ],
+        "dependencies": {
+          "dependency:0": {
+            "element-attributes": {
+              "path": "patcher;v4"
+            }
+          }
+        },
+        "displayName": "NDK (Side by side) 26.0.10404224",
+        "last-available-day": 19579,
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/26.0.10404224",
+        "revision": "26.0.10404224-rc1",
+        "revision-details": {
+          "major:0": "26",
+          "micro:2": "10404224",
+          "minor:1": "0",
+          "preview:3": "1"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
       }
     },
     "ndk-bundle": {
@@ -13461,6 +15454,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13505,6 +15499,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13549,6 +15544,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13593,6 +15589,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "obsolete": "true",
@@ -13638,6 +15635,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13682,6 +15680,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "obsolete": "true",
@@ -13728,6 +15727,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "obsolete": "true",
@@ -13774,6 +15774,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13818,6 +15819,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13862,6 +15864,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13907,6 +15910,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13951,6 +15955,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -13996,6 +16001,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14041,6 +16047,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14085,6 +16092,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14130,6 +16138,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14174,6 +16183,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14218,6 +16228,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14262,6 +16273,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14307,6 +16319,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14351,6 +16364,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14395,6 +16409,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14440,6 +16455,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14485,6 +16501,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14530,6 +16547,7 @@
           }
         },
         "displayName": "NDK",
+        "last-available-day": 19579,
         "license": "android-sdk-preview-license",
         "name": "ndk-bundle",
         "path": "ndk-bundle",
@@ -14558,6 +16576,7 @@
           }
         ],
         "displayName": "SDK Patch Applier v4",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "patcher",
         "path": "patcher/v4",
@@ -14595,6 +16614,7 @@
           }
         ],
         "displayName": "Android SDK Platform-Tools",
+        "last-available-day": 19469,
         "license": "android-sdk-license",
         "name": "platform-tools",
         "path": "platform-tools",
@@ -14609,6 +16629,82 @@
             "xsi:type": "ns5:genericDetailsType"
           }
         }
+      },
+      "34.0.1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "40f24dc4f2baf911ccb2a53c14bfb69fb8088c57",
+            "size": 11215880,
+            "url": "https://dl.google.com/android/repository/platform-tools_r34.0.1-darwin.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "7e8f205a0cfe574ffecb6ec41e6496f5328211fd",
+            "size": 6336109,
+            "url": "https://dl.google.com/android/repository/platform-tools_r34.0.1-linux.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "3806f15fddb6ffc5ce38efe78df1708be666a9f4",
+            "size": 6079357,
+            "url": "https://dl.google.com/android/repository/platform-tools_r34.0.1-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform-Tools",
+        "last-available-day": 19489,
+        "license": "android-sdk-license",
+        "name": "platform-tools",
+        "path": "platform-tools",
+        "revision": "34.0.1",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "1",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
+      },
+      "34.0.4": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "ecc476b9801fcb6ea61605eedf60f85217964f09",
+            "size": 11208015,
+            "url": "https://dl.google.com/android/repository/platform-tools_r34.0.4-darwin.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "faaac1c05af0e3fa20baee6e8970d96fb53bfe58",
+            "size": 6325905,
+            "url": "https://dl.google.com/android/repository/platform-tools_r34.0.4-linux.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "d245eedc17259b15e799c312e9014f78aea3da21",
+            "size": 5992467,
+            "url": "https://dl.google.com/android/repository/platform-tools_r34.0.4-windows.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform-Tools",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "platform-tools",
+        "path": "platform-tools",
+        "revision": "34.0.4",
+        "revision-details": {
+          "major:0": "34",
+          "micro:2": "4",
+          "minor:1": "0"
+        },
+        "type-details": {
+          "element-attributes": {
+            "xsi:type": "ns5:genericDetailsType"
+          }
+        }
       }
     },
     "platforms": {
@@ -14622,6 +16718,7 @@
           }
         ],
         "displayName": "Android SDK Platform 10",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-10",
@@ -14653,6 +16750,7 @@
           }
         ],
         "displayName": "Android SDK Platform 11",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-11",
@@ -14684,6 +16782,7 @@
           }
         ],
         "displayName": "Android SDK Platform 12",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-12",
@@ -14715,6 +16814,7 @@
           }
         ],
         "displayName": "Android SDK Platform 13",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-13",
@@ -14746,6 +16846,7 @@
           }
         ],
         "displayName": "Android SDK Platform 14",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-14",
@@ -14777,6 +16878,7 @@
           }
         ],
         "displayName": "Android SDK Platform 15",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-15",
@@ -14808,6 +16910,7 @@
           }
         ],
         "displayName": "Android SDK Platform 16",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-16",
@@ -14839,6 +16942,7 @@
           }
         ],
         "displayName": "Android SDK Platform 17",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-17",
@@ -14870,6 +16974,7 @@
           }
         ],
         "displayName": "Android SDK Platform 18",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-18",
@@ -14901,6 +17006,7 @@
           }
         ],
         "displayName": "Android SDK Platform 19",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-19",
@@ -14944,6 +17050,7 @@
           }
         ],
         "displayName": "Android SDK Platform 2",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "obsolete": "true",
@@ -14976,6 +17083,7 @@
           }
         ],
         "displayName": "Android SDK Platform 20",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-20",
@@ -15007,6 +17115,7 @@
           }
         ],
         "displayName": "Android SDK Platform 21",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-21",
@@ -15038,6 +17147,7 @@
           }
         ],
         "displayName": "Android SDK Platform 22",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-22",
@@ -15069,6 +17179,7 @@
           }
         ],
         "displayName": "Android SDK Platform 23",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-23",
@@ -15100,6 +17211,7 @@
           }
         ],
         "displayName": "Android SDK Platform 24",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-24",
@@ -15131,6 +17243,7 @@
           }
         ],
         "displayName": "Android SDK Platform 25",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-25",
@@ -15162,6 +17275,7 @@
           }
         ],
         "displayName": "Android SDK Platform 26",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-26",
@@ -15193,6 +17307,7 @@
           }
         ],
         "displayName": "Android SDK Platform 27",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-27",
@@ -15224,6 +17339,7 @@
           }
         ],
         "displayName": "Android SDK Platform 28",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-28",
@@ -15255,6 +17371,7 @@
           }
         ],
         "displayName": "Android SDK Platform 29",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-29",
@@ -15298,6 +17415,7 @@
           }
         ],
         "displayName": "Android SDK Platform 3",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "obsolete": "true",
@@ -15330,6 +17448,7 @@
           }
         ],
         "displayName": "Android SDK Platform 30",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-30",
@@ -15361,6 +17480,7 @@
           }
         ],
         "displayName": "Android SDK Platform 31",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-31",
@@ -15392,6 +17512,7 @@
           }
         ],
         "displayName": "Android SDK Platform 32",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-32",
@@ -15422,13 +17543,14 @@
             "url": "https://dl.google.com/android/repository/platform-33_r02.zip"
           }
         ],
-        "displayName": "Android SDK Platform 33",
+        "displayName": "Android SDK Platform 33-ext5",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-33",
         "revision": "33",
         "revision-details": {
-          "major:0": "2"
+          "major:0": "1"
         },
         "type-details": {
           "api-level:0": "33",
@@ -15444,6 +17566,38 @@
           }
         }
       },
+      "34": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "618f593e7d30c1c9ff530d1bf2fec155d47d43e0",
+            "size": 63180660,
+            "url": "https://dl.google.com/android/repository/platform-34-ext7_r01.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform 34",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-34",
+        "revision": "34",
+        "revision-details": {
+          "major:0": "1"
+        },
+        "type-details": {
+          "api-level:0": "34",
+          "codename:1": {
+          },
+          "element-attributes": {
+            "xsi:type": "ns11:platformDetailsType"
+          },
+          "layoutlib:2": {
+            "element-attributes": {
+              "api": "15"
+            }
+          }
+        }
+      },
       "4": {
         "archives": [
           {
@@ -15466,6 +17620,7 @@
           }
         ],
         "displayName": "Android SDK Platform 4",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "obsolete": "true",
@@ -15510,6 +17665,7 @@
           }
         ],
         "displayName": "Android SDK Platform 5",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "obsolete": "true",
@@ -15554,6 +17710,7 @@
           }
         ],
         "displayName": "Android SDK Platform 6",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "obsolete": "true",
@@ -15586,6 +17743,7 @@
           }
         ],
         "displayName": "Android SDK Platform 7",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-7",
@@ -15617,6 +17775,7 @@
           }
         ],
         "displayName": "Android SDK Platform 8",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-8",
@@ -15648,6 +17807,7 @@
           }
         ],
         "displayName": "Android SDK Platform 9",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-9",
@@ -15673,18 +17833,19 @@
         "archives": [
           {
             "os": "all",
-            "sha1": "07f3eb84b8f237e61744967d7aee1225efba25e6",
-            "size": 67975400,
-            "url": "https://dl.google.com/android/repository/platform-TiramisuPrivacySandbox_r08.zip"
+            "sha1": "6bc5e85cd2ea54df4dae036ff20fb0e889a6835e",
+            "size": 67663071,
+            "url": "https://dl.google.com/android/repository/platform-TiramisuPrivacySandbox_r09.zip"
           }
         ],
         "displayName": "Android SDK Platform TiramisuPrivacySandbox",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "platforms",
         "path": "platforms/android-TiramisuPrivacySandbox",
         "revision": "TiramisuPrivacySandbox",
         "revision-details": {
-          "major:0": "8"
+          "major:0": "9"
         },
         "type-details": {
           "api-level:0": "33",
@@ -15698,6 +17859,69 @@
             }
           }
         }
+      },
+      "UpsideDownCake": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "a0fe6b17b8ea26c72f4a1feb0234aab6b20fd4be",
+            "size": 63483782,
+            "url": "https://dl.google.com/android/repository/platform-UpsideDownCake_r04.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform UpsideDownCake",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "obsolete": "true",
+        "path": "platforms/android-UpsideDownCake",
+        "revision": "UpsideDownCake",
+        "revision-details": {
+          "major:0": "4"
+        },
+        "type-details": {
+          "api-level:0": "33",
+          "codename:1": "UpsideDownCake",
+          "element-attributes": {
+            "xsi:type": "ns11:platformDetailsType"
+          },
+          "layoutlib:2": {
+            "element-attributes": {
+              "api": "15"
+            }
+          }
+        }
+      },
+      "UpsideDownCakePrivacySandbox": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "e8d6d1516e2ac0feb0e0ec20bcfb2fce483b961e",
+            "size": 63911495,
+            "url": "https://dl.google.com/android/repository/platform-UpsideDownCakePrivacySandbox_r01.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform UpsideDownCakePrivacySandbox",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-UpsideDownCakePrivacySandbox",
+        "revision": "UpsideDownCakePrivacySandbox",
+        "revision-details": {
+          "major:0": "1"
+        },
+        "type-details": {
+          "api-level:0": "33",
+          "codename:1": "UpsideDownCakePrivacySandbox",
+          "element-attributes": {
+            "xsi:type": "ns11:platformDetailsType"
+          },
+          "layoutlib:2": {
+            "element-attributes": {
+              "api": "15"
+            }
+          }
+        }
       }
     },
     "skiaparser": {
@@ -15723,6 +17947,7 @@
           }
         ],
         "displayName": "Layout Inspector image server for API 31 and T",
+        "last-available-day": 19469,
         "license": "android-sdk-license",
         "name": "skiaparser",
         "path": "skiaparser/3",
@@ -15740,24 +17965,25 @@
         "archives": [
           {
             "os": "linux",
-            "sha1": "36e2c30f7745f4c062129a0fd549d29ab991db41",
-            "size": 6767192,
-            "url": "https://dl.google.com/android/repository/skiaparser-7478287-linux.zip"
+            "sha1": "7fea0f8b5abaaa73b35e7703e54b641d0e60bba1",
+            "size": 6728126,
+            "url": "https://dl.google.com/android/repository/skiaparser-9858946-linux-x64.zip"
           },
           {
             "os": "macosx",
-            "sha1": "04a834a8ab3efd4612300da7cef7f43a6b257468",
-            "size": 7401688,
-            "url": "https://dl.google.com/android/repository/skiaparser-7478287-mac.zip"
+            "sha1": "d08e3a0dab58ad944c837e331f5b2088a7b683eb",
+            "size": 7846286,
+            "url": "https://dl.google.com/android/repository/skiaparser-9858946-mac-x64.zip"
           },
           {
             "os": "windows",
-            "sha1": "567f24512f9d9487a3b948032a136261f5d59c92",
-            "size": 6532776,
-            "url": "https://dl.google.com/android/repository/skiaparser-7478287-win.zip"
+            "sha1": "316c255048f2164a8a3e57692b5b232d2db0963f",
+            "size": 7336670,
+            "url": "https://dl.google.com/android/repository/skiaparser-9858946-win-x64.zip"
           }
         ],
         "displayName": "Layout Inspector image server for API S",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "skiaparser",
         "path": "skiaparser/2",
@@ -15793,6 +18019,7 @@
           }
         ],
         "displayName": "Layout Inspector image server for API 29-30",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "skiaparser",
         "path": "skiaparser/1",
@@ -15818,6 +18045,7 @@
           }
         ],
         "displayName": "Sources for Android 14",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "obsolete": "true",
@@ -15845,6 +18073,7 @@
           }
         ],
         "displayName": "Sources for Android 15",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-15",
@@ -15871,6 +18100,7 @@
           }
         ],
         "displayName": "Sources for Android 16",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-16",
@@ -15897,6 +18127,7 @@
           }
         ],
         "displayName": "Sources for Android 17",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-17",
@@ -15923,6 +18154,7 @@
           }
         ],
         "displayName": "Sources for Android 18",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-18",
@@ -15949,6 +18181,7 @@
           }
         ],
         "displayName": "Sources for Android 19",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-19",
@@ -15975,6 +18208,7 @@
           }
         ],
         "displayName": "Sources for Android 20",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-20",
@@ -16001,6 +18235,7 @@
           }
         ],
         "displayName": "Sources for Android 21",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-21",
@@ -16027,6 +18262,7 @@
           }
         ],
         "displayName": "Sources for Android 22",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-22",
@@ -16053,6 +18289,7 @@
           }
         ],
         "displayName": "Sources for Android 23",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-23",
@@ -16079,6 +18316,7 @@
           }
         ],
         "displayName": "Sources for Android 24",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-24",
@@ -16105,6 +18343,7 @@
           }
         ],
         "displayName": "Sources for Android 25",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-25",
@@ -16131,6 +18370,7 @@
           }
         ],
         "displayName": "Sources for Android 26",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-26",
@@ -16157,6 +18397,7 @@
           }
         ],
         "displayName": "Sources for Android 27",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-27",
@@ -16183,6 +18424,7 @@
           }
         ],
         "displayName": "Sources for Android 28",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-28",
@@ -16209,6 +18451,7 @@
           }
         ],
         "displayName": "Sources for Android 29",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-29",
@@ -16235,6 +18478,7 @@
           }
         ],
         "displayName": "Sources for Android 30",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-30",
@@ -16261,6 +18505,7 @@
           }
         ],
         "displayName": "Sources for Android 31",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-31",
@@ -16287,6 +18532,7 @@
           }
         ],
         "displayName": "Sources for Android 32",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-32",
@@ -16313,6 +18559,7 @@
           }
         ],
         "displayName": "Sources for Android 33",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "sources",
         "path": "sources/android-33",
@@ -16328,6 +18575,33 @@
             "xsi:type": "ns11:sourceDetailsType"
           }
         }
+      },
+      "34": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "41f67d064dbe84f32a763d65a05c40285c2fbb70",
+            "size": 53812451,
+            "url": "https://dl.google.com/android/repository/sources-34_r01.zip"
+          }
+        ],
+        "displayName": "Sources for Android 34",
+        "last-available-day": 19579,
+        "license": "android-sdk-license",
+        "name": "sources",
+        "path": "sources/android-34",
+        "revision": "34",
+        "revision-details": {
+          "major:0": "1"
+        },
+        "type-details": {
+          "api-level:0": "34",
+          "codename:1": {
+          },
+          "element-attributes": {
+            "xsi:type": "ns11:sourceDetailsType"
+          }
+        }
       }
     },
     "tools": {
@@ -16373,6 +18647,7 @@
           }
         },
         "displayName": "Android SDK Tools",
+        "last-available-day": 19579,
         "license": "android-sdk-license",
         "name": "tools",
         "obsolete": "true",
diff --git a/pkgs/development/mobile/androidenv/tools.nix b/pkgs/development/mobile/androidenv/tools.nix
index 091b94489479b..0177d8e6f7b77 100644
--- a/pkgs/development/mobile/androidenv/tools.nix
+++ b/pkgs/development/mobile/androidenv/tools.nix
@@ -6,7 +6,9 @@ deployAndroidPackage {
   nativeBuildInputs = [ makeWrapper ]
     ++ lib.optionals (os == "linux") [ autoPatchelfHook ];
   buildInputs = lib.optional (os == "linux") (
-      (with pkgs; [ glibc freetype fontconfig fontconfig.lib])
+      (with pkgs; [ glibc freetype fontconfig fontconfig.lib
+        stdenv.cc.cc.libgcc or null # fix for https://github.com/NixOS/nixpkgs/issues/226357
+      ])
       ++ (with pkgs.xorg; [ libX11 libXrender libXext ])
       ++ (with pkgsi686Linux; [ glibc xorg.libX11 xorg.libXrender xorg.libXext fontconfig.lib freetype zlib ])
     );
diff --git a/pkgs/development/mobile/cordova/default.nix b/pkgs/development/mobile/cordova/default.nix
new file mode 100644
index 0000000000000..0a4fec58c2c56
--- /dev/null
+++ b/pkgs/development/mobile/cordova/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "cordova";
+  version = "12.0.0";
+
+  src = fetchFromGitHub {
+    owner = "apache";
+    repo = "cordova-cli";
+    rev = version;
+    hash = "sha256-fEV7NlRcRpyeRplsdXHI2U4/89DsvKQpVwHD5juiNPo=";
+  };
+
+  npmDepsHash = "sha256-ZMxZiwCgqzOBwDXeTfIEwqFVdM9ysWeE5AbX7rUdwIc=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    description = "Build native mobile applications using HTML, CSS and JavaScript";
+    homepage = "https://github.com/apache/cordova-cli";
+    license = lib.licenses.asl20;
+    mainProgram = "cordova";
+    maintainers = with lib.maintainers; [ flosse ];
+  };
+}
diff --git a/pkgs/development/mobile/fdroidcl/default.nix b/pkgs/development/mobile/fdroidcl/default.nix
new file mode 100644
index 0000000000000..6b6f676a8d4f0
--- /dev/null
+++ b/pkgs/development/mobile/fdroidcl/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, android-tools
+}:
+
+buildGoModule rec {
+  pname = "fdroidcl";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "mvdan";
+    repo = "fdroidcl";
+    rev = "v${version}";
+    hash = "sha256-tqhs3b/DHfnGOm9qcM56NSzt1GJflJfbemkp7+nXbug=";
+  };
+
+  patches = [ ./go_mod_version_update.patch ];
+
+  vendorHash = "sha256-BWbwhHjfmMjiRurrZfW/YgIzJUH/hn+7qonD0BcTLxs=";
+
+  postPatch = ''
+    substituteInPlace adb/{server,device}.go \
+      --replace 'exec.Command("adb"' 'exec.Command("${android-tools}/bin/adb"'
+  '';
+
+  # TestScript/search attempts to connect to fdroid
+  doCheck = false;
+
+  meta = with lib; {
+    description = "F-Droid command line interface written in Go";
+    homepage = "https://github.com/mvdan/fdroidcl";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ aleksana ];
+  };
+}
diff --git a/pkgs/development/mobile/fdroidcl/go_mod_version_update.patch b/pkgs/development/mobile/fdroidcl/go_mod_version_update.patch
new file mode 100644
index 0000000000000..079ea02c0a15e
--- /dev/null
+++ b/pkgs/development/mobile/fdroidcl/go_mod_version_update.patch
@@ -0,0 +1,47 @@
+diff --git a/go.mod b/go.mod
+index a482585..5c836dd 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,10 +1,19 @@
+ module mvdan.cc/fdroidcl
+ 
+-go 1.16
++go 1.18
+ 
+ require (
+ 	github.com/kr/pretty v0.3.0
+ 	github.com/rogpeppe/go-internal v1.9.0
+ 	github.com/schollz/progressbar/v3 v3.13.0
+-	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
++)
++
++require (
++	github.com/kr/text v0.2.0 // indirect
++	github.com/mattn/go-runewidth v0.0.14 // indirect
++	github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
++	github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e // indirect
++	github.com/rivo/uniseg v0.4.3 // indirect
++	golang.org/x/sys v0.4.0 // indirect
++	golang.org/x/term v0.4.0 // indirect
+ )
+diff --git a/go.sum b/go.sum
+index 7befc16..d8523cb 100644
+--- a/go.sum
++++ b/go.sum
+@@ -23,8 +23,6 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
+ github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw=
+ github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
+ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+-github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg=
+-github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o=
+ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+ github.com/schollz/progressbar/v3 v3.13.0 h1:9TeeWRcjW2qd05I8Kf9knPkW4vLM/hYoa6z9ABvxje8=
+@@ -38,7 +36,4 @@ golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg=
+ golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+-gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=
+ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index 0659046950014..53c1dc13cdc93 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "genymotion";
-  version = "3.3.3";
+  version = "3.5.0";
   src = fetchurl {
     url = "https://dl.genymotion.com/releases/genymotion-${version}/genymotion-${version}-linux_x64.bin";
     name = "genymotion-${version}-linux_x64.bin";
-    sha256 = "sha256-8NJgYILOR63tWZc3tHDie79uM1hBnAwJNwGp/h2RHCo=";
+    sha256 = "sha256-rZyTdVn0mnNLrGPehah62/AvTgUpNEtzn+Di1O3G3Sg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/mobile/ios-webkit-debug-proxy/0001-Don-t-compile-examples.patch b/pkgs/development/mobile/ios-webkit-debug-proxy/0001-Don-t-compile-examples.patch
new file mode 100644
index 0000000000000..2ab6554d9ac49
--- /dev/null
+++ b/pkgs/development/mobile/ios-webkit-debug-proxy/0001-Don-t-compile-examples.patch
@@ -0,0 +1,23 @@
+diff --git a/Makefile.am b/Makefile.am
+index 52dc7a8..407c056 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,4 +2,4 @@
+ # Copyright 2012 Google Inc. wrightt@google.com
+ 
+ AUTOMAKE_OPTIONS = foreign
+-SUBDIRS = src include examples
++SUBDIRS = src include
+diff --git a/configure.ac b/configure.ac
+index ac2a278..a4104b7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -82,7 +82,7 @@ fi
+ 
+ AC_CHECK_FUNCS([memmove memset regcomp select socket strcasecmp strncasecmp strchr strdup strndup strrchr strstr strtol strcasestr getline])
+ 
+-AC_CONFIG_FILES([Makefile src/Makefile include/Makefile examples/Makefile])
++AC_CONFIG_FILES([Makefile src/Makefile include/Makefile])
+ 
+ CFLAGS="${CFLAGS} -Wall -Werror"
+ 
diff --git a/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix b/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
new file mode 100644
index 0000000000000..4c9a5a4e35e12
--- /dev/null
+++ b/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, autoconf
+, automake
+, fetchFromGitHub
+, fetchpatch
+, lib
+, libimobiledevice
+, libusb1
+, libplist
+, libtool
+, openssl
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ios-webkit-debug-proxy";
+  version = "1.9.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-cZ/p/aWET/BXKDrD+qgR+rfTISd+4jPNQFuV8klSLUo=";
+  };
+
+  patches = [
+    # OpenSSL 3.0 compatibility
+    (fetchpatch {
+      url = "https://github.com/google/ios-webkit-debug-proxy/commit/5ba30a2a67f39d25025cadf37c0eafb2e2d2d0a8.patch";
+      hash = "sha256-2b9BjG9wkqO+ZfoBYYJvD2Db5Kr0F/MxKMTRsI0ea3s=";
+    })
+    (fetchpatch {
+      name = "libplist-2.3.0-compatibility.patch";
+      url = "https://github.com/google/ios-webkit-debug-proxy/commit/94e4625ea648ece730d33d13224881ab06ad0fce.patch";
+      hash = "sha256-2deFAKIcNPDd1loOSe8pWZWs9idIE5Q2+pLkoVQrTLg=";
+    })
+    # Examples compilation breaks with --disable-static, see https://github.com/google/ios-webkit-debug-proxy/issues/399
+    ./0001-Don-t-compile-examples.patch
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ autoconf automake libtool pkg-config ];
+  buildInputs = [ libimobiledevice libusb1 libplist openssl ];
+
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector)";
+    longDescription = ''
+      The ios_webkit_debug_proxy (aka iwdp) proxies requests from usbmuxd
+      daemon over a websocket connection, allowing developers to send commands
+      to MobileSafari and UIWebViews on real and simulated iOS devices.
+    '';
+    homepage = "https://github.com/google/ios-webkit-debug-proxy";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.abustany ];
+  };
+}
diff --git a/pkgs/development/mobile/maestro/default.nix b/pkgs/development/mobile/maestro/default.nix
index 9427e3d5d5927..2bc34bfcf4350 100644
--- a/pkgs/development/mobile/maestro/default.nix
+++ b/pkgs/development/mobile/maestro/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "maestro";
-  version = "1.25.0";
+  version = "1.32.0";
 
   src = fetchurl {
     url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip";
-    sha256 = "0rkm2rgbbr4rbycg2kz5in2wjklv23jr7ms5p49j3bpa6nkv4jq3";
+    sha256 = "1bhyg0w6dwgba0ykk898dxs661imcx2s6si3ldwgg01pmxpcsm30";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/mobile/titanium-alloy/default.nix b/pkgs/development/mobile/titanium-alloy/default.nix
new file mode 100644
index 0000000000000..bb45289e3f40a
--- /dev/null
+++ b/pkgs/development/mobile/titanium-alloy/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "alloy";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "tidev";
+    repo = "alloy";
+    rev = version;
+    hash = "sha256-s1hAbbUy7k/GacBIk8OMD48/1IUcRcpV3LnrCCZim1A=";
+  };
+
+  npmDepsHash = "sha256-YNyFrO6+oFluyk3TlUf/0vdHrgTJ3l5DN801wnpBa6s=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    changelog = "https://github.com/tidev/alloy/blob/${src.rev}/CHANGELOG.md";
+    description = "MVC framework for the Appcelerator Titanium SDK";
+    homepage = "https://github.com/tidev/alloy";
+    license = lib.licenses.asl20;
+    mainProgram = "alloy";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/mobile/titanium/default.nix b/pkgs/development/mobile/titanium/default.nix
new file mode 100644
index 0000000000000..0318ceeb18eb0
--- /dev/null
+++ b/pkgs/development/mobile/titanium/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "titanium";
+  version = "6.1.1";
+
+  src = fetchFromGitHub {
+    owner = "tidev";
+    repo = "titanium-cli";
+    rev = "v${version}";
+    hash = "sha256-eJHf4vbapCaIVk0Xc0sml14jkFCsS/Gv7ftaFakB5rI=";
+  };
+
+  npmDepsHash = "sha256-60r+zqUCSDvQgrjg5SGfZiv87AoGx1XcnbW1ki1sbCM=";
+
+  dontNpmBuild = true;
+
+  meta = {
+    changelog = "https://github.com/tidev/titanium-cli/blob/${src.rev}/CHANGELOG.md";
+    description = "Command Line Tool for creating and building Titanium Mobile applications and modules";
+    homepage = "https://github.com/tidev/titanium-cli";
+    license = lib.licenses.asl20;
+    mainProgram = "titanium";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix
index fa2eeae00b559..42b70c64abe9b 100644
--- a/pkgs/development/mobile/titaniumenv/build-app.nix
+++ b/pkgs/development/mobile/titaniumenv/build-app.nix
@@ -158,8 +158,7 @@ stdenv.mkDerivation ({
 
   installPhase = ''
     ${if target == "android" then ''
-      ${if release then ""
-      else ''
+      ${lib.optionalString (!release) ''
         cp "$(ls build/android/bin/*.apk | grep -v '\-unsigned.apk')" $out
       ''}
 
diff --git a/pkgs/development/mobile/titaniumenv/default.nix b/pkgs/development/mobile/titaniumenv/default.nix
index 151502a5d1602..2f1459ef3e048 100644
--- a/pkgs/development/mobile/titaniumenv/default.nix
+++ b/pkgs/development/mobile/titaniumenv/default.nix
@@ -12,8 +12,8 @@ rec {
     };
 
   buildApp = import ./build-app.nix {
-    inherit (pkgs) stdenv lib python which file jdk nodejs;
-    inherit (pkgs.nodePackages) alloy titanium;
+    inherit (pkgs) stdenv lib python which file jdk nodejs titanium;
+    alloy = pkgs.titanium-alloy;
     inherit (androidenv) composeAndroidPackages;
     inherit (xcodeenv) composeXcodeWrapper;
     inherit titaniumsdk;
diff --git a/pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix b/pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix
index 0a469da418a1c..f1ac578f26ef4 100644
--- a/pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix
+++ b/pkgs/development/mobile/xcodeenv/compose-xcodewrapper.nix
@@ -1,10 +1,15 @@
-{stdenv}:
-{version ? "11.1", xcodeBaseDir ? "/Applications/Xcode.app"}:
+{ stdenv, lib }:
+{ version ? "11.1"
+, allowHigher ? false
+, xcodeBaseDir ? "/Applications/Xcode.app" }:
 
 assert stdenv.isDarwin;
 
 stdenv.mkDerivation {
-  name = "xcode-wrapper-"+version;
+  pname = "xcode-wrapper${lib.optionalString allowHigher "-plus"}";
+  inherit version;
+  # Fails in sandbox. Use `--option sandbox relaxed` or `--option sandbox false`.
+  __noChroot = true;
   buildCommand = ''
     mkdir -p $out/bin
     cd $out/bin
@@ -24,9 +29,15 @@ stdenv.mkDerivation {
     ln -s "${xcodeBaseDir}/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
 
     # Check if we have the xcodebuild version that we want
-    if [ -z "$($out/bin/xcodebuild -version | grep -x 'Xcode ${version}')" ]
+    currVer=$($out/bin/xcodebuild -version | head -n1)
+    ${if allowHigher then ''
+    if [ -z "$(printf '%s\n' "${version}" "$currVer" | sort -V | head -n1)""" != "${version}" ]
+    '' else ''
+    if [ -z "$(echo $currVer | grep -x 'Xcode ${version}')" ]
+    ''}
     then
-        echo "We require xcodebuild version: ${version}"
+        echo "We require xcodebuild version${if allowHigher then " or higher" else ""}: ${version}"
+        echo "Instead what was found: $currVer"
         exit 1
     fi
   '';
diff --git a/pkgs/development/mobile/xcodeenv/default.nix b/pkgs/development/mobile/xcodeenv/default.nix
index 90642ca7d9ac5..f63ed63c04799 100644
--- a/pkgs/development/mobile/xcodeenv/default.nix
+++ b/pkgs/development/mobile/xcodeenv/default.nix
@@ -1,15 +1,9 @@
-{ stdenv, lib }:
+{ callPackage }:
 
 rec {
-  composeXcodeWrapper = import ./compose-xcodewrapper.nix {
-    inherit stdenv;
-  };
+  composeXcodeWrapper = callPackage ./compose-xcodewrapper.nix { };
 
-  buildApp = import ./build-app.nix {
-    inherit stdenv lib composeXcodeWrapper;
-  };
+  buildApp = callPackage ./build-app.nix { inherit composeXcodeWrapper; };
 
-  simulateApp = import ./simulate-app.nix {
-    inherit stdenv lib composeXcodeWrapper;
-  };
+  simulateApp = callPackage ./simulate-app.nix { inherit composeXcodeWrapper; };
 }