Skip to content
This repository was archived by the owner on Jul 13, 2026. It is now read-only.
This repository was archived by the owner on Jul 13, 2026. It is now read-only.

Add SDK bootstrap and sdkmanager wrapper (move from android-platform-support) #271

Description

@rmarinho

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:

  1. Bootstrap: Download and unzip Android command-line tools from the manifest feed (no hardcoded URLs)
  2. 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

  1. Read manifest feed → resolve command-line tools URL + SHA-1 checksum for current OS/arch
  2. Download & verify command-line tools archive
  3. Unzip to \/cmdline-tools/latest/
  4. Use the now-available sdkmanager for 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

Related

  • MAUI DevTools spec §6.8: Shared Libraries & Code Reuse
  • MAUI DevTools spec §6.8.1: Manifest-Driven Downloads & Checksum Verification

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions