2011年3月1日火曜日

Desire(X06HT)標準IME iWnnを移植する with Mac


カスタムROMにiWnnを移植してみよう!というわけで
普通ならsimejiやOpeniWnn入れればいいんですが、今回はiWnnにこだわってみました。

・今回の作業一覧
   公式ROMからiWnnIME.apk iWnnIME.odex , iWnnのLib群の抽出
   iWnndeodexing 
   
・公式ROMからiWnn関係を抽出
   まずはじめにiWnnに関係するファイルをすべて抽出します。
   ddmsのFile Managerでもadb pullでもいいんで下記のファイルを抜いてください。

  •  /system/app/iWnnIME.apk
  • /system/app/iWnnIME.odex
  • /system/lib/lib_dic.conf.so
  • /system/lib/lib_dic_e.conf.so
  • /system/lib/libEnj~.so (Enjがつくファイルが7つあります。すべて抜き出してください)
  • /system/lib/iwnn.so
  • /system/lib/libkaomoji_kihon.so
  • /system/lib/libkaomoji_tyukyu.so
  • /system/lib/libnj~.so(njがつくファイルが11あります。すべて抜き出してください)
     一つでも抜き忘れると起動しません。
     ついでに/system/frameworkも抜いておいてください。(フォルダごとすべて)

・iWnnIME.apkのdeodexing 
   このままの状態では他のROMにiWnnをインストール出来ませんのでdeodexingを行います。
   deodexingの詳細は dexodexingをする。with Mac で確認してください。

  •  java -jar .../baksmali.jar -d .../system/framework -x .../iWnnIME.odex
  •    java -jar .../smali.jar -o iWnnIME.dex out
     出力したiWnnIME.dexをclasses.dexに名前を変えiWnnIME.apkに追加する。
     追加後、apkに署名をする。
     この部分は簡単に書きました。詳しくは dexodexingをする。with Mac を見てください。

・抽出したファイルをカスタムROMに書きこむ。
   先ほど抽出した、lib群を同じくsystem/libに書きこんでください。
   書き込み終わったら先ほどdeodexしたiWnnIME.apkをインストールして終了です。

これで動くはずです。
なんか強制終了されるって方はlibのファイルが欠けているのかもしれません。再度確認してください。
iWnnIME.apkが”インストールされませんでした”と表示された場合、deodexが失敗しています。


0 件のコメント:

コメントを投稿