-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
Description
Summary
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
sdkmanagerCLI 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 tocmdline-tools/latest/SdkManager.InstallAsync(packages)— invokesdkmanagerto install packagesSdkManager.UninstallAsync(packages)— invokesdkmanagerto uninstall packagesSdkManager.ListAsync()— list installed and available packagesSdkManager.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
sdkmanagerfor all subsequent operations
Manifest Feeds
- Xamarin Android Manifest:
https://aka.ms/AndroidManifestFeed/d{version}— command-line tools, platform-tools, emulator - Google SDK Repository:
https://dl.google.com/android/repository/repository2-3.xml— platforms, build-tools, system images
All downloads must be SHA-1 verified against manifest checksums before installation.
Consumer
- MAUI DevTools CLI — see MAUI DevTools Spec PR
Related
- MAUI DevTools spec §6.8: Shared Libraries & Code Reuse
- MAUI DevTools spec §6.8.1: Manifest-Driven Downloads & Checksum Verification
Reactions are currently unavailable