[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.
Anzeige
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.
Anzeige
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:
/system/usr/idc/AT_Translated_Set_2_keyboard.idc
/system/usr/keychars/qwertz_de_DE.kcm
/system/usr/keylayout/qwertz_de_DE.kl
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:
/system/usr/keychars/Generic_de.kcm
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
nautilus
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.
Articles:
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
Links:
1: Android-x86.org 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
Anzeige
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.
@Daniel: Thx for feedback. Working with vi is "a pain in the ass" for me ;-).
Thanks a lot, It worked for me, I used to set my spanish keyboard on Android x86 installed on an Acer Aspire laptop
Is there a limit in the number of languages we can add ?