Modify keyboard settings in Android x86 4 RC2

[German Edition]Here I’ve introduced Android x86, which I’ve installed on an ASUS Eee PC 701 G Netbook. Because I’ve a German keyboard on this machine, I tried to change keyboard settings in Android. During this process I stumbled over a few things. For instance, the @ is missing on German keyboard. Below I will show, how to change keyboard layout to German and how to add a @ character.


Change external keyboard layout to German

To change keyboard layout on Android on my Eee PC, I’ve invoked the Settings app and went to Language & input.

The entry Language (in the right column) just changes the OS language. I used the entry Default to change android keyboard settings. This invokes a popup window, that shows options to select the input method.

Use Configure input methods in the lower part of the popup window, to show the following page.

The page contains an entry Physical keyboard layout, that opens another page. Within this page I choose “German” as keyboard layout. After closing all pages, I could use a German keyboard layout with umlauts ä, ö, ü ß, and also y and z keys was exchanged to fit my keyboard.

Patch the keyboard layout file

Unfortunately the German keyboad layout shipped with Android x86 4.0 RC2 doesn’t supports extra characters like the at @ – which is needed for Google account login. The AltGR+Q key combination won’t work. In [5] I found a suggestion to substitute the files below:


But this seems to be too complicated. But in [5] the article [6] was linked, the this article contains links to other sites, disussing internals of android keyboard layout files. So I decided to patch the keyboard layout file and add the @-character. The keyboard layout is keept in a .kcm file – the content of this file is discussed at [7].

I used Dalvik Debug Monitor (DDMS) (see) to copy the file:


to a Windows machine. Then I opened the .kcm file in Notepad++ and found the structure shown below for key Q:

key Q {
label: ‚Q‘
base: ‚q‘
shift, capslock: ‚Q‘
ctrl, alt, meta: none

The key AltGR isn’t functional. Accoding to [7], it should  be sufficient to change the entry in the last line to:

key Q {
label: ‚Q‘
base: ‚q‘
shift, capslock: ‚Q‘
ctrl, alt, meta: ‚@‘

This should enable the  @-character on key Q. But how to change Generic_de.kcm on my android device? It’s not possible to copy the altered file from Windows to an android device, because system folder is write protected (althought I’ve installed android with system folder als re-writeable).

Change Generic_de.kcm on the android device

Because it was late in the night, I did not experiment with Busybox in adb shell. I bootet a USB thumb drive containing Ubuntu as a live system. Then I used the unity launcher on the left side of Ubuntu desktop to invoke file manager.

Then I mounted the device android x86 shown in the file manager’s left pane. The device android x86 is the ssd partition with the installed android x86. Then I minimized this window.

Now we need to get root access rights. Therefore in invoked the terminal (I selected the top most entry in the left bar to invoke the dashboard, then typed ““terminal” and selected the terminal icon).

Within the terminal window I executed the following commands (each command must be confirmed with enter key):

sudo su

The last command invokes Ubuntu file manager nautilus with root access rights. The warning, that natilus can’t write a .config file in /root/ may be ignored (click OK button).

After the 2nd instance of nautilus file manager was shown, I selected the device “Android-x86” and navigated to android-4.0.RC2 –> system –> usr –> keycharc.

You can open file Generic_de.kcm either with a double click or use right mouse button to show a context menu and select Open with texteditor. In my environment, the latter method shows a corrupted file in gedit – so I used a doucle click to open the file.

Then I scrolled down in editor window to the key definition for Q and changed the entry as shown below.

key Q {
label: ‚Q‘
base: ‚q‘
shift, capslock: ‚Q‘
ctrl, alt, meta: ‚@‘

The value “none” in last line was changed to “@”. Afterward, you are able to save the altered file, using the save button in editor window. I closed gedit, unmounted device “Android-x86” in nautilus and shot down Ubuntu (use the button with the toothed wheel in the upper right desktop corner)

After booting Android x86 again, I was able to enter also @ in notes app, as shown below. Just press AltGR+Q for a @ character.

Note: During my first attempt, I also changed the entry for key E to.

key E {
label: ‚E‘
base: ‚e‘
shift, capslock: ‚E‘
alt: ‘\u0301
ctrl, alt, meta: ‘\u20ac

This should enable the Euro character. But something went wrong and I wasn’t able to use the German keyboard layout in a proper manner. I reverted back to my first file version and the keyboard worked as espected (but withoud € character). Maybe the trick mentioned in [5]: copy alternative keyboard files to system folder and rename them to Generic_de.* will help. I haven’t investigated it deeper yet.

In part 4 I will show, how to add an ARM emulator to support ARM based Android apps.

i: Running Angry Birds on an Eee PC 701G with Android x86 – Part 1
ii: Installing Android x86 4 RC2 on an Asus PC 701G – Part 2
iii: Modify keyboard settings in Android x86 4 RC2 – Part 3
iv: Installing ARM-Emulator on Android x86 4 RC2 – Part 4 (21/6/2912)

Similar articles:
a: Running Honeycomb on a Eee PC 701G
b: Testdrive: Android x86 3.2 RC2 on Eee PC & MSI Wind U 100
c: Running Android x86 ICS RC1 on Eee PC 701G and other Netbooks
d: Installing Android x86 on a SD card

1: project page
2: Android x 86 4RC2 release notes
3: Download page
4: Keymaps-layout
5: Sprachdateien anpassen (alt)
6: keyboard map and layout files for Eee PC 1015PX
7: key character map file
8: Dateien mit root-Rechten in Nautilus bearbeiten


Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

3 Kommentare zu Modify keyboard settings in Android x86 4 RC2

  1. Daniel sagt:

    Problem with the EURO sign is the double mapping of the alt key in your mapping definition.

    alt: ‘\u0301‘
    ctrl, alt, meta: ‘\u20ac‘

    Removing the first line solves the issue and it works just fine.

    Thanks for your nice post.

    PS: If you want to avoid the hassle with transfering the file around you can just fire up terminal, su, and edit the file with vi.

  2. Miguel Monroy sagt:

    Thanks a lot, It worked for me, I used to set my spanish keyboard on Android x86 installed on an Acer Aspire laptop

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.