Skip to content

Remove legacy Android tooling assemblies - #12927

Merged
jonathanpeppers merged 2 commits into
mainfrom
jonathanpeppers-remove-legacy-android-tools
Oct 1, 2026
Merged

jonathanpeppers merged 2 commits into
mainfrom
jonathanpeppers-remove-legacy-android-tools

Conversation

@jonathanpeppers

@jonathanpeppers jonathanpeppers commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Remove the Mono.AndroidTools and Xamarin.AndroidTools projects and their compiled assemblies from the workload SDK pack.
  • Migrate installer SDK/JDK discovery and macOS directory-size process execution to Xamarin.Android.Tools.AndroidSdk, preserving first-time installation when the SDK or JDK is absent.
  • Remove obsolete solution, build, packaging, and localization references; add installer discovery regression coverage.

Breaking change: Tools referencing Mono.AndroidTools.dll or Xamarin.AndroidTools.dll directly must migrate to the supported shared Android SDK tooling APIs. Generated non-English .resx files under src/Xamarin.AndroidTools/Properties/ remain untouched per repository localization policy; they are not compiled or packaged.

Validation

  • On the current parent head (d2f72e1c6a): installer task graph builds; focused AndroidSdkInfoTests and AndroidSdkInstallerTests passed (15 passed, 2 skipped).
  • SDK pack item evaluation: zero legacy DLL/PDB entries; shared SDK and installer assemblies retained.
  • Unverified limitation: the full standalone AndroidSdk test suite hung for more than three minutes on Windows and was stopped. Its only output was the test assembly start banner (A total of 1 test files matched the specified pattern); no last test name, result summary, or useful diagnostic was captured. The focused tests above passed, but the full suite has not been verified against the current parent head. An earlier parent revision passed 397 tests with 19 skipped; that result does not establish the current revision's full-suite status.

Stacked on #12916 (which follows merged #12906).

Copilot AI lite review requested due to automatic review settings September 25, 2026 21:03
@jonathanpeppers
jonathanpeppers added this pull request to stack #12917 September 25, 2026 21:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Moderate test coverage gaps remain for absent SDK/JDK paths and macOS du failure and argument handling.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Removes legacy Android tooling assemblies and migrates installer SDK/JDK discovery and macOS directory-size handling to shared Android SDK tooling.

Changes:

  • Deletes obsolete tooling projects, sources, packaging, and references.
  • Adds installer-safe SDK/JDK discovery APIs and tests.
  • Updates macOS process execution and documentation.
File Summary
tests/​Xamarin.Android.Tools.AndroidSdk-Tests/​Xamarin.Android.Tools.AndroidSdk-Tests.csproj References installer project.
tests/​Xamarin.Android.Tools.AndroidSdk-Tests/​AndroidSdkInstallerTests.cs Adds installer discovery coverage.
tests/​Xamarin.Android.Tools.AndroidSdk-Tests/​AndroidSdkInfoTests.cs Tests SDK/JDK discovery.
tests/​Xamarin.Android.Tools.AndroidSdk-Tests/​AndroidDeviceExtensionsTests.cs Removes obsolete tests.
src/​Xamarin.Installer.Build.Tasks/​Xamarin.Installer.Build.Tasks.csproj Removes legacy references.
src/​Xamarin.Installer.AndroidSDK/​Xamarin.Installer.AndroidSDK/​DirectorySizeMonitoringTimer.cs Migrates macOS process execution.
src/​Xamarin.Installer.AndroidSDK/​Xamarin.Installer.AndroidSDK/​AndroidSDKInstaller.cs Uses shared SDK/JDK discovery.
src/​Xamarin.Installer.AndroidSDK/​Xamarin.Installer.AndroidSDK.csproj References shared tooling.
src/​Xamarin.AndroidTools/​Xamarin.AndroidTools.csproj Deletes obsolete project.
src/​Xamarin.AndroidTools/​Utilities/​SdkBuildProperties.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Utilities/​JdkProperties.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Sdks/​MonoDroidSdkWindows.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Sdks/​MonoDroidSdkUnix.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Sdks/​MonoDroidSdkBase.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Properties/​Resources.resx Deletes obsolete resources.
src/​Xamarin.AndroidTools/​Properties/​Resources.Designer.cs Deletes generated resources.
src/​Xamarin.AndroidTools/​ProcessUtils.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​OS.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​MonoDroidSdk.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​Java/​VersionCommandPacket.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​Java/​ReplyPacket.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​Java/​Packet.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​Java/​JdwpClient.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​Java/​CommandPacket.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​ExecutionConfiguration.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​DebuggingExtensions.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​Debugging/​DebuggerOptions.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​AssemblyInfo.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​AndroidVersion.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​AndroidTargetArch.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​AndroidSdkToolException.cs Deletes obsolete source.
src/​Xamarin.AndroidTools/​AndroidBuildToolsVersion.cs Deletes obsolete source.
src/​Xamarin.Android.Tools.AndroidSdk/​README.md Documents the breaking change.
src/​Xamarin.Android.Tools.AndroidSdk/​PublicAPI/​netstandard2.0/​PublicAPI.Unshipped.txt Records public API changes.
src/​Xamarin.Android.Tools.AndroidSdk/​PublicAPI/​net11.0/​PublicAPI.Unshipped.txt Records public API changes.
src/​Xamarin.Android.Tools.AndroidSdk/​PublicAPI/​net10.0/​PublicAPI.Unshipped.txt Records public API changes.
src/​Xamarin.Android.Tools.AndroidSdk/​AndroidSdkInfo.cs Adds installer-safe discovery.
src/​Xamarin.Android.Build.Debugging.Tasks/​Xamarin.Android.Build.Debugging.Tasks.csproj Removes obsolete exclusions.
src/​Xamarin.Android.Build.Debugging.Tasks/​Tasks/​FastDeploy.Adb.cs Updates legacy tooling comment.
src/​Mono.AndroidTools/​Util/​WrapperAsyncResult.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Util/​StreamExtensions.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Util/​ProcessArgumentBuilder.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Util/​Platform.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Util/​AggregateAsyncResult.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Mono.AndroidTools.csproj Deletes obsolete project.
src/​Mono.AndroidTools/​Internal/​TrackDeviceTask.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Internal/​AdbShellCommand.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Internal/​AdbOutputParsing.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Internal/​AdbClientTaskExtensions.cs Deletes obsolete source.
src/​Mono.AndroidTools/​IAndroidDevice.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AssemblyInfo.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AndroidLogger.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AndroidLogCatEntry.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AndroidInstalledPackage.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AndroidDiskInformation.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AndroidDeviceProperties.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AnalyticsService.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AdbServer.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AdbInstallFlags.cs Deletes obsolete source.
src/​Mono.AndroidTools/​AdbException.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbSyncNotification.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbSyncItem.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbSyncFile.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbSyncDirectory.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbSyncContext.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbFileMode.cs Deletes obsolete source.
src/​Mono.AndroidTools/​Adb/​AdbFileInfo.cs Deletes obsolete source.
Microsoft.Android.slnx Removes deleted projects.
Localize/​LocProject.json Removes obsolete localization mapping.
Documentation/​project-docs/​ExploringSources.md Updates project references.
Directory.Build.props Removes obsolete documentation references.
build-tools/​installers/​create-installers.targets Removes legacy packaging entries.
build-tools/​android-platform-support/​GitInfo.txt Deletes obsolete metadata.
build-tools/​android-platform-support/​AndroidTools.GitInfo.targets Deletes obsolete build targets.
Files not reviewed (1)
  • src/Xamarin.AndroidTools/Properties/Resources.Designer.cs: Generated file

Comment thread src/Xamarin.Android.Tools.AndroidSdk/AndroidSdkInfo.cs
@jonathanpeppers
jonathanpeppers force-pushed the jonathanpeppers-remove-legacy-android-tools branch 3 times, most recently from 5ef574c to b77d3f7 Compare September 30, 2026 16:09
Base automatically changed from jonathanpeppers-migrate-debugging-tasks-android-sdk to main September 30, 2026 20:12
jonathanpeppers and others added 2 commits September 30, 2026 15:12
Migrate installer discovery and process execution to shared SDK tools; remove obsolete projects and packaged DLLs. The assembly removal intentionally breaks existing binary consumers.

Co-authored-by: Copilot App <[email protected]>
Use a deterministic internal SDK locator in the regression test so machine-wide SDK and JDK installations cannot mask the first-run case.

Co-authored-by: Copilot App <[email protected]>
@jonathanpeppers
jonathanpeppers force-pushed the jonathanpeppers-remove-legacy-android-tools branch from b77d3f7 to 5e3f33d Compare September 30, 2026 20:12
@jonathanpeppers
jonathanpeppers merged commit 296ab55 into main Oct 1, 2026
41 of 44 checks passed
@jonathanpeppers
jonathanpeppers deleted the jonathanpeppers-remove-legacy-android-tools branch October 1, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants