Hi to all!
On monday I for the first time tested Android on my Rhodium and must admit that I'm really impressed! There are, however, some minor problems in the version I'm using (Stock 2.2 Oct 28):
Pressing Power Button does nothing
German keyboard layout doesn't allow to imput all the umlauts. FN+u always gives you Ü instead of ü. And composing FN+Shift+[a/u/o] to get a capital umlaut doesn't work at all.
So I did a bit of hacking to fix this:
As far as the power button is concerned, the problem is a wrong keycode. Power used to be 102 but somehow now it became 116 which was not accordingly changed in the layout files. So all what I did was to change
rootfs.img/init.etc/keymaps/rhod100_de_navi_pad.kl
by replacing
Code:
key 102 HOME WAKE # Power button
by
Code:
key 116 HOME WAKE # Power button
As far as German keyboard layout is concerned, I just took rhod100_de_microp-keypad.kcm.bin and replaced a few HEX-values via GHex, accoring to this table. Well, the keys look like
A A a A ä A
U U u U Ü Ü
O O o O Ö Ö
so I figured out that the 5th one should FN+button and the 6th one FN+Shift+button and changed the hex codes accordingly. As far as I can see, the layout is correct now.
FN+ u -> ü
FN+Shift + u -> Ü
and so on. So far I didn't notice any bugs. I've uploaded the modified file for devs to test and may be include it into a next build.
Regards
Bombenbach
Hey Bombenbach,
great Work though. I just tried to edit this a few times but my work wasn't that effective.
So i guess everyone can replace the files in the sysmtefolder of Android. I tried that and with Root Explorer it was possible. Does the file persist if i reboot than??
I'm not really familiar with Root Explorer, since I directly mount the root.img in Ubuntu on my Laptop, but basically replacing the file should be enough. And editing rhod100_de_navi_pad.kl, if you want the home button to work. It will be persistent until you install a new build with a new root.img
Good work! I'll have a look at this at the weekend.
Can I check - the change you made gives you:
Power button short press: sleep/wake
Power button long press: Silent/Airplane/Power off menu
End button short press: Home
End button long press: Recent applications
If so, then that would be a great fix. It might be worth trying to mod the key map too, to add things like pipe and tab...
snalbansed said:
Good work! I'll have a look at this at the weekend.
Can I check - the change you made gives you:
Power button short press: sleep/wake
Power button long press: Silent/Airplane/Power off menu
End button short press: Home
End button long press: Recent applications
If so, then that would be a great fix. It might be worth trying to mod the key map too, to add things like pipe and tab...
Click to expand...
Click to collapse
First of all, my fix doesn't change the default behaviour of the buttons. My problem was, that Power button didn't work at all, making me use Back button all the time. So my fix only makes it work again.
What you're asking about is probably swapping Power and End buttons. Well, that can be done too, of course. The problem is that Android doesn't differentiate between sleep and end call, e.g. these two functions always has to be performed by the same button. Thus, swapping Power and End will indeed allow you to use Power button for sleep/wake but you'll also have to end calls with the Power button only. End button will then work only as Home/Recent apps.
I've found a thread about this, in which devs argue that ending calls with Power button would greatly confuse most users. I can understand that, but nevertheless I also can tell you how to change this. It's actually quite easy. All you have to do is go to /init.etc/keymaps/ (rootfs.img) and modify the appropriate kl-file:
rhod100_[uk/de/fr/it/nordic]_navi_pad.kl
or
tilt2_navi_pad.kl
depending on you Rhodium model
there you'll find the following lines:
Code:
key 102 HOME WAKE # Power button
key 107 ENDCALL WAKE_DROPPED
changing them to
Code:
key 107 HOME WAKE # Power button
key 116 ENDCALL WAKE_DROPPED
should do the trick (at least it in my case on rhod100_de). I replace 102 by 116 because on my Rhodium the Power button's keycode is 116 and not 102. It might be the case that on other Rhodiums it's still 102 although I'm not quite sure about that. Anyway, either 116 or 102 should definitely work.
I don't know how you guys usually modify your rootfs.img but as a Linuxer I simply mount it with
Code:
sudo mount rootfs.img /mnt -o loop
do the changes and then unmount it with
Code:
sudo umount /mnt
P.S. Somehow I must admit that ending a call with Power button is very convenient.
I see. It looks like you are using a relatively old rootfs, ie after they swapped the power and home buttons, but before they fixed the power button correctly. So next time you update your rootfs, you should find that bit works already.
The current rootfs file for the German rhod100 has the lines as follows:
Code:
key 116 POWER WAKE
key 107 ENDCALL WAKE_DROPPED
I'll still have a play with the keymap though!
Oh. Well, I downloaded my rootfs just a few days before the current release came so I thought that it's still quite recent. My bad. Anyway, you should be able to switch the buttons back just by switching 116 and 107.
I have had a play with adding HOME to the key 107 line in addition to the other two commands, but it didn't work. I was hoping to be able to regain the Home key long press functionality. Oh well.
On the other hand, I have now added | (pipe) to the Fn Z key press, which will be useful when using ssh. Also, I was going to add tab for the same reason, but I discovered that it is already mapped to Fn space, so I didn't need to!
Somehow that's strange. I've just updated to the latest rootfs (XDAndroid2.2Froyo.110110.rar) and am using the latest kernel (3.11.2010) and in my rootfs I still have
Code:
key 102 HOME WAKE # Power button
key 107 ENDCALL WAKE_DROPPED
which means that Power button does nothing at all. If I change this to
Code:
key 107 HOME WAKE # Power button
key 116 ENDCALL WAKE_DROPPED
I basically get all what I want: Power Button becomes sleep/wake/end call and End button is Home. Long pressing it gives me the list of the recent apps.
Can it be that you're using some other rootfs?
Hey Bombenbach,
is your ä, ö and ü working correctly now with your modified keymap? Always writing big, sucks
If the Funcion is well, how can i replace the old one?! With rootexplorer i can replace the old file but no change to the old problems .
Bieka said:
Hey Bombenbach,
is your ä, ö and ü working correctly now with your modified keymap? Always writing big, sucks
If the Funcion is well, how can i replace the old one?! With rootexplorer i can replace the old file but no change to the old problems .
Click to expand...
Click to collapse
I haven't tried, but if you replace it when running Android then reboot, does it not work?
Sent from my MSM using XDA App
As I've already said in my first post, with my modified keyboard all umlauts work fine including capital letters.
I replaced the file by mounting rootfs.img on the SD card in Linux. This way everything is persistent.
Maybe you can't edit rootfs.img when running Android, like you tried with rootexplorer. Unfortunately, I'm not really familiar with Android file permissions or rootexplorer, so I can't tell another way to replace the file except of using a Linux distro for that.
Bombenbach said:
As I've already said in my first post, with my modified keyboard all umlauts work fine including capital letters.
I replaced the file by mounting rootfs.img on the SD card in Linux. This way everything is persistent.
Maybe you can't edit rootfs.img when running Android, like you tried with rootexplorer. Unfortunately, I'm not really familiar with Android file permissions or rootexplorer, so I can't tell another way to replace the file except of using a Linux distro for that.
Click to expand...
Click to collapse
Hey Bombenbach,
of course i read your posts but i thought you explored other ways to replace this file . I've got a Kubuntu version installed and tried to change the files inside the .img files but i wasn't able to open then. I must say that my Linux knowledge is not that good .
I tried to replace the files inside with droid explorer. I could explore and replace both existing *.kcm.bin files inside the folders "/init.etc/keymaps/" and "/etc/keymaps/" but after the reboot I started to write a sms just to test if i could type ä,ö and ü but there was no change before the replacement . So did you know any further folders where i can replace these files? Or must i replace them in the *.img files as Bombenbach said to make a permanent result?!
@Bombenbach are you running the newest kernel (11/3) on your Rhodium100_de? I still search for a reason why my and other Rhodiums are freezing with kernels newer then 10/23 (1st). The funny thing is, i got auto backlight in the first kernel although it was just announced for the second kernel .
Best regards
Bieka
Bieka said:
I've got a Kubuntu version installed and tried to change the files inside the .img files but i wasn't able to open then. I must say that my Linux knowledge is not that good .
I tried to replace the files inside with droid explorer. I could explore and replace both existing *.kcm.bin files inside the folders "/init.etc/keymaps/" and "/etc/keymaps/" but after the reboot I started to write a sms just to test if i could type ä,ö and ü but there was no change before the replacement .
Click to expand...
Click to collapse
Extract bombenbach's kcm.bin file to your home directory. I have used ~/ below to represent your home directory (~/ will expand to /home/username/ automatically)
Work out from the automounted SD card what the path is to your rootfs.img. Or put a copy in your home directory. Either way, substitute appropriately below.
Open a shell/command line in kubunu
Code:
mkdir rootfsimg
sudo mount path-to-rootfs.img ~/rootfsimg -o loop
sudo cp ~/rhod100_de_microp-keypad.kcm.bin ~/rootfsimg/init.etc/keymaps/
sudo umount rootfsimg
sudo is linux speak for 'Do what I tell you, don't argue', so don't abuse it!
Hope that helps.
Edit: I just remembered that I think when I did this, I needed to reset the permissions and/or ownership of the new file.
Code:
ls -l ~/rootfsimg/init.etc/keymaps
will indicate if the permissions or ownership look wrong.
'chmod' is the command to change permissions, and 'chown' is the command to change ownership. Both will require sudo in this instance, but I can't give you the full command without knowing what they were supposed to be!
Bieka said:
Or must i replace them in the *.img files as Bombenbach said to make a permanent result?!
Click to expand...
Click to collapse
I guess you should try it this way. If it still won't work, I'll take a further look at it.
Bieka said:
Hey Bombenbach,
@Bombenbach are you running the newest kernel (11/3) on your Rhodium100_de? I still search for a reason why my and other Rhodiums are freezing with kernels newer then 10/23 (1st). The funny thing is, i got auto backlight in the first kernel although it was just announced for the second kernel .
Click to expand...
Click to collapse
Yes and it actually runs pretty well. As far as freezing is concerned, I guess there might be more differences between different Rhodium flavours then we are aware of, like the hardware of two different Rhod100_de's is not completely identical.
While I was still devving on Rhobuntu there also were always people who complained about freezes and crashes whereas others claimed that they had no problems whatsoever.
But that is just a speculation.
Hey,
first of all thanks snalbansed and Bombenbach for your help. I started Kubuntu and tried your way. The Sudo command is explaind very funny of course i know this command from debian on my VServer . Some commands are in my brain but very unsorted. I'm just happy that i rent the server with a friend who knows Linux better then me . But back to Topic.
I have done all what you explained, but first thing i saw when I umount the rootfsimg is that the img file only got a filesize of 1.6MB and not 15 MB. I copied it to my card and started Android but after some text flying by in the bootsequence i just can read that he found an error and restarts in 3...2...1...reboot.
So the easy way should be that i find out what i made wrong but with this fast flying text, it is impossible.
I just tested again replacing the file with root explorer. This time i discovered a mysterious thing. When i delete the kcm.bin file go out of the folder and come back to it, it is just there. So i think, this was just temporarly deleted. I don't know if i am the only one with this "problem" but this is just curious.
So before posting thousands of sites full of noob questions i just wanted to ask if someone can upload a modified version with this file in it and meanwhile i teach myself in Linux .
Otherwise, if someone has another clue. Just as replacing the file in the img with an application in windows like a Zip Folder, i am all ears.
Here is a modified rootfs.img from XDAndroid2.2Froyo.110110.rar
Modifications:
- replace rhod100_de_microp-keypad.kcm.bin
- switch Home and End on Rhodiums (as described by me in this thread)
Bieka said:
I just tested again replacing the file with root explorer. This time i discovered a mysterious thing. When i delete the kcm.bin file go out of the folder and come back to it, it is just there. So i think, this was just temporarly deleted. I don't know if i am the only one with this "problem" but this is just curious.
Click to expand...
Click to collapse
I guess within Android, this might be considered to be ROM?
Bieka said:
So before posting thousands of sites full of noob questions i just wanted to ask if someone can upload a modified version with this file in it and meanwhile i teach myself in Linux .
Otherwise, if someone has another clue. Just as replacing the file in the img with an application in windows like a Zip Folder, i am all ears.
Click to expand...
Click to collapse
Once mounted, you can use cd and ls to work your way round the img, less to see the contents of files and nano to edit them. You could also use the file explorer in kubuntu to do the job (again, once mounted), but I think you will need the file explorer to run as root. In Gnome/Ubuntu, you would type gksudo nautilus and nautilus (the Gnome file explorer) will start with root permissions. I can't remember the kde equivalent off the top of my head. If you can do it this way, you'll also be able to check/fix permissions etc with a right click - properties.
Sent from my MSM using XDA App
Hey Bombenbach,
thanks for the uploaded rootfs.img. In the meantime i did it and got the rootfs.img changed as described. Again a very big thanks to you and your work!!! Finally typing an e-mail is a real pleasure and didn't looks like my Capslock is brocken for only Ü Ö and ä .
Also a big thank to snalbansed for your patience . You were right with your expect that my failure were the rights. I started sudo dolphin so i could replace the file in init.etc and do a sudo umount rootfsimg. Suprise suprise it worked .
So now for the next quest Is it possible to map some keys on Keyboard to Applications, Functions or like winmo a board of signs. Or isn't there equivalent in Android to that?
Best Regards
Bieka
looking for a volunteer
I've been working on updating the keymaps & layouts for those rhodiums that have keymap source files available and I've noticed that there isn't a source file available for the German rhod100. Judging by the activity in this thread, there appears to be quite a bit of interest in the German keymap. I was thus wondering if someone who speaks German and has a German rhodium would be interested in making a kcm source file for inclusion into the official rootfs that everyone can use.
If someone is willing to make the file, I can provide the sources for the T-Mobile US Rhod 210 and the Nordic version of the Rhod 100 from the XDAndroid repo as examples/templates. I can also compile it for you if you don't already have the kcm compiler. If it works well and people are happy with it, I'll roll it into the keymap update that I plan to submit to the rootfs git in the near future. This way you won't have to add it in again yourself every time the rootfs gets updated.
First, I didn't know if this should go in development or general since most of the people who are going to be on Ubuntu will be devs, but hopefully this will be useful for everyone.
Honeycomb changed a lot of things. Most of the changes are awesome (as we know) but some of them have made certain things frustrating. Honeycomb marked the move from USB Mass Storage to MTP (media transfer protocol). Although for Windows users it actually works pretty well, for Linux users it doesn't...at least at first.
If anyone has hooked up their Xoom to a Ubuntu box then they know at first nothing happens. There is no selection on the tab to "mount" USB Mass Storage because it is not supported (which I thought Honeycomb was supposed to support both so this may change) It's like the computer doesn't even recognize anything is plugged in.
So this was very frustrating but I have put together a solution. Previously I was using a GUI interface called gMTP to connect to the Xoom and transfer files. This was an ok solution and it worked but I would still rather just use it in Nautilus like every other drive I use. Ok so starting here I will just post the commands and then explain after so no code gets lost.
Start with installing a needed program for all of this to work
Code:
sudo apt-get install mtpfs
Next we will create the device rules, so Ubuntu recognizes it as a USB device.
Code:
sudo gedit /etc/udev/rules.d/51-android.rules
NOTE: Some of you may have already added the Vendor ID. If you don't this file will start off blank and then you need to add this next line. If it does not come up blank, then make sure you have a line with Vendor ID 22b8 and 18d1 (for bootloader which uses a different VendorId) and you are all set.
Code:
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
You might need to start a new terminal for this change to take effect for adb and bootloader access.
make the mount point and take ownership:
Code:
sudo mkdir /media/xoom
sudo chown user:user /media/xoom
NOTE: "user" in the above code is literally your user name for your box.
ANOTHER NOTE: if you stopped here you could mount by typing mtpfs /media/xoom -o allow_other and unmount by typing fusermount -u /media/xoom...but that's no fun
add the mount point to your fstab:
Code:
sudo gedit /etc/fstab
In the first unused line available you might want to type a comment like:
Code:
# mount point for moto xoom
then add this line after it:
Code:
mtpfs /media/xoom fuse user,noauto,allow_other 0 0
Next modify fuse.conf to allow_other:
Code:
sudo gedit /etc/fuse.conf
uncomment the last line which should read:
Code:
#user_allow_other
uncomment this line by removing the '#' symbol.
add your user to the fuse group:
Code:
sudo gedit /etc/group
a long file will open, press CTRL+F to bring up the find dialog and type
Code:
fuse
close the dialog and fuse should be selected and visible.
At the end of that line with no space add your user name.
Save that file. Close it.
Lastly reboot your computer.
Now when your computer restarts, if you look at your "Places" menu you will see a Drive marked with 'xoom'
Plug in your xoom, and click on xoom in Places.
Nautilus should open with all your files that you have on your device. It will also place a mounted drive icon on your desktop. If you would like to unmount, right click on that icon and click unmount.
As you can see this was a pain for me, but hopefully this solution will work for everybody. I know the instructions are really long but follow it and you will feel old school mounting your storage in your file browser.
NOTE: THIS WAS TESTED ON UBUNTU 10.10 ONLY, IF THIS WORKS FOR ANYONE ELSE PLEASE POST YOUR FINDINGS.
Also, I am fairly new to Linux actually, so if there is an easier way to mount the storage in nautilus let me know. This works for me and I just want to help out so please no flames.
Couple things I have also noticed with MTP, when you have the internal storage "mounted" you still actually have access to the files on the device. Plus the file transfer is a lot faster. Usually I had been getting about 4 Mb/s and now I get about 15. Of course this speed difference from what I am used to might be the internal storage vs. SDCard transfer rate diffs.
Last thing, is this might need to modified when the sdcard access comes since there is only one mount point specified.
not trying the artificial bump.
I guess no comments on 228 views means this is working?
Can someone chime'in if this worked for them so I can know'if it works'as is or needs to be tweaked.
Thanks
I got mount up and running last night. Works like a champ. Great work. I was tired of pushing and FTP.
Thanks for the reply. Glad it worked for you too. One thing I need to add tonight to it is the fact that the xoom uses a different vendor'id when it's in the bootloader. The one vendor id if used alone will not recognize the xoom to use fastboot but ill update it when I get home.
FWIW, the "mtpfs" package in 10.04 was broken when using the Xoom, and causing segfaults. I found the source and rebuilt that and now it's working OK.
kcrudup said:
FWIW, the "mtpfs" package in 10.04 was broken when using the Xoom, and causing segfaults. I found the source and rebuilt that and now it's working OK.
Click to expand...
Click to collapse
So, I'm on 10.04 and not getting segfaults, but after pugging in (xoom is in usb debug mode) and click on xoom in places, ubuntu gives me the error "could not open location file:///media/xoom. Error stating file '/media/xoom': Permission denied"
Would love to get a copy of your recompiled 10.04 mtpfs package as a deb file...
I found this deb package for mtpfs 0.9-1 that you can try
mtpfs_0.9-1_amd64.deb
roberj13 said:
I found this deb package for mtpfs 0.9-1 that you can try
mtpfs_0.9-1_amd64.deb
Click to expand...
Click to collapse
Unfortunately, that's not gonna work for me. I'm 32-bit.
Ill keep looking, for some reason the 64-bit was the only one there.
roberj13 said:
Ill keep looking, for some reason the 64-bit was the only one there.
Click to expand...
Click to collapse
Thanks! If i could ge this to work, it would totally be awesome!
--Q
Most excellent guide!! Thanks you for taking the time to figure this out. I'm on 10.10 so I have nothing else to add.
Works flawless on Ubuntu 10.10 running on an older Mac Pro
Thank you for posting the easy to follow guide.
This is semi-working for me in that I can successfully mount and browse the device, but there are a few problems. One, it locks up Nautilus for 30-60 seconds (grayed out and unresponsive) though it does come back. Two, file transfer speeds are very poor.
I'm trying to load two movies totaling 1 GB right now and the copy dialog says 2hrs 56 min to transfer w/ a speed of 99.7 kb / sec. This is unreliable, however, as the copy dialog is frozen on those metrics.
Build is AMD64, distro is 10.10 upgraded from 10.4.
I appreciate the effort to document this, in spite of my issues. Let me know if anyone has suggestions for a fix and I'll try them.
One day later and this solution is now working for me. The Xoom filesystem behaves oddly in Nautilus, with some files not appearing that have in fact been transferred to the device, but otherwise this is the best solution I've found.
sogrady said:
One day later and this solution is now working for me. The Xoom filesystem behaves oddly in Nautilus, with some files not appearing that have in fact been transferred to the device, but otherwise this is the best solution I've found.
Click to expand...
Click to collapse
I find it odd that Android dosn't play nicely with *nix.. considering they are cousins in the OS family. That it works sooo well with Windows instead offensive IMO
sogrady said:
One day later and this solution is now working for me. The Xoom filesystem behaves oddly in Nautilus, with some files not appearing that have in fact been transferred to the device, but otherwise this is the best solution I've found.
Click to expand...
Click to collapse
I've seen the same thing. Usually an unmount then mount will clear it up.
this did not work for me. i'm getting no application is registered as handling this file
i told nautilus to open it and its saying /media/xoom is not a folder
Using this guide I'm able to mount fine, but I'm seeing a couple issues:
I have my music organized like this:
Artist
-----Artist - Album
----------Music files
When I copy over the top 'Artist' directory to the Xoom's Music folder it works, but, all of the music files have been directly placed in the Xoom's Music folder and the Artist and Artist - Album folders are empty, seems pretty weird?
EDIT: It looks like the Xoom (or MTP?) forces all music files into the root of the Music directory. Even if I try copying the artist folder to the root of the device the mp3 files end up in the Music folder.
EDIT take 2: Nevermind...the Android docs say nested directories are supported for music, and Windows preserves the directory structures fine.
I'm totally unable to copy over movies. I've transcoded a file into mp4 and it seems to copy over but, once the copy is finished the file doesn't show up on the Xoom.
EDIT bonanza: Looks like I'm also able to copy over movies fine through windows...so I guess all my problems are Linux related.
I keep gettting a "Transport endpoint is not connected" error when I try this. I am using 10.04 64-bit. Does anyone know how to resolve this?
So I have been side loading apps, some games I want to play on the TV, but they won't work with a ps4 controller. I've done tested the gamepad with gamepad tester, it is actually all pretty spot on, just no start button. Regardless when I side load say Ducktales, it recognizes the X button. But nothing else. It's really odd.
I use this gamepad for emulators
http://amzn.to/1TG4nJX
You can change the kl keylayout files.
You can find the *.kl files in “/system/usr/keylayout/”.
There should be a file called “Vendor_YOUR-BT-CONTROLLER-V-ID_Product_YOUR-BT-CONTROLLER-P-ID.ki”.
You should be able to pull that files with:
adb pull /system/usr/keylayout/Vendor_YOUR-BT-CONTROLLER-V-ID_Product_YOUR-BT-CONTROLLER-P-ID.ki DESTINATION_OF_YOUR_CHOISE
Click to expand...
Click to collapse
To find out 100% the vendor and product ID of your controlling-devices, just connect your device and start
adb shell
Click to expand...
Click to collapse
and put
cat /proc/bus/input/devices
Click to expand...
Click to collapse
into it.
There should be the name of the device and the needed informations.
Then just google: “Vendor_YOURID_Product_YOURID.ki”
I found 3 ones, all working great for my Xiaomi BT controller.
You can also check the inputs and perhaps it is possible to install “Hacker’s Keyboard” app and you will be able to create your own ki-Files by getting the buttons and write them down in your ki file.
Greetings by Idijt
I am trying to map an Ouya controller
What's the easiest way to get the kl files to “/system/usr/keylayout/ after googling: “Vendor_YOURID_Product_YOURID.ki” ?
Is root needed?
quote:
You can change the kl keylayout files.
You can find the *.kl files in “/system/usr/keylayout/”.
There should be a file called “Vendor_YOUR-BT-CONTROLLER-V-ID_Product_YOUR-BT-CONTROLLER-P-ID.ki”.
You should be able to pull that files with:
Quote:
adb pull /system/usr/keylayout/Vendor_YOUR-BT-CONTROLLER-V-ID_Product_YOUR-BT-CONTROLLER-P-ID.ki DESTINATION_OF_YOUR_CHOISE
To find out 100% the vendor and product ID of your controlling-devices, just connect your device and start
Quote:
adb shell
and put
Quote:
cat /proc/bus/input/devices
into it.
There should be the name of the device and the needed informations.
Then just google: “Vendor_YOURID_Product_YOURID.ki”
I found 3 ones, all working great for my Xiaomi BT controller.
You can also check the inputs and perhaps it is possible to install “Hacker’s Keyboard” app and you will be able to create your own ki-Files by getting the buttons and write them down in your ki file.
Please read this tutorial carefully (take some time for this process)
http://gustavepate.github.io/blog/20130714/android-keyboard-layout-logitech-tablet-keyboard/
Greetings by Idijt