-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Labels
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 feedManifestFeed.ResolvePackage(packageId, os, arch)— get download URL + SHA-1 for a specific packageManifestFeed.GetJdkVersions()— list available JDK versions with download infoManifestFeed.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
- JDK installation (Add JDK installation support (move from android-platform-support) #270) and SDK bootstrap (Add SDK bootstrap and sdkmanager wrapper (move from android-platform-support) #271) depend on this
Related
- MAUI DevTools spec §6.8.1: Manifest-Driven Downloads & Checksum Verification
- Add JDK installation support (move from android-platform-support) #270 (JDK installation)
- Add SDK bootstrap and sdkmanager wrapper (move from android-platform-support) #271 (SDK bootstrap)
Reactions are currently unavailable