キーの位置入れ替え

MobileHackerz再起動日記: au IS01の/systemプロテクトもついに突破される
http://blog.mobilehackerz.jp/2010/12/au-is01system.html
 左ALTキーと左SHIFTキーの位置入れ替えを敢行しました(/system/usr/keylayout/SH_qwerty_key.kl)。


320
 右ShiftをTabに変えたから入力補完かなり便利だわ… 

321
 キーがちょっと少ないから,キーマップは結構悩むよね 
 右shiftはconnectbot改のパイプ入力に慣れちゃった 

325
 >>321 
 キーマッピングファイル(.kcm.bin)いじればモディファイアキーの 
 組み合わせに任意の文字コードを割り当てられるよ。Alt+1=ESC、 
 Alt+Shift+0=|、とか。ただConnectBotはShift+数字で強制的にFKey 
 入力になっちゃうから、Shiftが入った組み合わせを使う場合は結局 
 FKey無効にしたバージョンを使うことになるが。 

329
 >>325 
 なるほど 
 .klと.kcm.binの違いがよくわからないので 
 ちょっと調べて試してみます 

330
 .kcm.bin見たけど対応がいまいち分からないな 
 ただこれ弄れば自分の理想のキーマップにできるんだな 

334
 >>330 
 /system/usr/keychars/SH_qwerty_key.kcl.bin 
 ヘッダ32バイトの後にキーマップ定義16バイトがキーの 
 個数分続く。キーマップ定義は先頭2ワードがキーコードで、 
 後半の4ワードが以下の順に並ぶ4つの文字コード。 
 モディファイアなし/Shift/Alt/Alt+shift 
 
 例) Pキーのキーマップ 
 00001d0: 2c 00 00 00 50 00 37 00 70 00 50 00 40 00 60 00 
 キーコード: 0x0000002c 
 文字コード[0]: 0x0070 = 'p' (単独Pキー) 
 文字コード[1]: 0x0050 = 'P' (Shift+Pキー) 
 文字コード[2]: 0x0040 = '@' (Alt+Pキー) 
 文字コード[3]: 0x0060 = '`' (Shift+Alt+Pキー) 
 
 その他細かい仕様はAndroidのソースでKeyCharacterMap.(cpp,h) 
 見ればわかる。 

336
 >>331 
 キーマッピングファイルのフォーマットにバージョンがいくつか 
 あるみたいなんだけど、もしそれが同じなら使えるかも。 
 バイナリ直接いじるのはちょっとめんどいしね。 

337
 IS01はqwerty.kl書き換えでいけないの? 

338
 >>334 
 thx 
 5Byte目からだと思ったら8Byte目からだったんだな 
 分からないところもあるけど、それだけわかれば十分そうだわ 

341
 あーごめん、>>331はレイアウトファイルのほうだけいじるやつかも。 
 
 キーレイアウトファイル(.kl/Key Layout Map)はハードキーとキーコードの 
 対応関係を定義するテキストファイル。単純にキーの入れ替えとかなら 
 こっちいじるだけでOK。 
 
 キーマッピングファイル(.kcm.bin/Key Character Map)はキーコードと 
 文字コードの対応関係を定義するバイナリファイルで、モディファイア 
 キーの組み合わせも定義可。 
 
 http://source.android.com/porting/keymaps_keyboard_input.html 
 ※ここの説明にある.kcm.binのフォーマットはIS01のものとは異なる 

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年12月08日 07:40
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。