diff --git a/Configuration.props b/Configuration.props
index 16c7932f302..c6f829d80d2 100644
--- a/Configuration.props
+++ b/Configuration.props
@@ -24,12 +24,11 @@
37
37.0
v17.0
-
+
+ 37.1
- 37.1
- 37.1
+ $(AndroidLatestStableApiLevel2)
+ $(AndroidLatestStableApiLevel2)
v17.1
$(AndroidLatestStableApiLevel)
diff --git a/Documentation/workflow/HowToAddNewApiLevel.md b/Documentation/workflow/HowToAddNewApiLevel.md
index ee49a7bc772..d7c0f3f4f38 100644
--- a/Documentation/workflow/HowToAddNewApiLevel.md
+++ b/Documentation/workflow/HowToAddNewApiLevel.md
@@ -547,7 +547,15 @@ the `csv` variable within `MainForm.FindAPILevelMethodsToolStripMenuItem_Click`.
Once this process is complete, use `Tools` -> `Export Final Method Map`, and create a *new*
`.csv` file, e.g. `new-methodmap.csv`.
-Copy the contents of `new-methodmap.csv` and *append* to `src/Mono.Android/methodmap.csv`.
+Note: `new-methodmap.csv` will likely use JNI syntax for package names, e.g. `android/widget`.
+`methodmap.csv` ***must*** use *Java* syntax for package names, e.g. `android.widget`.
+Use **sed**(1) to fix package names and nested class names:
+
+```sh
+sed 's,/,.,g;s/\$/./g' < src/Mono.Android/new-methodmap.csv > src/Mono.Android/new-methodmap2.csv
+```
+
+Copy the contents of `new-methodmap2.csv` and *append* to `src/Mono.Android/methodmap.csv`.
There may be redundant duplicate entries within `methodmap.csv`. Use the **uniq**(1)
Unix app to remove duplicate entries.
@@ -604,15 +612,10 @@ are automatically converted into `Android.Graphics.Color`.
### Finishing the method map
-The official `methodmap.csv` uses a slightly different format than the one used for enumification.
-
-Using BindingStudio:
-
-- Ensure the "new api level method map" CSV file is loaded.
-- Choose `Tools` -> `Export Final Method Map`
-- Choose a temporary file name
-- Open the temporary file, copy the contents to the bottom of the official:
- - dotnet/android/src/Mono.Android/methodmap.csv
+The normalized `new-methodmap2.csv` output appended in the **Mapping methods** section
+is the final method map. Do not export and append the BindingStudio output again, as
+the raw output uses JNI package and nested-type syntax that `methodmap.csv` does not
+support.
Congrats! Enumification is complete!
diff --git a/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/CheckApiCompatibility.cs b/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/CheckApiCompatibility.cs
index 44e726086be..0d2cb04598c 100644
--- a/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/CheckApiCompatibility.cs
+++ b/build-tools/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/CheckApiCompatibility.cs
@@ -80,7 +80,8 @@ public override bool Execute ()
// Check to see if Api has a previous Api defined.
if (!api_versions.TryGetValue (ApiLevel, out string previousApiLevel)) {
- LogError ($"Please add ApiLevel:{ApiLevel} to the list of supported apis.");
+ LogError ($"Please add ApiLevel:{ApiLevel} to the list of supported apis. Supported APIs include: " +
+ string.Join (", ", api_versions.Keys.OrderBy (k => k)) + ".");
return !Log.HasLoggedErrors;
}
diff --git a/build-tools/manifest-attribute-codegen/README.md b/build-tools/manifest-attribute-codegen/README.md
index e17ff3a81a9..167cd806276 100644
--- a/build-tools/manifest-attribute-codegen/README.md
+++ b/build-tools/manifest-attribute-codegen/README.md
@@ -47,12 +47,14 @@ These represent valid instances of entries and attributes respectively that can
For example, consider the following valid `AndroidManifest.xml` entry:
```xml
+
```
This is partially declared within the Android SDK `attrs_manifest.xml` as:
```xml
+
@@ -64,6 +66,7 @@ The `` element is represented in `metadata.xml` via both a
and an `` entry:
```xml
+
```
@@ -146,3 +149,37 @@ Optional metadata (note that if any metadata is set, `visible` is assumed to be
- **obsolete** - A string describing the reason for this member being `[Obsolete ("reason")]`
- **readonly** - Whether to generate the property with a `private set`; defaults to `false`
- **manualMap** - Whether to exclude the property from the `mapping` field used by `Xamarin.Android.Build.Tasks`; defaults to `false`
+
+# Examples
+
+Running the `GenerateManifestAttributes` target emits a message such as:
+
+```
+warning - Element: application.backupAgentProcess
+```
+
+The first question: is this *documented*? View the
+[Google documentation for ``](https://developer.android.com/guide/topics/manifest/application-element),
+which -- at this writing on 2026-Aug-17 -- is ***not*** documented.
+Consequently, we should ignore it, by updating `metadata.xml` to contain:
+
+```xml
+
+```
+
+Running the `GenerateManifestAttributes` target emits a message such as:
+
+```
+warning - Type:
+```
+
+Similar but different to the `Element: application.backupAgentProcess` message:
+a *Type* is an XML element, not an attribute on an XML element. As such, we would look at the
+[App manifest overview](https://developer.android.com/guide/topics/manifest/manifest-intro)
+documentation to see if *type* is mentioned in the left-hand sidebar to see if the element
+is documented. At this writing on 2026-Aug-17, ***no*** `` element is
+documented, and thus the Type (element) should be hidden by updating `metadata.xml` to contain:
+
+```xml
+
+```
diff --git a/build-tools/manifest-attribute-codegen/manifest-definition.xml b/build-tools/manifest-attribute-codegen/manifest-definition.xml
index 7e0cab91711..cc10d5b1041 100644
--- a/build-tools/manifest-attribute-codegen/manifest-definition.xml
+++ b/build-tools/manifest-attribute-codegen/manifest-definition.xml
@@ -100,6 +100,9 @@
+
+
+
manifest
@@ -119,6 +122,8 @@
+
+
manifest
@@ -153,6 +158,7 @@
+
manifest
@@ -229,6 +235,7 @@
+
provider
@@ -275,6 +282,8 @@
+
+
application
@@ -293,6 +302,7 @@
+
application
@@ -365,6 +375,7 @@
+
application
@@ -384,6 +395,7 @@
+
application
@@ -607,6 +619,7 @@
+
processes
@@ -683,4 +696,31 @@
manifest
+
+ permission
+
+
+
+
+ uses-permission
+
+
+
+
+
+ manifest
+
+
+ allow-component-access
+
+
+
+
+ application
+
+
+
+
+
+
diff --git a/build-tools/manifest-attribute-codegen/metadata.xml b/build-tools/manifest-attribute-codegen/metadata.xml
index 7adf65ae0e6..0a3331dc47c 100644
--- a/build-tools/manifest-attribute-codegen/metadata.xml
+++ b/build-tools/manifest-attribute-codegen/metadata.xml
@@ -25,6 +25,8 @@
+
+
@@ -38,6 +40,7 @@
+
@@ -45,6 +48,7 @@
+
@@ -74,6 +78,7 @@
+
@@ -145,6 +150,7 @@
+
@@ -206,6 +212,7 @@
+
@@ -232,6 +239,8 @@
+
+
@@ -306,7 +315,9 @@
+
+
@@ -366,6 +377,7 @@
+
@@ -388,6 +400,7 @@
+
@@ -411,6 +424,8 @@
+
+
@@ -443,6 +458,7 @@
+
diff --git a/src/Mono.Android.Runtime/Mono.Android.Runtime.csproj b/src/Mono.Android.Runtime/Mono.Android.Runtime.csproj
index a73aaea64d9..b38d12eaac0 100644
--- a/src/Mono.Android.Runtime/Mono.Android.Runtime.csproj
+++ b/src/Mono.Android.Runtime/Mono.Android.Runtime.csproj
@@ -40,12 +40,12 @@
-
+
-
+
$(BuildDependsOn);
_CopyToPackDirs;
@@ -58,7 +58,8 @@
$(AndroidPackVersion).$(PackVersionCommitCount); git-rev-head:$(XAVersionHash); git-branch:$(XAVersionBranch)
Android
- $(AndroidApiLevel).0
+ $(AndroidApiLevel)
+ $(AndroidApiLevel).0
$(AndroidMinimumDotNetApiLevel).0
diff --git a/src/Mono.Android/Mono.Android.Apis.projitems b/src/Mono.Android/Mono.Android.Apis.projitems
index 0691af8f6d9..930b5085039 100644
--- a/src/Mono.Android/Mono.Android.Apis.projitems
+++ b/src/Mono.Android/Mono.Android.Apis.projitems
@@ -245,7 +245,7 @@
37
37.1
37.1
- False
+ True
\ No newline at end of file
diff --git a/src/Mono.Android/map.csv b/src/Mono.Android/map.csv
index ad20547d9b8..e1ab6af78d3 100644
--- a/src/Mono.Android/map.csv
+++ b/src/Mono.Android/map.csv
@@ -3208,6 +3208,99 @@ E,28,android/hardware/HardwareBuffer.S_UI8,53,Android.Hardware.HardwareBufferFor
E,30,android/hardware/HardwareBuffer.YCBCR_420_888,35,Android.Hardware.HardwareBufferFormat,Ycbcr420888,remove,
E,33,android/hardware/HardwareBuffer.YCBCR_P010,54,Android.Hardware.HardwareBufferFormat,YcbcrP010,remove,
E,36,android/hardware/HardwareBuffer.YCBCR_P210,60,Android.Hardware.HardwareBufferFormat,YcbcrP210,remove,
+E,37.1,android/hardware/hid/HidDevice.TRANSPORT_BLUETOOTH,5,Android.Hardware.Hid.HidDeviceTransport,Bluetooth,remove,
+E,37.1,android/hardware/hid/HidDevice.TRANSPORT_I2C,24,Android.Hardware.Hid.HidDeviceTransport,I2c,remove,
+E,37.1,android/hardware/hid/HidDevice.TRANSPORT_SPI,28,Android.Hardware.Hid.HidDeviceTransport,Spi,remove,
+E,37.1,android/hardware/hid/HidDevice.TRANSPORT_UNKNOWN,0,Android.Hardware.Hid.HidDeviceTransport,Unknown,remove,
+E,37.1,android/hardware/hid/HidDevice.TRANSPORT_USB,3,Android.Hardware.Hid.HidDeviceTransport,Usb,remove,
+E,37.1,android/hardware/hid/HidDevice.TRANSPORT_VIRTUAL,6,Android.Hardware.Hid.HidDeviceTransport,Virtual,remove,
+E,37.1,android/hardware/input/ButtonCustomizationTrigger.CUSTOMIZABLE_BUTTON_BACK,8,Android.Hardware.Input.CustomizableButton,Back,remove,
+E,37.1,android/hardware/input/ButtonCustomizationTrigger.CUSTOMIZABLE_BUTTON_EXTRA,128,Android.Hardware.Input.CustomizableButton,Extra,remove,
+E,37.1,android/hardware/input/ButtonCustomizationTrigger.CUSTOMIZABLE_BUTTON_FORWARD,16,Android.Hardware.Input.CustomizableButton,Forward,remove,
+E,37.1,android/hardware/input/ButtonCustomizationTrigger.CUSTOMIZABLE_BUTTON_SIDE,256,Android.Hardware.Input.CustomizableButton,Side,remove,
+E,37.1,android/hardware/input/ButtonCustomizationTrigger.CUSTOMIZABLE_BUTTON_TASK,512,Android.Hardware.Input.CustomizableButton,Task,remove,
+E,37.1,android/hardware/input/ButtonCustomizationTrigger.CUSTOMIZABLE_BUTTON_TERTIARY,4,Android.Hardware.Input.CustomizableButton,Tertiary,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_ASSIST,219,Android.Hardware.Input.CustomizableKeyCode,Assist,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_BACK,4,Android.Hardware.Input.CustomizableKeyCode,Back,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_BOOKMARK,174,Android.Hardware.Input.CustomizableKeyCode,Bookmark,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_BRIGHTNESS_DOWN,220,Android.Hardware.Input.CustomizableKeyCode,BrightnessDown,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_BRIGHTNESS_UP,221,Android.Hardware.Input.CustomizableKeyCode,BrightnessUp,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_CALCULATOR,210,Android.Hardware.Input.CustomizableKeyCode,Calculator,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_CALENDAR,208,Android.Hardware.Input.CustomizableKeyCode,Calendar,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_CAMERA,27,Android.Hardware.Input.CustomizableKeyCode,Camera,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_CONTACTS,207,Android.Hardware.Input.CustomizableKeyCode,Contacts,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_DICTATE,319,Android.Hardware.Input.CustomizableKeyCode,Dictate,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_ENVELOPE,65,Android.Hardware.Input.CustomizableKeyCode,Envelope,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_EXPLORER,64,Android.Hardware.Input.CustomizableKeyCode,Explorer,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F1,131,Android.Hardware.Input.CustomizableKeyCode,F1,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F10,140,Android.Hardware.Input.CustomizableKeyCode,F10,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F11,141,Android.Hardware.Input.CustomizableKeyCode,F11,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F12,142,Android.Hardware.Input.CustomizableKeyCode,F12,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F13,326,Android.Hardware.Input.CustomizableKeyCode,F13,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F14,327,Android.Hardware.Input.CustomizableKeyCode,F14,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F15,328,Android.Hardware.Input.CustomizableKeyCode,F15,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F16,329,Android.Hardware.Input.CustomizableKeyCode,F16,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F17,330,Android.Hardware.Input.CustomizableKeyCode,F17,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F18,331,Android.Hardware.Input.CustomizableKeyCode,F18,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F19,332,Android.Hardware.Input.CustomizableKeyCode,F19,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F2,132,Android.Hardware.Input.CustomizableKeyCode,F2,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F20,333,Android.Hardware.Input.CustomizableKeyCode,F20,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F21,334,Android.Hardware.Input.CustomizableKeyCode,F21,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F22,335,Android.Hardware.Input.CustomizableKeyCode,F22,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F23,336,Android.Hardware.Input.CustomizableKeyCode,F23,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F24,337,Android.Hardware.Input.CustomizableKeyCode,F24,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F3,133,Android.Hardware.Input.CustomizableKeyCode,F3,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F4,134,Android.Hardware.Input.CustomizableKeyCode,F4,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F5,135,Android.Hardware.Input.CustomizableKeyCode,F5,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F6,136,Android.Hardware.Input.CustomizableKeyCode,F6,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F7,137,Android.Hardware.Input.CustomizableKeyCode,F7,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F8,138,Android.Hardware.Input.CustomizableKeyCode,F8,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_F9,139,Android.Hardware.Input.CustomizableKeyCode,F9,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_FORWARD,125,Android.Hardware.Input.CustomizableKeyCode,Forward,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_FULLSCREEN,325,Android.Hardware.Input.CustomizableKeyCode,Fullscreen,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MEDIA_EJECT,129,Android.Hardware.Input.CustomizableKeyCode,MediaEject,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MEDIA_NEXT,87,Android.Hardware.Input.CustomizableKeyCode,MediaNext,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MEDIA_PLAY_PAUSE,85,Android.Hardware.Input.CustomizableKeyCode,MediaPlayPause,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MEDIA_PREVIOUS,88,Android.Hardware.Input.CustomizableKeyCode,MediaPrevious,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MEDIA_STOP,86,Android.Hardware.Input.CustomizableKeyCode,MediaStop,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MENU,82,Android.Hardware.Input.CustomizableKeyCode,Menu,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MOVE_HOME,122,Android.Hardware.Input.CustomizableKeyCode,MoveHome,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_MUSIC,209,Android.Hardware.Input.CustomizableKeyCode,Music,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_NEW,320,Android.Hardware.Input.CustomizableKeyCode,New,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_SCREENSHOT,318,Android.Hardware.Input.CustomizableKeyCode,Screenshot,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_SEARCH,84,Android.Hardware.Input.CustomizableKeyCode,Search,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_SYSRQ,120,Android.Hardware.Input.CustomizableKeyCode,Sysrq,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_VOLUME_DOWN,25,Android.Hardware.Input.CustomizableKeyCode,VolumeDown,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_VOLUME_MUTE,164,Android.Hardware.Input.CustomizableKeyCode,VolumeMute,remove,
+E,37.1,android/hardware/input/KeyCustomizationTrigger.CUSTOMIZABLE_KEYCODE_VOLUME_UP,24,Android.Hardware.Input.CustomizableKeyCode,VolumeUp,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_ASSIST,21,Android.Hardware.Input.SimpleCustomizationActionType,Assist,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_BACK,1,Android.Hardware.Input.SimpleCustomizationActionType,Back,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_BRIGHTNESS_DOWN,2,Android.Hardware.Input.SimpleCustomizationActionType,BrightnessDown,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_BRIGHTNESS_UP,3,Android.Hardware.Input.SimpleCustomizationActionType,BrightnessUp,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_CALCULATOR,4,Android.Hardware.Input.SimpleCustomizationActionType,Calculator,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_CLOSE_WINDOW,19,Android.Hardware.Input.SimpleCustomizationActionType,CloseWindow,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_CONTEXTUAL_INSERT,22,Android.Hardware.Input.SimpleCustomizationActionType,ContextualInsert,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_CONTEXTUAL_QUERY,24,Android.Hardware.Input.SimpleCustomizationActionType,ContextualQuery,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_CONTEXTUAL_SEARCH,23,Android.Hardware.Input.SimpleCustomizationActionType,ContextualSearch,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_DICTATION,5,Android.Hardware.Input.SimpleCustomizationActionType,Dictation,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_DO_NOTHING,18,Android.Hardware.Input.SimpleCustomizationActionType,DoNothing,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_EMOJI_MENU,6,Android.Hardware.Input.SimpleCustomizationActionType,EmojiMenu,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_FORWARD,7,Android.Hardware.Input.SimpleCustomizationActionType,Forward,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_LOCK,8,Android.Hardware.Input.SimpleCustomizationActionType,Lock,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_MEDIA_NEXT,9,Android.Hardware.Input.SimpleCustomizationActionType,MediaNext,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_MEDIA_PLAY_PAUSE,10,Android.Hardware.Input.SimpleCustomizationActionType,MediaPlayPause,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_MEDIA_PREVIOUS,11,Android.Hardware.Input.SimpleCustomizationActionType,MediaPrevious,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_PARTIAL_SCREENSHOT,20,Android.Hardware.Input.SimpleCustomizationActionType,PartialScreenshot,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_PRINT_SCREEN,12,Android.Hardware.Input.SimpleCustomizationActionType,PrintScreen,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_SCREEN_CAPTURE,13,Android.Hardware.Input.SimpleCustomizationActionType,ScreenCapture,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_SHOW_DESKTOP,14,Android.Hardware.Input.SimpleCustomizationActionType,ShowDesktop,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_VOICE_ASSIST,25,Android.Hardware.Input.SimpleCustomizationActionType,VoiceAssist,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_VOLUME_DOWN,15,Android.Hardware.Input.SimpleCustomizationActionType,VolumeDown,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_VOLUME_MUTE,16,Android.Hardware.Input.SimpleCustomizationActionType,VolumeMute,remove,
+E,37.1,android/hardware/input/SimpleCustomizationAction.TYPE_VOLUME_UP,17,Android.Hardware.Input.SimpleCustomizationActionType,VolumeUp,remove,
+E,37.1,android/hardware/input/UriCustomizationAction.TYPE_OPEN_FILE,1,Android.Hardware.Input.UriCustomizationActionType,OpenFile,remove,
+E,37.1,android/hardware/input/UriCustomizationAction.TYPE_OPEN_FOLDER,2,Android.Hardware.Input.UriCustomizationActionType,OpenFolder,remove,
+E,37.1,android/hardware/input/UriCustomizationAction.TYPE_OPEN_URL,3,Android.Hardware.Input.UriCustomizationActionType,OpenUrl,remove,
E,37,android/hardware/lights/ColorSequence.INTERPOLATION_MODE_LINEAR,1,Android.Hardware.Lights.InterpolationMode,Linear,remove,
E,37,android/hardware/lights/ColorSequence.INTERPOLATION_MODE_NONE,0,Android.Hardware.Lights.InterpolationMode,None,remove,
E,37,android/hardware/lights/Light.LIGHT_CAPABILITY_ANIMATION,4,Android.Hardware.Lights.LightCapability,Animation,remove,flags
@@ -3639,6 +3732,9 @@ E,35,android/health/connect/datatypes/PlannedExerciseStep.EXERCISE_CATEGORY_RECO
E,35,android/health/connect/datatypes/PlannedExerciseStep.EXERCISE_CATEGORY_REST,2,Android.Health.Connect.DataTypes.PlannedExerciseStepExerciseCategory,Rest,remove,
E,35,android/health/connect/datatypes/PlannedExerciseStep.EXERCISE_CATEGORY_UNKNOWN,0,Android.Health.Connect.DataTypes.PlannedExerciseStepExerciseCategory,Unknown,remove,
E,35,android/health/connect/datatypes/PlannedExerciseStep.EXERCISE_CATEGORY_WARMUP,1,Android.Health.Connect.DataTypes.PlannedExerciseStepExerciseCategory,Warmup,remove,
+E,37.1,android/health/connect/datatypes/Record.RECORD_TEMPORAL_TYPE_INSTANT,0,Android.Health.Connect.Datatypes.RecordTemporalType,Instant,remove,
+E,37.1,android/health/connect/datatypes/Record.RECORD_TEMPORAL_TYPE_INTERVAL,1,Android.Health.Connect.Datatypes.RecordTemporalType,Interval,remove,
+E,37.1,android/health/connect/datatypes/Record.RECORD_TEMPORAL_TYPE_LOCAL_DATE,2,Android.Health.Connect.Datatypes.RecordTemporalType,LocalDate,remove,
E,34,android/health/connect/datatypes/SexualActivityRecord$SexualActivityProtectionUsed.PROTECTION_USED_PROTECTED,1,Android.Health.Connect.DataTypes.SexualActivityProtectionUsedType,Protected,remove,
E,34,android/health/connect/datatypes/SexualActivityRecord$SexualActivityProtectionUsed.PROTECTION_USED_UNKNOWN,0,Android.Health.Connect.DataTypes.SexualActivityProtectionUsedType,Unknown,remove,
E,34,android/health/connect/datatypes/SexualActivityRecord$SexualActivityProtectionUsed.PROTECTION_USED_UNPROTECTED,2,Android.Health.Connect.DataTypes.SexualActivityProtectionUsedType,Unprotected,remove,
@@ -9465,6 +9561,7 @@ E,36.1,android/os/Build$VERSION_CODES_FULL.BAKLAVA_1,3600001,Android.OS.BuildVer
E,36,android/os/Build$VERSION_CODES_FULL.BASE,100000,Android.OS.BuildVersionCodesFull,Base,remove,
E,36,android/os/Build$VERSION_CODES_FULL.BASE_1_1,200000,Android.OS.BuildVersionCodesFull,Base11,remove,
E,37,android/os/Build$VERSION_CODES_FULL.CINNAMON_BUN,3700000,Android.OS.BuildVersionCodesFull,CinnamonBun,remove,
+E,37.1,android/os/Build$VERSION_CODES_FULL.CINNAMON_BUN_1,3700001,Android.OS.BuildVersionCodesFull,CinnamonBun1,remove,
E,36,android/os/Build$VERSION_CODES_FULL.CUPCAKE,300000,Android.OS.BuildVersionCodesFull,Cupcake,remove,
E,36,android/os/Build$VERSION_CODES_FULL.DONUT,400000,Android.OS.BuildVersionCodesFull,Donut,remove,
E,36,android/os/Build$VERSION_CODES_FULL.ECLAIR,500000,Android.OS.BuildVersionCodesFull,Eclair,remove,
@@ -10050,6 +10147,7 @@ E,24,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_REMOVE,1024,Andro
E,21,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_RENAME,64,Android.Provider.DocumentContractFlags,SupportsRename,remove,
E,37,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_RESTORE,131072,Android.Provider.DocumentContractFlags,SupportsRestore,remove,
E,26,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_SETTINGS,2048,Android.Provider.DocumentContractFlags,SupportsSettings,remove,
+E,37.1,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_SUBTREE_SEARCH,262144,Android.Provider.DocumentContractFlags,SupportsSubtreeSearch,remove,flags
E,19,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_THUMBNAIL,1,Android.Provider.DocumentContractFlags,SupportsThumbnail,remove,
E,37,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_TRASH,65536,Android.Provider.DocumentContractFlags,SupportsTrash,remove,
E,19,android/provider/DocumentsContract$Document.FLAG_SUPPORTS_WRITE,2,Android.Provider.DocumentContractFlags,SupportsWrite,remove,
@@ -13729,6 +13827,8 @@ E,23,android/telecom/Call$Details.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,30
E,23,android/telecom/Call$Details.CAPABILITY_SUPPORTS_VT_REMOTE_RX,1024,Android.Telecom.CallCapability,SupportsVtRemoteRx,keep,
E,23,android/telecom/Call$Details.CAPABILITY_SUPPORTS_VT_REMOTE_TX,2048,Android.Telecom.CallCapability,SupportsVtRemoteTx,keep,
E,23,android/telecom/Call$Details.CAPABILITY_SWAP_CONFERENCE,8,Android.Telecom.CallCapability,SwapConference,keep,
+E,37.1,android/telecom/Call$Details.CAPABILITY_TRANSFER,67108864,Android.Telecom.CallCapability,Transfer,remove,
+E,37.1,android/telecom/Call$Details.CAPABILITY_TRANSFER_CONSULTATIVE,134217728,Android.Telecom.CallCapability,TransferConsultative,remove,
E,29,android/telecom/Call$Details.DIRECTION_INCOMING,0,Android.Telecom.CallDirection,Incoming,remove,
E,29,android/telecom/Call$Details.DIRECTION_OUTGOING,1,Android.Telecom.CallDirection,Outgoing,remove,
E,29,android/telecom/Call$Details.DIRECTION_UNKNOWN,-1,Android.Telecom.CallDirection,Unknown,remove,
@@ -13895,6 +13995,7 @@ E,23,android/telecom/PhoneAccount.CAPABILITY_CALL_PROVIDER,2,Android.Telecom.Pho
E,23,android/telecom/PhoneAccount.CAPABILITY_CALL_SUBJECT,64,Android.Telecom.PhoneAccountCapability,CallSubject,keep,
E,37,android/telecom/PhoneAccount.CAPABILITY_CHANGE_RTT_CALL_TO_AUDIO_CALL,1048576,Android.Telecom.PhoneAccountCapability,ChangeRttCallToAudioCall,remove,
E,23,android/telecom/PhoneAccount.CAPABILITY_CONNECTION_MANAGER,1,Android.Telecom.PhoneAccountCapability,ConnectionManager,keep,
+E,37.1,android/telecom/PhoneAccount.CAPABILITY_OPT_OUT_OF_PREMIUM_NETWORK,2097152,Android.Telecom.PhoneAccountCapability,OptOutOfPremiumNetwork,remove,
E,23,android/telecom/PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS,16,Android.Telecom.PhoneAccountCapability,PlaceEmergencyCalls,keep,
E,26,android/telecom/PhoneAccount.CAPABILITY_RTT,4096,Android.Telecom.PhoneAccountCapability,Rtt,keep,
E,26,android/telecom/PhoneAccount.CAPABILITY_SELF_MANAGED,2048,Android.Telecom.PhoneAccountCapability,SelfManaged,keep,
@@ -16238,6 +16339,7 @@ E,36,android/view/KeyEvent.KEYCODE_CLOSE,321,Android.Views.Keycode,Close,remove,
E,10,android/view/KeyEvent.KEYCODE_COMMA,55,Android.Views.Keycode,Comma,keep,
E,15,android/view/KeyEvent.KEYCODE_CONTACTS,207,Android.Views.Keycode,Contacts,keep,
E,37,android/view/KeyEvent.KEYCODE_CONTEXTUAL_INSERT,340,Android.Views.Keycode,ContextualInsert,remove,
+E,37.1,android/view/KeyEvent.KEYCODE_CONTEXTUAL_QUERY,341,Android.Views.Keycode,ContextualQuery,remove,
E,37,android/view/KeyEvent.KEYCODE_CONTEXTUAL_SEARCH,339,Android.Views.Keycode,ContextualSearch,remove,
E,24,android/view/KeyEvent.KEYCODE_COPY,278,Android.Views.Keycode,Copy,keep,
E,15,android/view/KeyEvent.KEYCODE_CTRL_LEFT,113,Android.Views.Keycode,CtrlLeft,keep,
@@ -17193,6 +17295,12 @@ E,10,android/widget/ListView.CHOICE_MODE_NONE,0,Android.Widget.ChoiceMode,None,r
E,10,android/widget/ListView.CHOICE_MODE_SINGLE,1,Android.Widget.ChoiceMode,Single,remove,
I,29,android/widget/Magnifier.SOURCE_BOUND_MAX_IN_SURFACE,0,,,,
I,29,android/widget/Magnifier.SOURCE_BOUND_MAX_VISIBLE,1,,,,
+E,37.1,android/widget/photopicker/EmbeddedPhotoPickerFeatureInfo.TAB_ALBUMS,0,Android.Widget.Photopicker.EmbeddedPhotoPickerLaunchTab,Albums,remove,
+E,37.1,android/widget/photopicker/EmbeddedPhotoPickerFeatureInfo.TAB_IMAGES,1,Android.Widget.Photopicker.EmbeddedPhotoPickerLaunchTab,Images,remove,
+E,37.1,android/widget/photopicker/EmbeddedPhotoPickerFeatureInfo.TAB_UNSET,-1,Android.Widget.Photopicker.EmbeddedPhotoPickerLaunchTab,Unset,remove,
+R,37.1,android/widget/photopicker/EmbeddedPhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16,1,,,remove,
+R,37.1,android/widget/photopicker/EmbeddedPhotoPickerUiCustomizationParams.ASPECT_RATIO_SQUARE_1_1,0,,,remove,
+R,37.1,android/widget/photopicker/EmbeddedPhotoPickerUiCustomizationParams.ASPECT_RATIO_UNDEFINED,-1,,,remove,
E,37,android/widget/photopicker/PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16,1,Android.Widget.Photopicker.AspectRatio,Portrait916,remove,
E,37,android/widget/photopicker/PhotoPickerUiCustomizationParams.ASPECT_RATIO_SQUARE_1_1,0,Android.Widget.Photopicker.AspectRatio,Square11,remove,
E,37,android/widget/photopicker/PhotoPickerUiCustomizationParams.ASPECT_RATIO_UNDEFINED,-1,Android.Widget.Photopicker.AspectRatio,Undefined,remove,
diff --git a/src/Mono.Android/methodmap.csv b/src/Mono.Android/methodmap.csv
index bab127e450d..2bfde0f4f34 100644
--- a/src/Mono.Android/methodmap.csv
+++ b/src/Mono.Android/methodmap.csv
@@ -4637,3 +4637,19 @@
37,android/widget/photopicker,PhotoPickerUiCustomizationParams,writeToParcel,flags,Android.OS.ParcelableWriteFlags
37,android/widget/photopicker,PhotoPickerUiCustomizationParams$Builder,setAspectRatio,aspectRatio,Android.Widget.Photopicker.AspectRatio
37,android/widget,RemoteViews,setViewPadding,units,Android.Util.ComplexUnitType
+37.1,android.hardware.hid,HidDevice,getTransport,return,Android.Hardware.Hid.HidDeviceTransport
+37.1,android.hardware.input,ButtonCustomizationTrigger,ctor,buttonCode,Android.Hardware.Input.CustomizableButton
+37.1,android.hardware.input,ButtonCustomizationTrigger,getButtonCode,return,Android.Hardware.Input.CustomizableButton
+37.1,android.hardware.input,InputManager,isButtonAllowedForCustomization,buttonCode,Android.Hardware.Input.CustomizableButton
+37.1,android.hardware.input,InputManager,isKeyAllowedForCustomization,keyCode,Android.Hardware.Input.CustomizableKeyCode
+37.1,android.hardware.input,KeyCustomizationTrigger,ctor,keyCode,Android.Hardware.Input.CustomizableKeyCode
+37.1,android.hardware.input,KeyCustomizationTrigger,getKeyCode,return,Android.Hardware.Input.CustomizableKeyCode
+37.1,android.hardware.input,SimpleCustomizationAction,ctor,actionType,Android.Hardware.Input.SimpleCustomizationActionType
+37.1,android.hardware.input,SimpleCustomizationAction,getType,return,Android.Hardware.Input.SimpleCustomizationActionType
+37.1,android.hardware.input,UriCustomizationAction,ctor,actionType,Android.Hardware.Input.UriCustomizationActionType
+37.1,android.hardware.input,UriCustomizationAction,getType,return,Android.Hardware.Input.UriCustomizationActionType
+37.1,android.widget.photopicker,EmbeddedPhotoPickerFeatureInfo,getLaunchTab,return,Android.Widget.Photopicker.EmbeddedPhotoPickerLaunchTab
+37.1,android.widget.photopicker,EmbeddedPhotoPickerFeatureInfo.Builder,setLaunchTab,launchTab,Android.Widget.Photopicker.EmbeddedPhotoPickerLaunchTab
+37.1,android.widget.photopicker,EmbeddedPhotoPickerUiCustomizationParams,getAspectRatio,return,Android.Widget.Photopicker.AspectRatio
+37.1,android.widget.photopicker,EmbeddedPhotoPickerUiCustomizationParams,writeToParcel,flags,Android.OS.ParcelableWriteFlags
+37.1,android.widget.photopicker,EmbeddedPhotoPickerUiCustomizationParams.Builder,setAspectRatio,aspectRatio,Android.Widget.Photopicker.AspectRatio