From f4e9588993b1509bf8bb01428029f86b8e099cd5 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov <47745270+al-cheb@users.noreply.github.com> Date: Mon, 30 May 2022 16:39:37 +0200 Subject: [PATCH] [Windows] Install latest Android cmdline-tools (#5619) * Install latest Android cmdline-tools * Use Get-ToolsetContent * Fix variable typo * replace variable * Fix Windows 2016 --- .../scripts/Installers/Install-AndroidSDK.ps1 | 23 +++++++++++++++---- images/win/toolsets/toolset-2016.json | 1 + images/win/toolsets/toolset-2019.json | 1 + images/win/toolsets/toolset-2022.json | 1 + 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/images/win/scripts/Installers/Install-AndroidSDK.ps1 b/images/win/scripts/Installers/Install-AndroidSDK.ps1 index 6f70e77a..7ec7812d 100644 --- a/images/win/scripts/Installers/Install-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Install-AndroidSDK.ps1 @@ -3,8 +3,24 @@ ## Desc: Install and update Android SDK and tools ################################################################################ -# install command-line tools -$cmdlineToolsUrl = "https://dl.google.com/android/repository/commandlinetools-win-7302050_latest.zip" +# get packages to install from the toolset +$androidToolset = (Get-ToolsetContent).android + +# install latest command-line tools +$cmdlineToolsVersion = $androidToolset."cmdline-tools" +if ($cmdlineToolsVersion -eq "latest") { + $googlePkgs = Invoke-RestMethod "https://dl.google.com/android/repository/repository2-1.xml" + $cmdlineToolsVersion = $googlePkgs.SelectSingleNode( + "//remotePackage[@path='cmdline-tools;latest']/archives/archive/complete/url[starts-with(text(), 'commandlinetools-win-')]" + ).'#text' + + if (-not $cmdlineToolsVersion) { + Write-Host "Failed to parse latest command-line tools version" + exit 1 + } +} + +$cmdlineToolsUrl = "https://dl.google.com/android/repository/${cmdlineToolsVersion}" $cmdlineToolsArchPath = Start-DownloadWithRetry -Url $cmdlineToolsUrl -Name "cmdline-tools.zip" $sdkInstallRoot = "C:\Program Files (x86)\Android\android-sdk" $sdkRoot = "C:\Android\android-sdk" @@ -50,9 +66,6 @@ Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` -AndroidSDKRootPath $sdkRoot ` -AndroidPackages "platform-tools" -# get packages to install from the toolset -$androidToolset = (Get-ToolsetContent).android - # get packages info $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 2abb4087..f0677d55 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -157,6 +157,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "19", "build_tools_min_version": "19.1.0", "extra_list": [ diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index d0ed50ab..88273c5d 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -159,6 +159,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "19", "build_tools_min_version": "19.1.0", "extra_list": [ diff --git a/images/win/toolsets/toolset-2022.json b/images/win/toolsets/toolset-2022.json index b9d8b5e6..6d384e7f 100644 --- a/images/win/toolsets/toolset-2022.json +++ b/images/win/toolsets/toolset-2022.json @@ -139,6 +139,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "27", "build_tools_min_version": "27.0.0", "extra_list": [