みずの@組み込みWGです。
キーアサインは /system/usr/keylayout/以下のファイルに書かれています。
変更方法は以下の手順です。結構、面倒です。
1) ueventからキーボードの名前を調べる
/sys/class/input/input[0..9] のueventをcatしてNAME=を見ます。
あるいは、adb logcatから次のような行を探します。
I/EventHub( 1342): New keyboard: ... devname='KEYBOARD' ...
keylayout='/system/usr/keylayout/KEYBOARD.kl'
2) KeycodeCheckerでキーコードを拾う
androidzaurusさんのKeycodeCheckerを使ってます。
http://androidzaurus.seesaa.net/article/107106587.html
キーを押して表示される値をメモしておきます。Androidで認識され
ないキーはkeyが0、nameがUNKNOWNになります。
key - scan - modifier - nameのうち、scanが重要です。
3) 専用のlayoutファイルをつくる
/system/usr/keylayout/qwerty.klを1)で調べた名前.klという
ファイル名でコピーを作成します。エディタなどで変更が必要なの
でPCで行ったほうがいいです。
4) layoutファイルをカスタマイズする
作成したlayoutファイルに割り当てたいキーのレイアウトを追加
します。書式は、
key [2)で調べたscanコード] 機能 [|WAKE|WAKE_DROPPED]
5) ターゲットへインストール
4)で作ったファイルを、/system/usr/keylayoutにコピーし、
パーミッションを0777にしておきます。
6) /system/usr/keychars
keycharsファイルも3)と同様にqwerty.kcm.binを1)で調べた名前
でコピーして作成します。
参考までに私が使っているキーボードでのklファイルに追加した部
分を貼り付けておきます。
key 1 BACK WAKE_DROPPED
key 41 HOME WAKE
key 59 HOME WAKE_DROPPED
key 88 ENDCALL WAKE_DROPPED
key 116 ENDCALL WAKE_DROPPED
key 99 ENDCALL WAKE_DROPPED
key 70 MENU
key 119 DPAD_CENTER WAKE_DROPPED
ESCで[Back]、PrintScreenで[End]、ScrollLockで[Menu]、
Pauseで[OK]になるようにしてます。使っている折りたたみ式の
コンパクトなキーボードで具合のいい配列になるようにしていま
す。
DPAD_CENTERは[OK]です。エミュレータ時代の名残りのような
名前ですね。WAKE/WAKE_DROPPEDはサスペンドからの復帰を行
うかどうかの指定です。常時ON状態のBeagleでは関係ないと思
います。
1つのscanコードに複数の機能を割り当てないよう注意してく
ださい。
ではでは。