Xperia pro/mini proでキートップにない記号を入力する2011/11/07 11:38

Xperia pro(MK16i)/mini pro(SK17i) で、キーマップの置換というか追加をしてみた。

Xperia pro/mini proは、QWERTYキーボードが付いていて、なかなか便利。通常のAndroidアプリを使う分には、もう完璧って感じなのだが、ベースになっているLinuxにアクセスする場合、ちょっと困った事になる。標準状態では、キーボードから入力できない記号が多いのだ。端末エミュレータ等を使用する場合に、シェル(sh)で頻繁に使用するパイプ"|"や、リダイレクト"<"・">"・">>"といった記号がキートップに無く、非常に苦労する。

このままだと不都合な事が多いので、キーマップの修正にチャレンジしてみた。
技術的な詳細は、下記のZIPファイル内の「キーマップ技術情報.txt」を参照されたい。
バイナリーエディタでファイルの中身を変更して書き戻すだけなので、この情報が理解できる人なら、好みに合わせていろいろ変えてみる事も容易だろう。

で、結論として、「かなりうまくいった」ので、公開することにする。「かなり」ってのは、つまり、ダメな部分もあったのだ。残念な事に、入力方法に「POBox Touch」を選んでいる場合、この変更が有効にならない。どうやら、POBox Touchは、直接、キーコードを読み込んで、独自に物理キーの処理を行っているようだ。入力方法に「nicoWnnG IME」や「ATOK」を使用すれば、問題なく記号類が入力できるようになるので、入力方法を適宜選んで使ってもらえば良いだろう。

以下に、修正したキーマップ定義の導入方法を示す。

なお、修正されたキーマップを導入した場合に入力できる記号類は、文末に記載したので、そちらを参照の事。

※注意事項
  以下、すべて自己責任で行うこと。端末が動作しなくなったり、何らかの動作不良となった場合でも、一切の保証は行わないので、そのことを了承した上で操作する事。

1) 準備
この作業は、要rootedだ。Xperia pro/mini proは、事前に「root取り」を行っておくこと。
やり方は、以下を参照の事(ブートローダーのアンロックは不要!)。

  [NEW][26/OCT/2011][ROOTING] Xperia 2011 Easy Rooting Toolkit [v1.0](zergRush Exploit)
    http://forum.xda-developers.com/showthread.php?t=1320350

  簡単に手順を示しておく(要Windows PC)。
    a) 上記のサイトから、DooMLoRD_v1_ROOT-zergRush-busybox-su.zipをダウンロード
    b) Xperia側でUSBデバッグを有効化した後、PCに接続(PC Companionは起動しない事)
    c) PC上で入手したzipファイルを解凍し、フォルダ内の runme を実行

  ※上記以外の方法でrootを取っている場合、busyboxが未導入なら導入して、/system/xbinに
      busybox --install -s /system/xbin
 とでもして、リンクを作っておくこと。

2) 修正版キーマップ用ファイルをXperia側へコピー
  先ず、以下のZIPファイルをPC上でダウンロードして、解凍しておく。

    MK16i-SK17i-key-remap.zip

  Xperia側のmicroSDに、「keymap」フォルダーを作成し、上記のZIPファイル内の以下のファイルをコピーする。

    pm8058-keypad.kcm.bin.remap

3) 端末エミュレーターのインストール
  以降の操作は、Xperia側で端末エミュレーターを使って行うので、端末エミュレーターをインストールしておく。お薦めは…

    ConnectBot

  このConnectBotでは、表示される文字サイズがボリュームボタンで変更できるので、見やすいサイズに簡単に変更できる。日本語の入力はできないが、ファイル名等は日本語でも化けずに表示される。インストールしたら、「local」で接続先を作っておけば良い。

4) 端末エミュレータを起動して、キーマップファイルを置換
  端末エミュレーター上で、以下のコマンドを実行する。なお、「$ 」や「# 」は、シェルが表示するプロンプトなので、入力しない事。

  $ su
  # mount -o remount,rw /dev/block/mtdblock0 /system
  # cd /system/usr/keychars
  # mv pm8058-keypad.kcm.bin pm8058-keypad.kcm.bin.org
  # cp /sdcard/keymap/pm8058-keypad.kcm.bin.remap ./pm8058-keypad.kcm.bin
  # chmod 644 pm8058-keypad.kcm.bin
  # chown root.root pm8058-keypad.kcm.bin
  # reboot

  以上で、Xperiaが再起動する。これで、置換終了。

=====

入力可能となる文字等

入力文字  キー操作    コメント
------------------------------------------------------------------------
ETX(0x03) ALT+SHIFT+C Ctrl+C シェル(sh)で、フォアグラウンドプロセスの強制終了
EOT(0x04) ALT+SHIFT+D Ctrl+D シェル(sh)で、入力の終了(End of file)
SUB(0x1a) ALT+SHIFT+Z Ctrl+Z シェル(sh)で、フォアグラウンドプロセスの一時停止
ESC(0x1b) ALT+SHIFT+Q エスケープ
  <     ALT+SHIFT+,
  >     ALT+SHIFT+.
  [      ALT+SHIFT+K ブラケット(bracket)
  \     ALT+SHIFT+B
  ]     ALT+SHIFT+L ブラケット(bracket)
  ^     ALT+SHIFT+O カレット(caret)
  `     ALT+SHIFT+' バッククォート
  {     ALT+SHIFT+N ブレース(brace)
  |     ALT+SHIFT+? パイプ(vertical bar)
  }     ALT+SHIFT+M ブレース(brace)
  ~     ALT+SHIFT+P チルダ (ConnectBotの場合、ALT+DELETEでも入力可能)
------------------------------------------------------------------------
※ ALTキーは「■」マークのキー


コメント

_ ☆ぬ~☆ ― 2011/11/23 14:17

はじめまして。
先日mini proを購入し、ハードキーのマッピングで困っていたところ、
こちらのサイトを見つけ活用させていただきました。
おかげさまでかなり使いやすくなりました。
有用な記事をありがとうございます。

_ S.Poe ― 2011/11/23 22:55

☆ぬ~☆さん、お役に立てたようで何よりです。
pro/mini proで、キーマップを書き替えて使いたいって人は、
全然いないのか…とか思っていたので、反応があって、ちょっと嬉しいです。

_ くべるトゥず ― 2011/12/23 06:49

こんにちは、ドイツ語配列(qwertz)のmini proを使用しており、
いつもZとYを打ち間違えてはイライラとしていた者です。

キーマップを変更すればよいということはわかったものの、
具体的にどうバイナリファイルの中身をいじればいいのか、
途方にくれていたところ、S.Poeさんのリマップファイルを発見し、
早速ダウンロードさせていただきました。

入力文字を追加する、というS.Poeさんの趣旨からは
ずれた目的での利用で大変恐縮ですが、無事に
qwerty配列となり、喜びを噛みしめております。
もちろん、追加された記号も活用させていただきます☆
どうもありがとうございました!

_ S.Poe ― 2011/12/23 15:29

くべるトゥず さん、お役に立てたようで、幸いです。

ドイツ語配列のものでも、問題なく使えたんですね。なるほど…。
参考になる情報頂けて、感謝です。

_ takuya ― 2012/01/18 20:06

初めましていつも楽しく読ませてもらっています。緊急でご相談したいことがあります。今日xperia pro mk16iが届きました。b-mobileの1GB定額 talkingをさしても、APN設定が出てきません。理由に考えられることは何かありますか?

_ S.Poe ― 2012/01/19 08:42

takuya さん、xperia pro mk16i ご購入ですか。おめでとうございます。
いろいろ楽しんでくださいね。
で、b-mobileですが、もしかして、FOMA SIMのカードを逆挿ししてませんか? SIMを挿したときに、バッテリー側に切り欠きのある方が見える状態が正しい方向です(なんか、一般的には逆方向に挿すって感じだとは思いますが…)。
APNが設定できないってのは、SIMを認識できてない状況ですので、逆挿しでないなら、初期不良かもしれない…。

_ (未記入) ― 2012/05/31 11:24

root化対応のファイルエクスプローラーなどのソフトで直接「pm8058-keypad.kcm.bin」を上書きrebootで書き換え出来ました。(元ファイルは念のため別名保存しました。)

_ (未記入) ― 2012/06/18 13:50

Android 4.0.4にUPするとこの方法は使用出来ません、格納ファイル群も別物ようです。解析をお願いいたします。

_ (未記入) ― 2012/06/19 10:31

>格納ファイル群も別物ようです。
すみません、関係性は見たところ無いです。Android 4.0.4のpm8058-keypad.kcmを開くとキーの割り当てを変更出来ますが、「ETX(0x03)」のコマンド群は駄目でしたので、何か紐付けが必要です。「| ALT+SHIFT+? パイプ」などの記号であれば割り当ては可能のようです。

_ はらぺこ ― 2013/01/09 00:59

Xperia pro
Droid Editを使っています。

jsとhtmlを書いていたのですが
<>{}がでない事に困っていたので助かりました。

_ はらぺこ ― 2013/01/09 02:38

試してみたところ4.04ではシンボリックリンク作っても駄目そうですね。
上の方の方法はよく分からないですが、<>{}の割り当てどうにかできないかなぁ・・・

_ S.Poe ― 2013/01/09 21:12

ICS(Android 4.0x)だと、キーマップのファイルがバイナリー形式ではなく、テキストファイルになっているので、ここのやり方ではダメなんですよぉ。
ICSで、キーマップを変更されている方は結構いるので、探してみて下さい。

トラックバック