2012年2月1日水曜日

HTC chacha の FacebookキーでPoBoxの漢字変換切り替えが出来るようにしてみた

HTC chacha に公式bootloader unlock が来たので、色々カスタマイズをしてみた。
chacha は嫁さんの普段使い端末なのだが、音声SIMでしか電波強度を掴まないため、BIGLOBEやso-netの3Gサービスを使いたかったので、Android + データ専用 SIM での動作修正パッチ (ブローヴちゃん)を使用して電波強度を掴めるようにした。
さらにこのパッチは標準ROMではdeodexされていないため、「[ROM] SuperOSR and CyanogenMod7 on HTC ChaCha.」を焼いてみた。
他におもしろそうなカスタムROMがFBIのファイルサーババン祭で死んでいたという理由もある。

そんなカスタム chacha 当初はPoBox Touch 4.3のカスタム版を使用していたのだが、今朝ポケゲさんのblogで「Galaxy Y Pro の片手操作をより快適なものにするために」という記事を見つけた。
どうやらデコンパイルしてスキャンコード(0×170)でキー認識している部分をキーコード SWITCH_CHARSET(0x5f)に修正しコンパイルし直すらしい。
ネタ元はこちら

早速標準のPoBox Touch 4.3をどこからともなく拾って来てチャレンジしてみた。
以下、作業箇条書き

1. APK Managerでデコンパイル出来ない場合はXperia 系の2.3ROMから以下のファイルをpullしてapktoolに登録する。
/system/framework/framework-res.apk
/system/framework/SemcGenericUxpRes.apk
その後、APK Managerのotherフォルダにあるapktoolを使用して、以下のコマンドを実行。
apktool if framework-res.apk
apktool if SemcGenericUxpRes.apk
その後APK Managerを使用するとデコンパイル出来る。

2.ソニエリチェックは以下のファイルを編集する。
smali/com/sonyericsson/android/pobox/OpenWnn.smali
522行目
invoke-virtual {v1, v3}, Ljava/lang/String;->matches(Ljava/lang/String;)Z

invoke-virtual {v3, v3}, Ljava/lang/String;->matches(Ljava/lang/String;)Z

3.スキャンコードをキーコード(SWITCH_CHARSET)に変更する。
smali/com/sonyericsson/android/pobox/jajpIWnnImeJaJp.smali
getScanCode()

getKeyCode()
また、getScanCode()の直ぐ下の辺りにある 0x170 を 0x5f に変更する。zipalignは4にすると良いらしいのでそうしておいた。

コンパイル→署名→インストール
その後 /system/usr/keylayout/chacha-keypad.kl の key 184 を修正。
key 184   SWITCH_CHARSET       WAKE_DROPPED
ついでにFacebookキーで起きる設定にもしておいた。

これで再起動してキーボードをPoBoxに切り替えた所、無事漢字変換のON/OFFをFacebookキーで切り替える事に成功した。
chachaは現在嫁さんのものなのだが、かなり快適なため、BB型のAndroid端末が欲しくなってしまった…。