Well, I am currently fooling around with my ADP1 and the one thing that bothers me the most is the fact that the keyboard isnt that well suited for me as Norwegian characters arent easily accessible (I need to hold a in order to get å, etc). I was just wondering if its possible to change what the alt-modifier chars do? (alt+k returns a " for example). I would love to have it as I have on my Touch Pro, where Fn + certain keys give me my norwegian letters
Thanks!
you can write your own key layout map by modifying existing english one.
tell me, if you are interested in and i can guide you
I might be interested in this as well... Depends on how hard it is to do!
Thanks,
Christopher
Here is the thing:
You should take qwerty.kcm file
http://android.git.kernel.org/?p=pl...b_plain;f=emulator/keymaps/qwerty.kcm;hb=HEAD
which is a text file needed to generate key layout.
This file is actually not exact from G1 keyboard, because some meta-symbols are from another key layout.
If you open it, you can find 7 columns like this:
Code:
F 'F' '3' 'f' 'F' '[' '['
The first and the second tells you what key is being considered.
Forth - what symbole would be produced, when you press the key
Fifth - the same, but with _shift_
Sixth - the same, but with _alt_
So what you need to do, is to edit certain column and add symbol you need.
For example both x and alt+x produce the same char 'x', so you can change alt+'x' on whatever you want.
The best way is to enter a Unicode code for you symbols, if they are not covered with ASCII. Based on this:
http://www.fiskeklubben.org/charcters/digitized.html
you should use 00E6 for æ. In this file it should be typed as 0x00E6
When you insert character you need and adjust some other characters, you can send this layout to me and I will generate binary file for layout, which you can use on your G1
Well, it should be easier than it seems to be.
hmm, looking at the qwerty.kcm file, it doesnt all make sense. Take x for example. Fn+x should give x, as you said.. but in the .kcm file, x is displayed like this:
X 'X' '9' 'x' 'X' '8' 0xEF00
Where the the FN-coloumn shows an 8 instead of x. Any idea why?
That is because I don't have layout file for G1.
This file is for some common android device, and fn-keys (or you can call it alt-keys) differs.
So first we need to modify it in order to match with real G1 keyboard.
There is also qwerty2.kcm file
http://android.git.kernel.org/?p=pl..._plain;f=emulator/keymaps/qwerty2.kcm;hb=HEAD
may be it is closer to real G1, but anyway does not match 100%
Ah, will take some time to edit it to match the G1. Il work on it though! What do I do with the binary layout after you're done though?
Thanks for the help
You should backup your G1 layout file and replace with new.
Ive made this one, Not 100% sure its fully correct, but it should do the trick!
I compiled it (though I have to change euro and pound symbols into unicode).
Code:
R 'R' '7' 'r' 'R' 0x00A3 0x20AC
S 'S' '7' 's' 'S' '|' 0x00DF
T 'T' '8' 't' 'T' 0x20AC 0x00A3
I tried it with emulator, seems to work fine.
The idea is: to replace /system/usr/keychars/trout-keypad-v3.kcm.bin with new file.
Here are the details:
I do not write exact instruction, hope you realize how to log into device and copy files.
Now, log to your device. Be sure you have system in rw mode.
otherwise you have to remount:
#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
navigate to /system/usr/keychars/
#cd /system/usr/keychars/
if you type ls you can see a whole bunch of files, I recommend to backup them all.
if you have busybox installed (if you don't, you'll have to do it manually by dd if= of=)
Code:
#cd /system/usr/keychars/
#mkdir backup
#busybox cp * ./backup/
now you need to replace a file trout-keypad-v3.kcm.bin with attached
Changes should affect newly started applications and it should take some time to affect already running (other words you have to type a lot into them in order they run garbage collector and reload keylayout)
Other thing, if your phone is not US G1 your system may be using other file to read layout (not trout-keypad-v3.kcm.bin ). You can check it if you type getevent:
Code:
# getevent
add device 1: /dev/input/event4
name: "compass"
add device 2: /dev/input/event3
name: "trout-nav"
could not get driver version for /dev/input/mouse1, Not a typewriter
add device 3: /dev/input/event2
name: "trout-keypad-v3"
add device 4: /dev/input/event1
name: "synaptics-rmi-touchscreen"
could not get driver version for /dev/input/mouse0, Not a typewriter
could not get driver version for /dev/input/mice, Not a typewriter
add device 5: /dev/input/event0
name: "h2w headset"
As you can see mine using
Code:
add device 3: /dev/input/event2
name: "trout-keypad-v3"
Finally, if you'll succeed, we can write a fancy guide for other people.
WARN: if you mess up badly with layouts you probably won't be able to start telnetd from G1 keyboard and other stuff like this.
So be sure you can login to your G1 from pc with root access and revert changes. I am using JF 1.3, so I can log in via adb shell with root any time from my pc.
Thanks for the guide! I have a question regarding the qwerty file though. What about the keys on the G1's keyboard that is not in the qwerty file? Such as the @-key?
Untouchab1e said:
Thanks for the guide! I have a question regarding the qwerty file though. What about the keys on the G1's keyboard that is not in the qwerty file? Such as the @-key?
Click to expand...
Click to collapse
I don't know, what would happen if you do not map all keys (probably it will yield an error upon certain key or just give nothing), but @ is present in your layout:
Code:
AT '@' '@' '@' '@' '@' 0x2022
I have a question please.
Usualy double click on the up arrow key change the keyboard layout to full upper case, is there any way to set that the double clicking on it will change the layout to other language and not upper case?
I understood that there is a difficult with changing the layout, maybe that may be a nice solution at least for some of us.
zrubi
I don't think there is a strait forward way to do it by now.
But soon (Feb 2009 I think) T-Mobile will introduce G1 to some European countries other then GB, so Google have to develope some easy way to change layouts by this time.
worry said:
zrubi
I don't think there is a strait forward way to do it by now.
But soon (Feb 2009 I think) T-Mobile will introduce G1 to some European countries other then GB, so Google have to develope some easy way to change layouts by this time.
Click to expand...
Click to collapse
Hi!
worry, first of all, thank you for all your research and work on keyboard layout. I've been following your research here and on russian forums.
I've also investigated this topic a bit and found the following following property described at http://www.kandroid.org/android_pdk/keymaps_keyboard_input.html as the one which would allow to switch the layout dynamically without kcm file substitution, but unfortunately it does NOT work.
setprop android.keychar.trout-keypad-v3 /system/usr/keychars/qwerty_ru.kcm.bin
Do you have any new information on this topic?
Do you happen to know how French and German keyboard layout switch is implemented (if there is any switching at all)?
Thank you!
i wanna change my @ button to a /
This is incredible! One step closer to be able to switch keyboard layouts on G1.
Thank you, guys!
How can I change the characters which's showed when I hold a char on keyboard ? (for an example : hold "A" and see)
And how can I creat a new type rule ? For an example I type double "A" an it become "Â", and if type triple "A" , it will return "AAA" and creat an option to on/off this feature ?
worry said:
...you can send this layout to me and I will generate binary file for layout, which you can use on your G1
Click to expand...
Click to collapse
So how exactly does one generate the binary file? I'm eager to know so I wouldn't need to ask people to do that for me when trying out layouts
Does anyone have the .kcm (not .kcm.bin) file for US G1 or ADP? (I guess it's trout-keypad-v3.kcm) or know where I can find it?
/Mats
Related
Disclaimer
This short tutorial is based on my own research regarding missing keyboard layout mapping in stock Honeycomb/ICS Android for my Motorola XOOM. It is not intended to be a complete description of the Android input system, please refer to the official documentation for more information. This text should suffice for anyone with a basic knowledge about IT Anyway, if you break something, 'aint my fault. Won't take any responsibilities for YOUR actions.
Requirements
- rooted Android 3.0+ device (3.0, 3.1, 3.2, 4.0)
- text editor
- external keyboard to play with
Background stuff
(simplified, no bashing )
Keyboard (connected to any device) sends key codes to the target device. Key codes are just plain numbers, eg. if you press the "A" key on the keyboard, the computer reads "30" number. Since "30" is quite difficult to remember as being the "A" button, it is much more handy to describe keycodes as char codes: in the target software we get a KEY_A instead of 30.
Android uses two files for keyboard key-to-output mapping: .kl (key layout) and .kcm (key character map).
*.kl file describes the mapping between real keyboard codes to their virtual values, eg. 30 => KEY_A.
*.kcm file converts char codes to key events (KEY_A pressed? Send character "a". Shift + KEY_A? Send character "A", etc.)
So if you connect an external keyboard (USB, BT, Ir?) to your Android device, you get the following chain:
Code:
[keyboard] => [kl] => [kcm] => [application]
All devices (well, most of them) can be identified by VID (Vendor ID) and PID (product ID). VID and PID are 4 hex symbols each.
Android by default uses /system/usr/keylayout/Generic.kl and /system/usr/keychars/Generic.kcm for keyboard handling. If you look into /system/usr/keylayout/ and /system/usr/keychars/ you may find some more keymaps, including something like Vendor_xxxx_Product_xxxx.* Those files are used for specific devices, eg. Vendor_045e_Product_028e.kl is used for XBox 360 controller. When you connect the keyboard, Android checks the peripherial device VID and PID and looks for matching kl and/or kcm. If there is no matching file found, Generic.kl/Generic.kcm is used instead (disjoint -> you may have a specific kl and generic kcm, generic kl and specific kcm, etc.).
You may get the PID/VID of your external keyboard under for example Windows (in device manager [devmgmt.msc] find your keyboard and check its details [properties->details], for example HID\VID_046D&PID_C312\6&26DA469B&0&0000 => Vendor_046d_Product_C312). So if you would like to prepare a keymap for my USB Logitech keyboard, you will have to provide me with Vendor_046d_Product_C312.[kl|kcm] files
Both KCM and KL files are encoded in ANSI -> no special (national) characters allowed except for 'classic' set! If you want to include any national or extra character, you need to use their unicode hex values in \uXXXX variant. See http://www.tamasoft.co.jp/en/general-info/unicode.html for a huge list of unicode characters.
Getting hands dirty
- pull Generic.kcm from your device via adb:
Code:
adb pull /system/usr/keychars/Generic.kcm
- open it with Notepad++
- scroll through the blahblah about not modifying the file to the section with
Code:
key A {
label: 'A'
- this is where your work starts!
In general the map is composed as fillows:
Code:
# comment starts with a hash
key [keycode] {
label: '[label]'
base: '[key without any modifiers]'
[modifier]: '[key with modifier]'
[modifier]+[modifier]: '[key with both modifiers]'
[modifier],[modifier]: '[key with any of listed modifiers]'
[modifier]: fallback [magic key] # read below
[modifier],[modifier]: none
}
Modifiers can be: ralt, lalt, alt (right/left ALT, any ALT), rshift, lshift, shift (right/left SHIFT, any SHIFT), rctrl, lctrl, ctrl (left/right CTRL, any CTRL), capslock (no right CAPSLOCK on the kb, sorry ), rmeta, lmeta, meta (right/left WIN key, any WIN key). There are probably more, but didn't encounter any...
So, let's make the A key work like on Polish (Programmer) keyboard layout (namely a, A, ą, Ą letters):
Code:
key A {
label: 'A'
base: 'a'
shift, capslock: 'A'
ralt: '\u0105'
shift+ralt, capslock+ralt: '\u0104'
lalt, meta: none # ctrl omitted - ctrl+a does something...
}
Polish letters "ą" and "Ą" have their unicode values of 0x0105 and 0x0104 respectively, thus in order to have them available via right alt + A, we use ralt modifier and shift/capslock ralt modifier. Please note, that it is necessary to have 'shift' modifier for capital A.
Code:
fallback [i]magic key[/i]
is used to map certain key combinations to other commands ("hardware buttons"), such as HOME, SEARCH, MENU, APP_SWITCH, etc. Thus if for example you would like to have lalt+tab for app switching you would have to use the following:
Code:
key TAB {
label: '\t'
base: '\t'
lalt: fallback APP_SWITCH # alt + tab :)
ralt, meta: none
}
And now a Windows+D for desktop shortcut:
Code:
key D {
label: 'D'
base: 'd'
shift, capslock: 'D'
meta: fallback HOME # show desktop
alt: none
}
In short
- in most cases the Generic.kl file is ok, there is no need to prepare .kl for a common keyboard
- either edit Generic.kcm or get VID/PID of your keyboard and prepare a key layout for your language and push it to /system/usr/keychars/
Hints
- backup your Generic.kcm file!
- try to be as specific as possible if you do not use a combination, map it into 'none' section; when you map ralt, don't include alt in 'none', include lalt instead. Remember, that some key combinations have special meanings (ctrl+d, ctrl+c, ctrl+v, etc), and it is better not to include them in your map.
- backup your layout - I lost a lot of time re-creating my keymap after ROM upgrade (symbolic link is a better idea!)
- look through the entire Generic.kcm file - there are a lot of fancy key combinations, for example ESCAPE key can !by default! handle MENU, BACK and HOME keys!
- possible fallback keys are listed in .kl file
- use logcat! You can spot information about external input device and a note about applied KCM/KL files
Finally
Hit "thanks" if you find it helpful. If you prepare a good (national) key layout, please share it!
For Polish national characters we can use "Polska Klawiatura Programisty V2" it works very well with external keyboard on MoPho with 2.3.
thanks for the information. I couldnt find the the Android ICS/Honeycomb virtual key for task switcher..do you know what name is that Task switcher virtual key ?
Hi, I am a newbie with android....
I modify the kcm file to (spanish layout, Generic to Vendor both attached):
An I can't make it work, maybe:
Something is missing?
Errors in the kcm file?
Any advice would be appreciated :crying:
I am away from my PC, but:
1) run Terminal Emulator before connecting the external keyboard
2) enter superuser mode (su)
3) launch logcat (logcat)
4) launch another Terminal Emulator window
5) enter superuser mode (su)
6) connect external keyboard
7) break logcat feed
8) launch dmesg (dmesg) in other window
9) check logcat and dmesg outputs looking for errors
I'm on vacation till next Sunday. I will help you directly once I'm back
Sent from my Galaxy Nexus using Tapatalk 2
Thanks for the help:
Here are fragments of:
dmesg
Start called p = df8e3820
starting connect time
DWC_OTG : [tcc_set_vbus] vbus_state:1
usb 1-1: new low speed USB device number using dwc_otg
usb 1-1: device v1241 p1503 is not supported
input: USB Keyboard as /devices/platform/dwc_otg.0/usb1/1-1/1-1:1.0/input/input5
Click to expand...
Click to collapse
logcat
D/EventHub( 1114): No input device configuration file found for device ' USB Keyboard'.
E/KeyCharacterMap( 1114): /system/usr/keychars/Generic.kcm:454: Malformed character literal.
E/KeyCharacterMap( 1114): /system/usr/keychars/Generic.kcm:454: Invalid character literal for key.
Click to expand...
Click to collapse
I will check line 454 and see what I can do.
UPDATE
So I checked the 454 lien an a 'u' was missing, "\00xx" to "\u00xx".
I use the droidedit pro (1.15.2, and god the save file doesn't work unless root mode is enabled), changed in the ext_sd version use the terminal and copy then I connect the keyboard and it work, oh yeah it simply works (just a fu..ing 'u' for 22kb file)
Anyway thanks for the tip it really, REALLY help me :highfive: :highfive: :good: :good:
Thanks for this, will come in handy.
Hi everyone! Need some help with character map modding for Jelly Bean. I need to assign multiple letters to one button, e.g. "A" for single tap and "[" for double tap (just an example, don't mention).
What I found on source.android.com:
http://source.android.com/tech/input/key-character-map-files.html said:
The following keyboard types are recognized:
...
PREDICTIVE: A keyboard with all the letters, but with more than one letter per key.
This type of keyboard is generally designed for thumb typing.
Corresponds to KeyCharacterMap.PREDICTIVE.
Click to expand...
Click to collapse
Seems like the one thing I need, but I haven't found any syntax explanations or charmap examples for that layout type. Neither on AOSP pages, nor via Google. If your device uses such keymap type or you just know the syntax, post here examples, or attach kcm files. Any hint is good.
Android 4.2.2 - Virtual
Hi
Many thanks for this guides.
On my device Virtual.kcm is used (Acer A1-811, android 4.2.2)
Obviously it is nice to modify some file, rather than to pay 2$ for some application to do such mappings to right characters.
Regards
Logitech K400
Not sure if this goes here, but I have a Logitech K400 keyboard and it has some "special" keys, like the music player key.
What I want to do is to change the default player that opens when pressing that key, in my case it would be Poweramp.
The keyboard also has some other keys on the function keys, and when pressed some of them just are letters, want to edit this too.
There is also a "lock pc" key that opens S Planner.
I hope someone knows what I mean and can help me.
Mapping an external keyboard
In attempting to re-map an external keyboard, i have succesfully found and edited the P1_keyboard.kl file for instance changing the function of the voice search button from performing that function to performing an "Enter" or typing a letter "B" . However what i am trying to do is to use that button to do a combination of Both Letter B and then ENTER, i have tried "+" space etc but with no luck... Is this possible to do in any way?
kcm file has no effect
I create this file for the logitech K810
/system/usr/keylayout/Vendor_046d_Product_b319.kl
This successfully remaps keys.
However creating and editing this has no effect:
/system/usr/keychars/Vendor_046d_Product_b319.kcm
The generic behavior also does not match Generic.kcm
One example is Alt-Tab which switches actually switches applications on my device. It is not mentioned anywhere in anything in /system/usr. Redefining
Alt-Tab in the kcm file has no effect.
I am running KitKat on a Galaxy Note 10.1 2014.
file permissions
injola said:
I create this file for the logitech K810
/system/usr/keylayout/Vendor_046d_Product_b319.kl
This successfully remaps keys.
However creating and editing this has no effect:
/system/usr/keychars/Vendor_046d_Product_b319.kcm
The generic behavior also does not match Generic.kcm
One example is Alt-Tab which switches actually switches applications on my device. It is not mentioned anywhere in anything in /system/usr. Redefining
Alt-Tab in the kcm file has no effect.
I am running KitKat on a Galaxy Note 10.1 2014.
Click to expand...
Click to collapse
Just a guess, are the file permission set appropriately? (chmod 644 /system/usr/keychars/*.kcm)
Ctrl+SPACE does not work
On my nexus7 2012 4.4.4, chroot debian wheezy is running.
When I use emacs with Apple Wireless Keyboard (JIS).
Ctrl-SPACE does not allow me to set mark,
although keep pressing them for about one second just makes it work.
(but keep pressing makes flickering "Mark activated", "Mark deactivated"...)
In the kcm file, CTRL+SPACE is specified as "fallback LANGUAGE_SWITCH".
I tried changing it to none, or commenting out the line, but these doesn't affect.
I also used keytest.apk to inspect the behavior.
It seems just when CTRL+SPACE is pressed, no event happens...?
Does anyone know how to make Ctrl+SPACE (without keep pressing) function as setting mark ?
thank you in advance.
Genius luxepad 9100 keyboard
Hi i have this keyboard and android 4.2.2 i want the keyboard with spanish layout without pay an app, i want to choose the language on the system. Thanks in advance
Keycodes not recognised
Hi there,
I have a problem where I can't remap a key because it's not showing any keycode.
That is: standard keys like A, B, C, etc are ok: I can see their scan code and change it if I want to, but I don't.
Keys like Volume_up, play_pause, etc I would like to have them changed, but I cannot as I can't see any scan code when I press them.
I know all keys work as I tested the remote on windows and it works properly, and I can see keycodes there (but they are not the same as in android, so I can't use windows' keycodes)
Thank you if you can help
enter to send message
hello everyone! does anyone solve question about ENTER key to sending message insdeat of new line command? combination of buttons not works too for the sending messages....
android 4.4.2 + universal external keyboard (with comand buttons)
Toggle Languages
Thanks for this helpful and specific tutorial. :good:
I am trying to map keys for Urdu language. :angel:
My question is, will it work properly with lollipop?
Will it be able to toggle between language.
...
Thanks in advance for you kind information
_TB_TB_ said:
Disclaimer
- rooted Android 3.0+ device (3.0, 3.1, 3.2, 4.0)
Click to expand...
Click to collapse
Hi!
Is there any way to replace kcm without loosing your warranty?
Code:
adb push move /system/usr/
push: move/keychars/Virtual.kcm -> /system/usr/keychars/Virtual.kcm
failed to copy 'move/keychars/Virtual.kcm' to '/system/usr/keychars/Virtual.kcm': Read-only file system
Should I change permissions to put back onto system/usr?
Really this should be on the developers forum, but I cannot post there.
New 7" Chinese satnav, WINCE6.0.
cdFFM-0.3.5 put on TF card and run.
Errors in lines 2251, 2277, 2264, 2270, 2258 for info seem to be links, probably already there - pointing elsewhere.
After reboot many menu items don't work, run MortScript.exe (in root directory of ceFFM), this will allow the scripts to work thereafter, and the menu items work (note some are dummies - useful for modding).
It doesn't boot unless you do the simple kludge below.
To boot into ceFFM use "Navi Path" button to point Navigation to CEMenu.exe (in root directory of ceFFM), then check button takes you to cdFFM, then you can use "Navi Path" button to "Auto run GPS when startup" and you are straight into ceFFM.
[My path was SDMMC\cdFFM-0.3.5\CEMenu.exe, for example].
You then need to edit the navigator link in the programs directory.
In my case it was iGO8 so I edited SDMMC\cdFFM-0.3.5\PROGRAMS\iGO8.lnk to point to my navigator program like this:
23#"\SDMMC\iGO8\iGO8.exe"
The 23# is the number of characters in "\SDMMC\iGO8\iGO8.exe" (+1 for some reason)
Please note that quite a lot of the menu items in ceFFM are capable of brikking your device.
Now a question
OK, I know its poor form to reply to your own post but...
Two things still not sorted for this satnav:
1) A 480x800 version of NaviPlayer. I don't know how to set the skins to work.
2) The satnav will not load .CAB files. Even if I put wceload.exe and run it pointing to the required file, it just claims the .CAB file is not valid. I've tried quite a few, and I think they are. I presume its a means to prevent people modifying the device. Stand alone .exe's work just fine. Anyone got a fix for this, its really irritating!
If wceload.exe fails, and then probably only signed .CAB-files are accepted. Workaround: Allow installing unsigned .CAB-files. You do this by editing device's registry as
following:
[HKEY_LOCAL_MACHINE\Security\Policies\Policies]
"00001001"=dword:00000001
"00001005"=dword:000000DE
"00001006"=dword:00000001
"00001017"=dword:00000010
"0000101a"=dword:00000001
"0000101b"=dword:00000001
HTH
jwoegerbauer said:
If wceload.exe fails, and then probably only signed .CAB-files are accepted. Workaround: Allow installing unsigned .CAB-files. You do this by editing device's registry as
following:
[HKEY_LOCAL_MACHINE\Security\Policies\Policies]
"00001001"=dword:00000001
"00001005"=dword:000000DE
"00001006"=dword:00000001
"00001017"=dword:00000010
"0000101a"=dword:00000001
"0000101b"=dword:00000001
HTH
Click to expand...
Click to collapse
That's neat...
OK, not that unexpectedly I find no entry \security\policies\polices .
"security" is found:
use\comm\security
machine\comm\security providers
machine\comm\security
machine\software\microsoft\Rpc\securityService
value: machine\software\Rpc ="DCOM Security"
machine\software\internet explorer\security
value: machine\software\internet explorer\security\basic = "security name"
machine\software\internet explorer\security\NTLM = "security name"
"policies" doesn't appear at all.
I found a reference to "username = guest", but neither appeared anywhere else.
I did spot in machine\OEM that value "app" is a path that points to the OEM menu system (main.exe).
May be possible to intercept here (if you wanted).
root\.cab is set to name "@"=64 value "cabfile"
hmmm... nothing that leaps out at you ...
bother!
farmeroz said:
That's neat...
OK, not that unexpectedly I find no entry \security\policies\polices .
Click to expand...
Click to collapse
Create it!
OK I did that, rebooted.
A bit scary as I haven't added such things before...
Still doesn't work.
Attempting to 'run' nitro.cab (nitrogen renamed) fails
However the OS claims that there is no application associated with 'nitro'.
However .CAB is a cabfile under \root\
and a cabfile default icon is \SDMMC\ceFFM-0.3.5\system\wceload.exe,-101
shell\open\command is \SDMMC\ceFFM-0.3.5\system\wceload.exe\"%1\"
So (whilst I haven't a clue) I would expect .cab files to be spotted.
farmeroz said:
OK I did that, rebooted.
A bit scary as I haven't added such things before...
Still doesn't work.
Attempting to 'run' nitro.cab (nitrogen renamed) fails
However the OS claims that there is no application associated with 'nitro'.
However .CAB is a cabfile under \root\
and a cabfile default icon is \SDMMC\ceFFM-0.3.5\system\wceload.exe,-101
shell\open\command is \SDMMC\ceFFM-0.3.5\system\wceload.exe\"%1\"
So (whilst I haven't a clue) I would expect .cab files to be spotted.
Click to expand...
Click to collapse
Use Win32 "MSCEInf" utility (it's freeware, google for it) to extract any .CAB file, if "wceload" doesn't work for you. After having extracted the .CAB, you are able to copy the application/data to any location of your choice at mobile device.
Oooh... That looks like a solution....
Didn't work. Can't see why though.
Hmmm. That editor shows (XML)
[Version]
Signature = "$Chicago$"
CESignature = "$Windows CE$"
Provider = "BenThon"
surely chicago is a win9x version?
I thought I had, but reading the long Nitrogen thread I don't think I did.
There doesn't seem to be a version for wince5/6, that's downloadable from anywhere, even though it exists somewhere because people have run on wince5 systems. Microfi is overworked...
I was somewhat under the impression that mobile was +- same as CE, but clearly not.
Signature="$Chicago$"
simply tells you the machine's OS the cab was built on[
I guessed that, sadly after I had posted.
Basically for my satnav I need a music player to play in the background, easily reachable from iGo8 (using megaduck99 skin, I have now got just how I want it!) nav screen and back. Really all I ever want to do is skip to the next track, as with 1000+ MP3's, sometimes you just aren't in the mood for some of them. Naviplayer (if it had an 800x480 skin) is finger usable for this whilst driving. Then (with bluetooth) I can just plug the satnav into my car radio (FM is rather poor quality) and utter perfection .... (who needs CD's these days?).
I'll have to have another stab at working out how to run the skins on naviplayer.
Your front end, particularly with the wealth of apps, is excellent. I have now put it on a no-name 7" netbook I use to backpack with, and now realise how slow it is compared to the more modern ones. Good enough for emails etc though.
NB I have been starting (manually) by running CEMenu.exe rather than ceFFM, is that what you intended?
To reskin NaviPlayer it merely suffices to have a folder named "mpskin" containing the files for the required skin copied from the examples given.
Its not immediately obvious because there is no default skin file provided (eg the small gold one it defaults to).
The fonts aren't quite right, either size or location
I have come across a bug in some of the apps. If I open notepad and the file-open, the entry box is not within the screen just far enough off that you can't grab it to pull it down. This is also the case in word. Doubtless somewhere there is a file that sets the position, any ideas? Annoying because I can't edit the mpskn.skn file....
Modified MP3P.SKN inside NAVIPLAYER\MPSKIN
This should work for all the 'Simple 3.1" skins.
If you want a button to appear when minimised you will have to adjust the button size/position/etc .
This is done in/with [MAIN_MIN_WINPOS]
If you have a larger button (as I do) then you will need to make a button of the appropriate size to replace the one in
BACK_MIN.BMP
I haven't done one yet, for iGO8 it will need to be under the bluetooth one, and similar size.
Hope this is useful.
NB I have no loader files for NaviPlayer (last good mod), I got it included in ceFFM.
;====Modified MP3P.SKN
[MP3 INFO]
MP3_Ver=1.0
[MAIN_WINPOS]
Width=800
Height=480
[MAIN_MIN_WINPOS]
Left=66
Top=0
Width=60
Height=24
WidthOne=1
[TRACK_POS]
Left=572
Top=129
Width=60
Height=14
SubValue=17
[TIME_POS]
Left=188
Top=129
Width=90
Height=14
SubValue=17
[SEEK_POS]
Left=212
Top=152
Width=373
Height=9
[INFO_POS]
Left=280
Top=189
Width=150
Height=9
;SubValue=0
[STATUS_POS]
Left=387
Top=375
Width=64
Height=38
[TITLE_POS]
Left=218
Top=65
Width=366
Height=20
[VOLBAR_POS]
Left=466
Top=272
Width=162
Height=6
[PEEK_POS]
Left=173
Top=250
Width=250
Height=28
SubValue=7
[VOLSLIDER_POS]
Left=466
Top=271
Width=162
Height=10
SubValue=3
;[TIMESLIDER_POS]
;Left=216
;Top=179
;Width=369
;Height=10
[PLAYOPT_POS]
Left=561
Top=184
Width=147
Height=12
SubValue=30
;====================
;Button Position
;====================
[BT_PLAY_POS]
Left=331
Top=330
Width=140
Height=150
[BT_STOP_POS]
Left=474
Top=285
Width=178
Height=49
[BT_PREV_POS]
Left=147
Top=396
Width=180
Height=84
[BT_NEXT_POS]
Left=474
Top=396
Width=178
Height=84
[BT_OPEN_POS]
Left=0
Top=102
Width=140
Height=73
[BT_MODE_POS]
Left=661
Top=342
Width=139
Height=138
[BT_ALBUM_POS]
Left=0
Top=182
Width=140
Height=73
[BT_EFFECT_POS]
Left=660
Top=485
Width=130
Height=70
[BT_EQ_POS]
Left=661
Top=182
Width=139
Height=73
[BT_PRESET_POS]
Left=661
Top=261
Width=139
Height=73
[BT_MULTI_POS]
Left=0
Top=23
Width=140
Height=73
[BT_VOLDN_POS]
Left=147
Top=342
Width=180
Height=50
[BT_VOLUP_POS]
Left=474
Top=342
Width=178
Height=50
[BT_MUTE_POS]
Left=0
Top=261
Width=140
Height=73
[BT_EXIT_POS]
Left=661
Top=23
Width=139
Height=73
[BT_MINIMIZE_POS]
Left=661
Top=102
Width=130
Height=73
[BT_SHUF_POS]
Left=0
Top=342
Width=140
Height=138
[BT_MIN_NORMAL_POS]
Left=0
Top=0
Width=60
Height=24
[BT_MIN_NEXT_POS]
Left=62
Top=0
Width=4
Height=24
[BT_MIN_MUTE_POS]
Left=68
Top=0
Width=4
Height=24
;==============================
; IMAGE LIST
;==============================
[IML_NUMBER]
Width=16
Height=12
[IML_STATUS]
Width=32
Height=38
[IML_PLAYOPT]
Width=49
Height=12
;==============================
; COLOR Type : BGR (0xffffff)
;==============================
[COLOR]
Info=0xffffff
Title=0xffffff
Seek=0xffffff
PeekLeft=0xffffff
PeekRight=0xffffff
VolumeBar=0xd14a00
;==============================
farmeroz said:
Please note that quite a lot of the menu items in ceFFM are capable of brikking your device.
Click to expand...
Click to collapse
You really experienced it? If so then you should specify them here to clarify things.
ceFFM's Original Thread
jwoegerbauer said:
You really experienced it? If so then you should specify them here to clarify things.
ceFFM's Original Thread
Click to expand...
Click to collapse
Sorry for the delay, HDD MBR problems....
No, I didn't brick my machine, I am very cautious. However being able to play with the registry, hexeditors etc, is potentially hazardous.
Hmm, on reflection its a combination of not knowing what they all do, and not knowing my way round winCE. Ie ignorance.
String not closed
China gps KENMOO 7', wince 6. Hello, excuse my English. Trying to install ceFFM, the installation begins, but then the message: String not closed (mising quote)
Line 3631 (\ SDMMC \ ceFFM.mscr)
If (key EQ "Startup), and it's over. I can modify anything? Installing on SDcard. Thank you.
Replace character on Samsung Keyboard
Long time viewer, first time poster. Hoping someone can help find a solution, or at the least point me in the right direction please.
Absolutely loving everything about the stock keyboard, but getting driven to madness by duplicate / key replacing the $ symbol (please see pic here ( tinypic .com/r/adkjmh/8 ))
Does anyone know where the file location is to modify the keyboard and replace the / key (currently set as SHIFT + 4) to a $ symbol.
Browsing other posts, they mention /usr/system/keychars, but every file in this folder appears correct... Done the obvious and changed the input language to no avail. =(
Decompiled SamsungIME.apk but completely lost sourcing the correct xml file... (hopefully been looking in the right place)
Any assistance would be greatly appreciated.
I have Samsung S10 with Android 12
When I connect bluetooth gamepad, it gets recognized as "Physical keyboard" (gamepad is VR BOX)
When I enter in SCUMMVM (gaming app), it has a hud on screen shortcut key (HUD)to call a onscreen keyboard (needed in some games). If a bluetooth gamepad is connected, the shortcut key doesn't work and I can't call the onscreen keyboard. Under "Physical keyboard" options I have turned on "show on-screen keyboard" but it didn't help.
I've read that in past people had simmilar problems with other gamepads on older andorid phones and that the solution was to go to Android settings and "select your default keyboard. (physical or virtual)" but I don't have that option.
Any idea how to solve this problem?
The root problem is that the USB HID report descriptors in your little handheld are written incorrectly.
It's reporting that it can send the alphabet (specifically "Q").
Me? I'd fix the problem by reverse engineering the device.
The next possibility is to use a custom /system/usr/idc/Vendor...idc to make it clear that this is not a qwerty
The last possibility (and the one you probably want) is in Settings > System > Languages & input > Physical keyboard > Keyboard assistance > Show virtual keyboard.
You can load my UsbMode.apk (in the sig) and see that your handheld is identified as a qwerty.
Renate said:
The root problem is that the USB HID report descriptors in your little handheld are written incorrectly.
It's reporting that it can send the alphabet (specifically "Q").
Me? I'd fix the problem by reverse engineering the device.
The next possibility is to use a custom /system/usr/idc/Vendor...idc to make it clear that this is not a qwerty
The last possibility (and the one you probably want) is in Settings > System > Languages & input > Physical keyboard > Keyboard assistance > Show virtual keyboard.
You can load my UsbMode.apk (in the sig) and see that your handheld is identified as a qwerty.
Click to expand...
Click to collapse
Thanks for your answer
As I've mentioned before "Show virtual keyboard" doesn't work. I can see the on screen button that would call the virtual keyboard but it doesn't work if the gamepad is connected
I'm interested in solution to use custom Vendor.idc or to reverse engineer the device but I'm a noob to do it myself. I've went to /system/usr/idc/ dir and can see 4 .idc files where in the files, it says that two are form "Sony DS4...", and two are for "Google Reference RCU Remote" - none seams that belongs to the "no name" gamepad device I'm using? There are bunch of other .idc files but also no one seams to belong to the device...
Here's the paste from the Google RCU device:
1st file:
# Input Device Configuration file for Google Reference RCU Remote.
#
# Basic Parameters
# Due to a memory error on early prototypes of the reference remote control
# the VID/PID is mapped to 248a/8266 instead of 0957/0001
keyboard.layout = Vendor_0957_Product_0001
keyboard.doNotWakeByDefault = 1
audio.mic = 1
2nd file:
# Input Device Configuration file for Google Reference RCU Remote.
#
# Basic Parameters
keyboard.layout = Vendor_0957_Product_0001
keyboard.doNotWakeByDefault = 1
audio.mic = 1
Any help?
This gamepad I'm trying to use is pretty neat to play games by one hand which is great on mobile as you can hold device in one hand and gamepad in other so it would be great to hack it if to also be able to show keyboard on keypress demand if it is possible
Try the UsbMode.apk. Also, does a little boxed "A" appear on the status bar when the remote is active?
First, with the remote active, identify the VID/PID of your device
Code:
$ logcat|grep btif
bt_btif : bta_hh_co_send_hid_info: vendor_id = 0x291a, product_id = 0x8502, // something like this
^C
Could you do me a favor (just for my own interest)?
Code:
$ cd /sys/bus/hid/devices
$ cd whatever // there's only one directory here, named ????:VID#:PID#:????
$ cp report_descriptor /sdcard/descript.img
$ ^D
C:\>adb pull /sdcard/descript.img
Hmm, it looks like there is no option in idc. You'll have to make a keylayout file.
Please use the UsbMode.apk and write down what all the buttons do.
There's not that many. I just need the Android names, you don't need to say which button on the remote it is.
Interacting with the Clipboard from the shell can be difficult.
It used to be easier and you could use service call clipboard ...
Nowadays Clipboard only takes ClipData.
Ok, you could still do it using the service executable but you'd have a long list of opaque numbers.
I wrote a regular executable (not using any Java itself) to fill the Clipboard with your text.
It works for UTF-8, although I haven't gotten it to work pretty-like on Windows.
(I got the CHCP 65001, but I don't have a font for the console.)
Code:
# /data/local/tmp/copyclip 'I want to go to 中关村科贸电子城.'
This is an ELF64, you have to be rooted, it's a beta and everything is subject to change.
It works on A10. Later Android might need some fixes for attribution tags.
You should rename it to plain "copyclip".
Just park it somewhere (/data/local/tmp is fine) and chmod 755 it.
I've made a few tiny tweaks.
You can do the paste automatically, but there's a rub.
The input keyevent is pretty stupid because it rolls out a whole zygote just to inject a key.
Still, if you don't expect performance you can always:
Code:
# ./copyclip 'The short tedious text' && input keyevent 279
Normally, I do either a USB HID device or a key injector daemon if I want performance.
As noted previously, copyclip itself doesn't roll out a zygote, so it's quick.
Edit: Update again March 7th.
Yet another fine tuning.
I'm thinking about -e processing like echo has.
copyclip can be found in my sig.
Hmm, that's interesting. There were big changes in ClipData from A10 to A11.
This wouldn't work if you are on A11.
There's a two new versions out that works for at least A9, A10 & A11, either 32 bit or 64 bit.
If you're not rooted you'll probably get:
Code:
Error: Package android does not belong to 2000
You'll find it in the sig.
I'd appreciate any feedback on success/failure.
It seems like this would be really useful for entering snippets of Unicode text selected from the desktop.
input text can't handle Unicode.
One of the reasons that I'm having fun with this is the efficiency of not using app_process/Zygote/Java.
Code:
Poke3:/ # time input text Hello
0m00.51s real 0m00.28s user 0m00.20s system
Poke3:/ # time /data/local/tmp/copyclip Hello
0m00.04s real 0m00.01s user 0m00.02s system
Yow! I love talking to myself! I'm 7 posts in and no interruptions from somebody who wants to know something.
I just posted (Win32) adbclip.exe, an amazing accessory that works in concert with (Android) copyclip.
If you're on your desktop you can go to some nice Korean (or Japanese or Arabic or English) website, select some text and then paste it to the Android clipboard!
Amazing, eh?
All the details are in my sig, or more directly: http://www.temblast.com/copyclip.htm.
The Android utility copyclip has been updated:
You can style the text bold with -b and/or italic with -i
You can pipe other shell commands to it: date | /data/local/tmp/copyclip