すでに某所で公開しましたが、一応。ちなみにWindows向けです。
POBox 5.3はAndroid 4.0/ICS 以上向けです。それ以下の端末では動作しません。(2.3/GB,2.2/CCなど)
[tip]この記事でPOBox5.4について扱っています。タブレット向けレイアウトも追加されていますが、個人的にはタブレット向けにはPOBox5.3の方がいいと思います。[/tip]
準備するもの(ツール編):
- やる気(結構大事。
- いろいろやる知識ちょこっと。
- ****Grepできるもの(ここではGrep and Replaceを使います。)
- テキストエディタ(TeraPadでもサクラエディタでもEmEditorでもUTF-8対応のものならおk。ただし、Grep and Replaceを使う場合は不要。)
- 展開ソフト(7-zipやWinRARなど。)
- apktool(android-apktool | Google Project Hosting)
- JarSigner
- zipalign(某所ではやり忘れてました;)
- JDK(英Oracle、パスの設定はここを参考にしてみてください。一応パックにはバッチを含めてあります。)
準備するもの(データ編):
- POBox5.3関係のファイル(POBox 5.3 | 所感 ~android~)
- apkを展開(デコード)するのに必要なファイル(SemcGenericUxpResVL.apk)
手順:
1.適当なフォルダを作成し、コマンドプロンプトで開く。
「Windowsキー+R」を押下しファイル名を指定して実行を開き「cmd」入力しOKをクリック。
すると
こんなんが出てくるので、
この4行をコピペして「Enter」を押すとこんな感じになると思います。
エクスプローラーで「C:\Temp\POBox」が開かれたはずなのでそこに先ほどダウンロードした、APK-modding-tools.zipを展開。
続いて、POBox_5.3cwm.zipを7zipやWinRARなどで開きsystemの下のlibというフォルダ、appフォルダの中身も展開。
手順1の段階でのフォルダの中身
最新のzipではzip.exeとtr.exe、set_java.batが加わっています。
2.展開してlibを配置、文字列の置換
何も言わずにコマンドプロンプトに以下4行をコピペして「Enter」
その後、Grep and Replaceを開き
ファイルの名前に「*」、
含まれる文字列に「/system/lib/」、
探す場所に「C:\Temp\POBox\POBox53\lib\armeabi\」、
置換に「/data/data/com.sonyericsson.android.pobox/lib/」と入力します。
また、動作設定をクリックし、「保存時バックアップ作成」を無効化します。
次に、「検索」をクリックすると「置換」が押せるようになるので押します。
追記した手順を行うと、IWnnEngine.smali、IMorphemeService.smaliがリストアップされます。
すると、このようになるので、「リストのファイルを一括置換」を選択。
保存確認が3回出るので全部「はい」を選択します。
追記: 実行する際は最新のパックを用いてください。
左下の検索設定をクリックし、「サブフォルダも探す」にチェックを入れ有効化します。
その後、探す場所に「C:\Temp\POBox\POBox53\smali」を入れ再度検索、置換、リストのファイルを一括置換を選択します。(暫く時間がかかると思います。)
また、改行コードを修正するために次のコードをコマンドプロンプトにコピペし「Enter」
3.smaliの書き換え
・ソニーチェックの無効化
該当ファイル:
- OpenWnn.smali
- IWnnLanguageSwitcher.smali
- ControlPanelJaJp.smali
含まれる文字列に「Ljava/lang/String;->startsWith(Ljava/lang/String;)Z」を入力して検索。
その後、上記のファイル名をクリックするとウィンドウの右下に内容が表示されるため、赤い下線が引かれた行の引数(ひきすう)を一致させます。この際、どちらに合わせてもよいのですが、ここでは後ろの引数に合わせます。1つのファイルが終わり次のファイルを選ぶと保存確認が出るのでOKを選んでください。3つめが終わったあとは保存するためどれかファイル名をクリックしてください。
・50音キーボードと手書きの軌跡有効化
該当ファイル:
- POBoxConfig.smali
Lcom/sonyericsson/android/pobox/preferences/POBoxPreference;->setEnable50Letter(ZZ)V
Lcom/sonyericsson/android/pobox/preferences/POBoxPreference;->setEnableHandwritingFading(ZZ)V
この2行には2つではなく3つの引数が含まれるので後半の2つを一致させてください。
たとえば、
これを
こう。
・存在しないリソースへの参照を書き換え
該当ファイル、書き換え回数:
- IWnnImeJaJp.smali ×2
- SkinData.smali ×3
含まれる文字列で「
」を検索します。
IWnnImeJaJp.smaliの場合は、
この「invoke-direct」から「move-result v5」までを次の1行に置き換えます。
このとき「move-result v5」の「v5」という引数と、置き換えたあと「const/16 v5, 0xffffffff」の「v5」という引数が一致することに注意してください。これを2ヶ所。
** 2013/01/06追記**
コメントからこうならない場合も有ると発覚したので上記のようなヶ所が見当たらなかった場合はコメントも見てみてください。
手順を確認していて勘違いに気づきました。間違った修正箇所を掲載していたようです。すみません。したがって次の画像の書き換え範囲は間違っています。
SkinData.smaliの場合は、
これを、次の1行に置き換えます。
先ほどと同じで、引数を一致させるように気をつけてください。3ヶ所。
・存在しないフォントの置き換え
該当ファイル:
- KeyboardView.smali
SoMARegular.ttf→Roboto-Regular.ttf
SoMABold.ttf→Roboto-Bold.ttf
このようになるように置き換えます。それぞれ2ヶ所の計四ヶ所。
4.apkのビルド、署名
・apkのビルド
コマンドプロンプトに次のコマンドをコピペし「Enter」
・apkの署名
コマンドプロンプトに次の行をコピペして「Enter」
すると、キーストアのパスワード、姓名、組織名、都市名、州名、国番号を問われるので答えていきます。答えを入力、「Enter」という流れです。
国番号を答えたあと、 「[いいえ]:」とひょうじされるので「y」と入力し「Enter」
その次に再度「Enter」と押すと署名に必要なキーができあがります。
コマンドプロンプトに次の行をコピペして「Enter」
キーストアのパスワードを聞かれるので入力して「Enter」
次の行も同じです。
・apkの最適化(zipalign)
次の2行をコピペして「Enter」
5.インストール
ここまででapkの改変そのものは作業が終了しています。
改変済みなのとインストールした方がよいapkは
- POBox5.3_aligned.apk
- POBoxSknSelector_aligned.apk
- POBoxSknMono.apk
・提供元不明のアプリ
Android端末の設定を開きます。
セキュリティをタップし、提供元不明のアプリにチェックを入れます。すると警告が表示されるのでしっかりと読んだ上で「OK」をタップします。
・インストール
adbが使える環境なら話は簡単で、端末をPCにつなぎ次の3行をコマンドプロンプトにコピペ、「Enter」で完了です。
問題はそういった環境がない場合です。
たとえばPCと端末をつなぎ、SDカード上に「apk」など適当なフォルダを作り、前述のapkを転送します。
そこに「ES ファイルエクスプローラー」などを使ってアクセスし、インストールしたいapkをタップすればインストール可能です。
・有効化
ほかのIMEを使ったことがある人は知っていると思いますが、POBoxもその例に外れず、インストールしただけでは使うことができません。
そこで何をすればよいかというと、先ほどのようにAndroidの設定を開きます。
言語と入力をタップし、POBox Touch (日本語)にチェックを入れます。ここでも注意が表示されるので納得の上で「OK」をタップしてください。
・テスト
無事に起動しましたか?50音キーボードの有効化はできていますか?手書きの軌跡は表示されていますか?
何事もなく成功した人はお疲れ様でした。
失敗してしまった人はトライアンドエラーを繰り返してみてください。それでもだめなら、分かる範囲、できる範囲で対応します。
6.最後に
ここまで読んでくれてありがとうございました。
初めて書いた記事なので至らない点など多々あると思いますが、なにとぞご容赦のほどを…
追記:2013/01/07 22:40
XP Mode上で一通り動作するのを確認しました。一先ず、手順はこれでよいはずです。
一応今回できたものPOBox5.3
では。