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端末が欲しくなってしまった…。

6 件のコメント:

  1. こんばんは、私もhtc chachaを持っているのですが、
    Android + データ専用 SIM での動作修正パッチが何度やっても
    classes.dex を生成する段階でエラーとなってしまって
    うまくいきません。
    良ければパッチを当てた際の環境、状態などを教えていただけないでしょうか?
    こちらの環境はSuperOSR+公式ブートローダーでunlook済みです。

    返信削除
  2. 具体的に躓いたのはステップ2です。

    返信削除
    返信
    1. 順番にいれていった数字を教えていただけますか?

      削除
  3. 10、0、そして1です…ROMをCyanogenMod7変えてみましたが、ともに失敗してしまいます…
    いまようやくdeodexとodexの区別がわかり、odexでの手順でトライしておりますが、失敗の毎日です…(笑)

    返信削除
  4. 出来ました!!
    「ブローヴちゃん」さんのbatファイルの中にある、odexモードで、classes.dex入りのframework.jarを作り、
    そこから「よくわかってないBlog その2」さんの
    Samsung Galaxy Tab 7.7 3G/WiFiモデル (GT-P6800)について色々と。

    Samsung Galaxy Tab 7.7 3G/WiFiモデル (GT-P6800)を購入して、セルスタンバイ問題とか頑張ってみた
    を参考にして
    色々やってみたら出来ました!!
    ありがとうございました!!

    返信削除
    返信
    1. おぉ!自己解決おめでとうございます!
      odexでの手動でパッチあて成功という事ですね。すばらしい。

      削除