Konubinix' opinionated web of thoughts

Android 11 Key Character Map vs Keylayout vs Whyred to Use Bépo

Fleeting

android 11 key character map vs keylayout vs whyred bépo

Android:

  • maps physical keys to keycodes using keylayouts (.kl files)
  • maps keycodes to unicode characters using key character map (.kcm files)

After installing bépo-android, I found out that it was still writing in qwerty.

One of the tradeoff I had to make was to have the underlying key layout a QWERTY, that then generated bépo characters. This decision was due to the fact that we cannot attribute key names to all keys: ÉÀÈÊÇ, etc. don’t have key labels (found in KeycodeLabels.h or InputEventLabels.h depending on your AOSP version), so you can’t simply remap all keys in order to have a bépo key layout; you’d have holes in it. I therefore had to resort to using QWERTY as base, as it’s the one in Generic.kl.

https://anisse.astier.eu/bepo-android.html

So, bépo-android did

  • use the default qwerty (.kl) file
  • provide a bépo character map (.kcm)

I use a typematrix keyboard, logcat tells me

12-13 16:53:11.877     0     0 I usb 1-1 : New USB device found, idVendor=1e54, idProduct=2030

Reading https://source.android.com/docs/core/interaction/input/key-layout-files, I see I can provide a key layout in /system/usr/keylayout/Vendor_1e54_Product_2030.kl

Reading https://source.android.com/docs/core/interaction/input/key-character-map-files, I see I can provide a key character map in /system/usr/keychars/Vendor_1e54_Product_2030.kcm

Plugging the keyboard and looking at logcat, I can see

12-13 17:05:16.134  2217  2326 I EventHub: New device: id=43, fd=330, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Vendor_1e54_Product_2030.kl', keyCharacterMap='/system/usr/keychars/Vendor_1e54_Product_2030.kcm', builtinKeyboard=false,

Telling me that it reads those files for real. Also, after adding typos, it complains that it does not read them.

But, whatever .kl file it reads (Generic.kl or my custom one), the content of the .kcm appears to never be taken into account. I always fallback on the raw behavior of the keylayout file.

Therefore, let’s have a poor’s man solution and create a .kl file.

# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Emulator keyboard layout #1.
#
# This file is no longer used as the platform's default keyboard layout.
# Refer to Generic.kl instead.
#

key 399   GRAVE
key 2     1
key 3     2
key 4     3
key 5     4
key 6     5
key 7     6
key 8     7
key 9     8
key 10    9
key 11    0
key 158   BACK
key 230   SOFT_RIGHT
key 60    SOFT_LEFT
key 107   ENDCALL
key 62    ENDCALL
key 229   MENU
key 139   MENU
key 59    MENU
key 127   SEARCH
key 217   SEARCH
key 228   POUND
key 227   STAR
key 231   CALL
key 61    CTRL_RIGHT
key 232   DPAD_CENTER
key 108   DPAD_DOWN
key 103   DPAD_UP
key 102   HOME
key 105   DPAD_LEFT
key 106   DPAD_RIGHT
key 115   VOLUME_UP
key 114   VOLUME_DOWN
key 116   POWER
key 212   CAMERA

key 16    B
key 17    E
key 18    P
key 19    O
key 20    E
key 21    COMMA
key 22    V
key 23    D
key 24    L
key 25    J
key 26    LEFT_BRACKET
key 27    RIGHT_BRACKET
key 43    BACKSLASH

key 30    A
key 31    U
key 32    I
key 33    E
key 34    COMMA
key 35    C
key 36    T
key 37    S
key 38    R
key 39    N
key 40    M
key 14    DEL

key 44    A
key 45    Y
key 46    X
key 47    PERIOD
key 48    K
key 49    APOSTROPHE
key 50    Q
key 51    G
key 52    H
key 53    F
key 28    ENTER

key 56    ALT_LEFT
key 100   ALT_RIGHT
key 42    SHIFT_LEFT
key 54    SHIFT_RIGHT
key 15    TAB
key 57    SPACE
key 150   EXPLORER
key 155   ENVELOPE

key 12    MINUS
key 13    EQUALS
key 215   AT

# On an AT keyboard: ESC, F10
key 1     BACK
key 68    MENU

# App switch = Overview key
key 580   APP_SWITCH

# Media control keys
key 160   MEDIA_CLOSE
key 161   MEDIA_EJECT
key 163   MEDIA_NEXT
key 164   MEDIA_PLAY_PAUSE
key 165   MEDIA_PREVIOUS
key 166   MEDIA_STOP
key 167   MEDIA_RECORD
key 168   MEDIA_REWIND

key 142   SLEEP
key 581   STEM_PRIMARY
key 582   STEM_1
key 583   STEM_2
key 584   STEM_3

Writing this file, I realize this is barely usable.

Asking for help in https://github.com/anisse/bepo-android/issues/8

a deeper exploration

Anisse very kindly answered me and asked for more information. Therefore, here is what I can tell.

He asked for the logcat logs. I assume that he wants to find out what keylayout and key character map are setup. Therefore, to avoid any misunderstandings, I removed my attempts at providing those so that it falls back on the generic ones.

clk android adb logcat -d|uncolor|grep -E 'KeyCharacterMap|KeyLayoutMap|Keyboard|TypeMatrix'
12-18 11:46:05.689     0     0 I usb 1-1 : Product: USB Keyboard
12-18 11:46:05.689     0     0 I usb 1-1 : Manufacturer: TypeMatrix.com
12-18 11:46:05.714     0     0 I input   : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:1E54:2030.000B/input/input19
12-18 11:46:05.772     0     0 I hid-generic 0003: 1E54:2030.000B: input,hidraw0: USB HID v1.10 Keyboard [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input0
12-18 11:46:05.807     0     0 I input   : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.1/0003:1E54:2030.000C/input/input20
12-18 11:46:05.872     0     0 I hid-generic 0003: 1E54:2030.000C: input,hidraw1: USB HID v1.10 Device [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input1
12-18 11:46:09.899  2218  2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 11:46:09.904  2218  2323 I EventHub: New device: id=20, fd=325, path='/dev/input/event9', name='TypeMatrix.com USB Keyboard', classes=0x80000083, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 11:46:09.904  2218  2323 I InputReader: Device added: id=20, eventHubId=20, name='TypeMatrix.com USB Keyboard', descriptor='37bdb20fbb08be6dfed9189927bb1d23f8daa007',sources=0x80000101
12-18 11:46:09.942  2218  2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 11:46:09.952  2218  2323 I EventHub: New device: id=21, fd=333, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 11:46:09.953  2218  2323 I InputReader: Device added: id=21, eventHubId=21, name='TypeMatrix.com USB Keyboard', descriptor='fb198ba3ff3e1f7fc99e621c028849c7fc05afb0',sources=0x01000311
12-18 11:46:09.985  4453  4453 I PCKeyboard: onConfigurationChanged()
12-18 11:46:10.340  4453  4453 I PCKeyboard: onConfigurationChanged()

Anisse said something interesting with regards to the language.

Do you see the physical keyboard in the android settings ? Can you change its keymap to another (a system one) ?

https://github.com/anisse/bepo-android/issues/8#issuecomment-1855386052

So, here are the experiments, with the screenshots.

  1. plug the keyboard
  2. press “bépo”

This is as expected

  1. click on the configuration notification
  1. it can see my keyboard
  1. let’s change the layout
  1. let’s try again to write “bépo”

Nothing changed.

  1. try to move to French
  1. test

As Anisse implicitly suggested, there is actually something going on here.

  1. test using some special characters, like the key row with numbers

This suggests that there is no kcm at hand, only a layout.

Let’s try changing the layouts of the virtual keyboards as well, as suggested in the updated bepo page.

Dans Android, la disposition du clavier physique dépend du clavier virtuel sélectionné. Si vous avez plusieurs claviers virtuels, ou un clavier virtuels avec plusieurs langues, il faudra configurer la disposition pour chaque langue de chaque clavier

https://bepo.fr/wiki/BepoAndroid

  1. go back to “French (bépo)”
  1. select the first one
  1. configure it with bépo
  1. test it

The virtual keyboard is in “bépo”, but the physical keyboard still writes “qwer” instead.

Let’s try to look at the logcat to find out if there is anything new now.

clk android adb logcat -d|uncolor|grep -E 'KeyCharacterMap|KeyLayoutMap|Keyboard|TypeMatrix'
12-18 12:11:09.824     0     0 I usb 1-1 : Product: USB Keyboard
12-18 12:11:09.824     0     0 I usb 1-1 : Manufacturer: TypeMatrix.com
12-18 12:11:09.848     0     0 I input   : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:1E54:2030.000F/input/input23
12-18 12:11:09.907     0     0 I hid-generic 0003: 1E54:2030.000F: input,hidraw0: USB HID v1.10 Keyboard [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input0
12-18 12:11:09.938     0     0 I input   : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.1/0003:1E54:2030.0010/input/input24
12-18 12:11:09.951  2218  2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:11:09.956  2218  2323 I EventHub: New device: id=24, fd=328, path='/dev/input/event9', name='TypeMatrix.com USB Keyboard', classes=0x80000083, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:11:09.962  2218  2323 I InputReader: Device added: id=24, eventHubId=24, name='TypeMatrix.com USB Keyboard', descriptor='37bdb20fbb08be6dfed9189927bb1d23f8daa007',sources=0x80000101
12-18 12:11:09.992  2218  2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:11:09.993     0     0 I hid-generic 0003: 1E54:2030.0010: input,hidraw1: USB HID v1.10 Device [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input1
12-18 12:11:09.996  2218  2323 I EventHub: New device: id=25, fd=333, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:11:10.005  2218  2323 I InputReader: Device added: id=25, eventHubId=25, name='TypeMatrix.com USB Keyboard', descriptor='fb198ba3ff3e1f7fc99e621c028849c7fc05afb0',sources=0x01000311
12-18 12:11:10.102 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-18 12:11:10.102 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=hu_ZZ extraValue=AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-18 12:11:10.183 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=en_AU extraValue=TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable
12-18 12:11:10.183 10106 10106 W SubtypeLocaleUtils: KeyboardLayoutSet not found, use QWERTY: locale=hu_ZZ extraValue=AsciiCapable,SupportTouchPositionCorrection,EmojiCapable

There is this new line about “KeyboardLayoutSet not found, use QWERTY”. Could that be it ?

Since Assine appears to use GBoard, let’s try to install it to find out whether installing it helps.

It does not provide any way to be configured in bépo

And even in French, it still writes “qwer”

And what about logcat?

clk android adb logcat -d|uncolor|grep -E 'KeyCharacterMap|KeyLayoutMap|Keyboard|TypeMatrix'
12-18 12:21:21.064     0     0 I usb 1-1 : Product: USB Keyboard
12-18 12:21:21.064     0     0 I usb 1-1 : Manufacturer: TypeMatrix.com
12-18 12:21:21.094     0     0 I input   : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:1E54:2030.0013/input/input27
12-18 12:21:21.154     0     0 I hid-generic 0003: 1E54:2030.0013: input,hidraw0: USB HID v1.10 Keyboard [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input0
12-18 12:21:21.186     0     0 I input   : TypeMatrix.com USB Keyboard as /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.1/0003:1E54:2030.0014/input/input28
12-18 12:21:21.244     0     0 I hid-generic 0003: 1E54:2030.0014: input,hidraw1: USB HID v1.10 Device [TypeMatrix.com USB Keyboard] on usb-xhci-hcd.0.auto-1/input1
12-18 12:21:25.277  2218  2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:21:25.283  2218  2323 I EventHub: New device: id=28, fd=331, path='/dev/input/event9', name='TypeMatrix.com USB Keyboard', classes=0x80000083, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:21:25.291  2218  2323 I InputReader: Device added: id=28, eventHubId=28, name='TypeMatrix.com USB Keyboard', descriptor='37bdb20fbb08be6dfed9189927bb1d23f8daa007',sources=0x80000101
12-18 12:21:25.326  2218  2323 D EventHub: No input device configuration file found for device 'TypeMatrix.com USB Keyboard'.
12-18 12:21:25.332  2218  2323 I EventHub: New device: id=29, fd=338, path='/dev/input/event10', name='TypeMatrix.com USB Keyboard', classes=0x80000121, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false,
12-18 12:21:25.358  2218  2323 I InputReader: Device added: id=29, eventHubId=29, name='TypeMatrix.com USB Keyboard', descriptor='fb198ba3ff3e1f7fc99e621c028849c7fc05afb0',sources=0x01000311
12-18 12:21:25.381 11326 11326 I GoogleInputMethodService: GoogleInputMethodService.discardAllKeyboardViewAndInputView():1733 discardAllKeyboardViewAndInputView()
12-18 12:21:25.382 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jeu
12-18 12:21:25.382 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jeu
12-18 12:21:25.384 11326 11372 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214026 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 1 ms
12-18 12:21:25.391 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jkm
12-18 12:21:25.391 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jkm
12-18 12:21:25.392 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jom
12-18 12:21:25.392 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jom
12-18 12:21:25.393 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():569 setInputView() : supportsOneHandedMode=true
12-18 12:21:25.394 11326 11326 I NormalModeController: NormalModeController.getKeyboardBodyViewHolderPaddingBottom():89 currentPrimeKeyboardType:SOFT systemPaddingBottom:-1
12-18 12:21:25.394 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():559 setInputView() : entry=qpu{languageTag=fr-FR, variant=azerty, hasLocalizedResources=true, conditionCacheKey=_device=phone_device_size=default_enable_dynamic_diacritic_key=false_enable_more_candidates_view_for_multilingual=false_enable_nav_redesign_for_expression=false_enable_navbar_motion=false_enable_number_row=false_enable_preemptive_decode=true_enable_secondary_symbols=false_expressions=normal_four_or_more_letter_rows=false_keyboard_mode=normal_language=fr-FR_orientation=portrait_physical_keyboard=nokeys_rtl_layout=false_show_secondary_digits=true_show_suggestions=true_split_with_duplicate_keys=true_variant=azerty, imeDef.stringId=ime_french, imeDef.className=com.google.android.apps.inputmethod.libs.latin5.LatinIme, imeDef.languageTag=fr}
12-18 12:21:25.394 11326 11371 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214039 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 0 ms
12-18 12:21:25.405 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jeu.
12-18 12:21:25.405 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214032 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 0 ms
12-18 12:21:25.405 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jkm.
12-18 12:21:25.405 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jom.
12-18 12:21:25.454 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jeu
12-18 12:21:25.454 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jeu
12-18 12:21:25.457 11326 11364 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214026 -> 0_resource_name_obfuscated : WaitTime = 0 ms : RunTime = 2 ms
12-18 12:21:25.458 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jkm
12-18 12:21:25.458 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jkm
12-18 12:21:25.459 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jom
12-18 12:21:25.459 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jom
12-18 12:21:25.463 11326 11326 I StyledKeyboardTheme: StyledKeyboardTheme.<init>():116 Pref: [], themeName: [assets:theme_package_metadata_google_blue_dark.binarypb], darkMode: [true], cacheKey: [builtin_google_blue_dark.binarypb]
12-18 12:21:25.463 11326 11326 I KeyboardThemeProvider: KeyboardThemeProvider.applyKeyboardTheme():27 Apply keyboard theme: theme_border_bottom4dp_stylesheet_dark_phone_350_builtin_google_blue_dark.binarypb_port
12-18 12:21:25.466 11326 11370 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214039 -> 0_resource_name_obfuscated : WaitTime = 6 ms : RunTime = 1 ms
12-18 12:21:25.468 11326 11365 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214032 -> 0_resource_name_obfuscated : WaitTime = 8 ms : RunTime = 1 ms
12-18 12:21:25.523 11326 11326 I KeyboardHeightUtil: KeyboardHeightUtil.getKeyboardHeightRatio():176 systemKeyboardHeightRatio:1.000000.
12-18 12:21:25.536 11326 11326 I GoogleInputMethodService: GoogleInputMethodService.discardAllKeyboardViewAndInputView():1733 discardAllKeyboardViewAndInputView()
12-18 12:21:25.536 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jeu
12-18 12:21:25.536 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jeu
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jkm
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jkm
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.maybeDestroyExistingKeyboardGroupManager():515 Destroy existing keyboard group manager in jom
12-18 12:21:25.537 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension.createKeyboardGroupManagerListenableFuture():119 Create keyboard group manager listenable future in jom
12-18 12:21:25.538 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214026 -> 0_resource_name_obfuscated : WaitTime = 0 ms : RunTime = 1 ms
12-18 12:21:25.538 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():569 setInputView() : supportsOneHandedMode=true
12-18 12:21:25.539 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214032 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 1 ms
12-18 12:21:25.539 11326 11326 I NormalModeController: NormalModeController.getKeyboardBodyViewHolderPaddingBottom():89 currentPrimeKeyboardType:SOFT systemPaddingBottom:-1
12-18 12:21:25.540 11326 11369 I KeyboardGroupDefParser: KeyboardGroupDefParser.parseKeyboardGroupDef():83 parseKeyboardGroupDef() 2132214039 -> 0_resource_name_obfuscated : WaitTime = 1 ms : RunTime = 1 ms
12-18 12:21:25.540 11326 11326 I KeyboardModeManager: KeyboardModeManager.setKeyboardViewHolderProvider():559 setInputView() : entry=qpu{languageTag=fr-FR, variant=azerty, hasLocalizedResources=true, conditionCacheKey=_device=phone_device_size=default_enable_dynamic_diacritic_key=false_enable_more_candidates_view_for_multilingual=false_enable_nav_redesign_for_expression=false_enable_navbar_motion=false_enable_number_row=false_enable_preemptive_decode=true_enable_secondary_symbols=false_expressions=normal_four_or_more_letter_rows=false_keyboard_mode=normal_language=fr-FR_orientation=portrait_physical_keyboard=qwerty_rtl_layout=false_show_secondary_digits=true_show_suggestions=true_split_with_duplicate_keys=true_variant=azerty, imeDef.stringId=ime_french, imeDef.className=com.google.android.apps.inputmethod.libs.latin5.LatinIme, imeDef.languageTag=fr}
12-18 12:21:25.548 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jeu.
12-18 12:21:25.548 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jkm.
12-18 12:21:25.549 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onSuccess():529 KeyboardGroupManager destroyed in jom.
12-18 12:21:25.550 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onFailure():537 Failed to load KeyboardGroupManager in jeu.
12-18 12:21:25.550 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onFailure():537 Failed to load KeyboardGroupManager in jkm.
12-18 12:21:25.550 11326 11326 I AbstractOpenableExtension: AbstractOpenableExtension$3.onFailure():537 Failed to load KeyboardGroupManager in jom.

It shows much more stuff, but nothing that appears useful.