Add manifest feed parsing for SDK/JDK download resolution (move from android-platform-support)
- Dominant language
- C#
- Stars
- 2.1k
- Forks
- 579
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 252
Description
## 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
- **MAUI DevTools CLI** — see [MAUI DevTools Spec PR](https://github.com/dotnet/maui/pull/33865)
- JDK installation (#270) and SDK bootstrap (#271) depend on this
## Related
- MAUI DevTools spec §6.8.1: Manifest-Driven Downloads & Checksum Verification
- dotnet/android-tools#270 (JDK installation)
- dotnet/android-tools#271 (SDK bootstrap)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.