You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 13, 2026. It is now read-only.
Add SDK bootstrap and management capabilities to Xamarin.Android.Tools.AndroidSdk so that consumers can programmatically set up an Android SDK from scratch and manage packages via sdkmanager.
Background
The android-platform-support (internal) repository has AndroidSDKInstaller with a full SDK install pipeline. For the public package, we want a simpler approach:
Bootstrap: Download and unzip Android command-line tools from the manifest feed (no hardcoded URLs)
Manage: Use the extracted sdkmanager CLI for package install/uninstall/list/update operations
This is needed by MAUI DevTools CLI (maui android install, maui android sdk install/list/uninstall).
Proposed API Surface
SdkManager.BootstrapAsync(targetPath) — download command-line tools from manifest feed, SHA-1 verify, unzip to cmdline-tools/latest/
SdkManager.InstallAsync(packages) — invoke sdkmanager to install packages
SdkManager.UninstallAsync(packages) — invoke sdkmanager to uninstall packages
SdkManager.ListAsync() — list installed and available packages
SdkManager.UpdateAsync() — update all installed packages
Bootstrap Flow
Read manifest feed → resolve command-line tools URL + SHA-1 checksum for current OS/arch
Download & verify command-line tools archive
Unzip to \/cmdline-tools/latest/
Use the now-available sdkmanager for all subsequent operations
Summary
Add SDK bootstrap and management capabilities to
Xamarin.Android.Tools.AndroidSdkso that consumers can programmatically set up an Android SDK from scratch and manage packages viasdkmanager.Background
The
android-platform-support(internal) repository hasAndroidSDKInstallerwith a full SDK install pipeline. For the public package, we want a simpler approach:sdkmanagerCLI for package install/uninstall/list/update operationsThis is needed by MAUI DevTools CLI (
maui android install,maui android sdk install/list/uninstall).Proposed API Surface
SdkManager.BootstrapAsync(targetPath)— download command-line tools from manifest feed, SHA-1 verify, unzip tocmdline-tools/latest/SdkManager.InstallAsync(packages)— invokesdkmanagerto install packagesSdkManager.UninstallAsync(packages)— invokesdkmanagerto uninstall packagesSdkManager.ListAsync()— list installed and available packagesSdkManager.UpdateAsync()— update all installed packagesBootstrap Flow
\/cmdline-tools/latest/sdkmanagerfor all subsequent operationsManifest Feeds
https://aka.ms/AndroidManifestFeed/d{version}— command-line tools, platform-tools, emulatorhttps://dl.google.com/android/repository/repository2-3.xml— platforms, build-tools, system imagesAll downloads must be SHA-1 verified against manifest checksums before installation.
Consumer
Related