diff --git a/Documentation/guides/building-apps/build-properties.md b/Documentation/guides/building-apps/build-properties.md
index 55ce6c6f304..be7378f3c1a 100644
--- a/Documentation/guides/building-apps/build-properties.md
+++ b/Documentation/guides/building-apps/build-properties.md
@@ -469,6 +469,15 @@ Support for this property was added in Xamarin.Android 5.1.
This property is `False` by default.
+## AndroidEnableObsoleteOverrideInheritance
+
+A boolean property that determines if bound methods automatically inherit `[Obsolete]`
+attributes from methods they override.
+
+Support for this property was added in .NET 8.
+
+This property is `True` by default.
+
## AndroidEnablePreloadAssemblies
A boolean property that controls
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Core.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Core.targets
index fd0674e9946..0344a49f591 100644
--- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Core.targets
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Core.targets
@@ -99,6 +99,7 @@ It is shared between "legacy" binding projects and .NET 5 projects.
EnableBindingNestedInterfaceTypes="$(AndroidBoundInterfacesContainTypes)"
EnableBindingInterfaceConstants="$(AndroidBoundInterfacesContainConstants)"
EnableRestrictToAttributes="$(AndroidEnableRestrictToAttributes)"
+ EnableObsoleteOverrideInheritance="$(AndroidEnableObsoleteOverrideInheritance)"
Nullable="$(Nullable)"
UseJavaLegacyResolver="$(_AndroidUseJavaLegacyResolver)"
NamespaceTransforms="@(AndroidNamespaceReplacement)"
diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.DefaultProperties.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.DefaultProperties.targets
index 2ec7baa7784..46a750a585b 100644
--- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.DefaultProperties.targets
+++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.DefaultProperties.targets
@@ -39,6 +39,7 @@
true
true
true
+ true
obsolete
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs b/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs
index 33a9cad54cc..9744f864c4c 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs
@@ -52,6 +52,7 @@ public class BindingsGenerator : AndroidDotnetToolTask
public bool EnableBindingNestedInterfaceTypes { get; set; }
public bool EnableBindingInterfaceConstants { get; set; }
public string EnableRestrictToAttributes { get; set; }
+ public bool EnableObsoleteOverrideInheritance { get; set; }
public string Nullable { get; set; }
public ITaskItem[] TransformFiles { get; set; }
@@ -217,6 +218,9 @@ protected override string GenerateCommandLineCommands ()
if (EnableBindingStaticAndDefaultInterfaceMethods)
features.Add ("default-interface-methods");
+ if (!EnableObsoleteOverrideInheritance)
+ features.Add ("do-not-fix-obsolete-overrides");
+
if (string.Equals (EnableRestrictToAttributes, "obsolete", StringComparison.OrdinalIgnoreCase))
features.Add ("restrict-to-attributes");