Skip to content

[build] Update stable Android SDK packages - #12371

Open
jonathanpeppers wants to merge 8 commits into
mainfrom
jonathanpeppers-update-androidsdk-packages
Open

[build] Update stable Android SDK packages#12371
jonathanpeppers wants to merge 8 commits into
mainfrom
jonathanpeppers-update-androidsdk-packages

Conversation

@jonathanpeppers

@jonathanpeppers jonathanpeppers commented Aug 13, 2026

Copy link
Copy Markdown
Member

Summary

  • update stable Android SDK tools, emulator, CMake, sources, and existing platform package revisions
  • add architecture-specific command-line tools support for Apple Silicon
  • retain Android NDK r28c and Android platform 37.0 without adding newer API levels
  • update all affected SHA-256 package hashes
  • keep Android sources in the API-level directory expected by the build
  • fix CMake 4 source-path quoting for Windows native builds
  • track every substituted SDK property in a content-based cache so shipped SDK metadata is regenerated when package versions change
  • isolate workload installation from persistent NuGet caches and pre-seed it from the SDK package produced by the current build, preventing reused PR versions from resolving older same-version feed content
  • omit the optional AVD device profile unless explicitly configured because command-line tools 22 rejects the API 29 system image's absent devices.xml

Testing

  • dotnet build .\build-tools\Xamarin.Android.Tools.BootstrapTasks\Xamarin.Android.Tools.BootstrapTasks.csproj -v:minimal
  • dotnet build .\src\androidsdk\androidsdk.csproj --no-restore -v:minimal
  • dotnet build .\build-tools\Xamarin.Android.Tools.BootstrapTasks\Xamarin.Android.Tools.BootstrapTasks.csproj -c Release -v:minimal
  • dotnet build .\src\native\cmake-config\cmake-config.csproj -c Release -v:minimal
  • built native-mono.csproj from clean outputs with CMake 3.30.3 and 4.1.2 using NDK r28c; all 28 .so outputs across four ABIs had identical sizes and SHA-256 hashes
  • exercised the Windows native CMake configure target through RunParallelCmds; preset discovery succeeded with CMake 4.1.2
  • verified _GenerateXACommonProps regenerates an existing SDK props file across a simulated build-tools 36.0.0 → 37.0.0 transition
  • inspected the exact dependency, binding, workload-extraction, and emulator binlog attachments from Azure builds 1552260, 1552452, 1552621, 1552729, and 1552892
  • confirmed all SDK packages produced by build 1552892 contain build-tools 37.0.0; its workload binlog showed both the PR SDK and released 36.1.69 packs being installed, identifying stale same-version feed content as the remaining metadata source
  • reproduced command-line tools 22 AVD creation against the exact API 29 r08 system image: --device pixel_4 emits the CI devices.xml errors, while omitting it succeeds cleanly
  • verified a PackageDownload restore from the current build artifact seeds an isolated NuGet package cache with SDK metadata containing build-tools 37.0.0

Update the Android SDK package catalog, versions, and SHA-256 hashes while retaining NDK r28c and Android platform 37.0.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Copilot AI lite review requested due to automatic review settings August 13, 2026 14:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the in-repo Android SDK “bootstrap” package catalog used by src/androidsdk/ so the toolchain downloads (platforms, tools, emulator, CMake, sources) match newer stable revisions, including introducing separate macOS command-line tools archives per architecture.

Changes:

  • Bumped platform package revisions (API 28–37) and updated corresponding SHA-256 hashes.
  • Updated toolchain component versions/hashes (build-tools, platform-tools, command-line tools, emulator, CMake) and added a macOS arm64 command-line tools package entry.
  • Switched the downloaded “sources” zip to the latest stable platform revision.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/androidsdk/androidsdk.targets Updates platform catalog entries and toolchain package download list (including macOS arch-specific cmdline-tools and new sources zip).
Configuration.props Bumps tool versions (CMake/build-tools/platform-tools/cmdline-tools/emulator) and refreshes SHA-256 hashes, adding a new macOS arm64 cmdline-tools hash.

Comment thread src/androidsdk/androidsdk.targets Outdated
Comment thread src/androidsdk/androidsdk.targets Outdated
Keep Android sources in the API-level directory expected by the build and avoid escaping CMake source-path quotes on Windows.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Seed workload installation from the SDK package produced by the current build so reused PR versions cannot resolve stale feed content. Omit the avdmanager device profile unless tests explicitly request one.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
The deterministic fix is pre-seeding the isolated package directory from the current build. The workload install no-cache flag did not prevent same-version feed substitution and is unnecessary.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 99896160-5e3c-4560-9ab4-026504cdd4e9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants