Skip to content

Add manifest feed parsing for SDK/JDK download resolution (move from android-platform-support) #273

@rmarinho

Description

@rmarinho

Summary

Add manifest feed parsing to Xamarin.Android.Tools.AndroidSdk so that consumers can resolve SDK/JDK download URLs and checksums from the Xamarin Android Manifest Feed and Google's repository without hardcoding URLs.

Background

The android-platform-support (internal) repository has XamarinRepository and GoogleV2Repository classes that parse:

  • Xamarin Android Manifest Feed (https://aka.ms/AndroidManifestFeed/d{version}) — JDK archives, platform-tools, command-line tools, emulator with per-platform/architecture URLs and SHA-1 checksums
  • Google SDK Repository (https://dl.google.com/android/repository/repository2-3.xml) — SDK platforms, build-tools, system images, add-ons with SHA-1 checksums

It also includes LocalManifestProvider for offline/CI manifest caching.

This is a prerequisite for the JDK installation (#270) and SDK bootstrap (#271) features — both need manifest feed parsing to resolve download URLs and verify checksums.

Proposed API Surface

  • ManifestFeed.LoadAsync(feedUrl) — download and parse a manifest feed
  • ManifestFeed.ResolvePackage(packageId, os, arch) — get download URL + SHA-1 for a specific package
  • ManifestFeed.GetJdkVersions() — list available JDK versions with download info
  • ManifestFeed.Cache(localPath) — cache manifest for offline use

Key Requirements

  • No hardcoded download URLs — all URLs come from manifest feeds
  • SHA-1 checksum verification — every download must be verified against manifest checksums
  • Manifest caching — support offline/CI scenarios with cached manifests
  • Cross-platform — resolve correct URLs for Windows/macOS/Linux and x64/aarch64

Consumer

Related

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions