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