GalaxyS2が、Android2.3.5から英語フリック非対応になってしまったのでAndroid2.3.3のイメージからキーボードアプリを取り出してインストールしようと考えました。結果としてキーボードアプリを入手することはできましたが、非root端末向けに改変することができず、挫折しましたが一応覚書しときます。

初期ROMの入手

http://forum.xda-developers.com/showthread.php?t=1113928

上記サイトから"OMKG5"をダウンロードして、EXEを実行し"*.tar"ファイルを取り出す。

初期ROMの展開

WindowsではできないのでWindows Virtual PCにUbuntuをインストールする。

http://www.ubuntulinux.jp/products/JA-Localized/download

インストールできたら、取り出した"*.tar"ファイルをUbuntuにコピーする(ネットワーク経由が楽)。

"*.tar"ファイルをtarコマンドで適当な場所に展開する。今回必要なのは、"factoryfs.img"。

"factoryfs.img"を展開するために"simg2img"をコンパイル/インストールする。

http://forum.xda-developers.com/showthread.php?t=1081239

上のファイルをダウンロードしてtarコマンドで展開する。展開されたディレクトリに移って"make"すると"simg2img"が取り出せる。しかし、恐らくコンパイルエラーが出るので、zlibをインストールする。

wget -P http://zlib.net/zlib-1.2.5.tar.gz
tar -xzf zlib-1.2.5.tar.gz
cd zlib-1.2.5
./configure
make
make install

これでエラーが出ないはずなので、先ほどの"simg2img"のディレクトリに戻って再度"make"する。

最後に"simg2img"を使って"factoryfs.img"をマウントできる形に変換する。

simg2img factoryfs.img tmp.img

これでマウントができる形式になったはずなので、マウントしてみる。

mkdir tmp
sudo mount -o loop tmp.img tmp

tmpディレクトリに移動すると"factoryfs.img"の中身を見れる。

参考 : http://www.ekesete.net/log/?p=3535

キーボードアプリの場所

"tmp/app/"ディレクトリにある、"AxT9IME.apk"ファイルがキーボードアプリです。このファイルをWindowsにコピーしておきます。

APKファイルの展開

Androidはアプリケーションの区別をJavaのパッケージ名で行っているので、変更しなければ上書きインストールとなる。この場合、システムファイルの上書きになるのでrootを取得した端末以外ではインストールできない。逆に、root取得済み端末の場合は、取り出した"AxT9IME.apk"を上書きすれば恐らく英語フリック入力が使えるようになるはず。

まずはAPKファイルを展開してみる。ここでapktoolを使う(Java実行環境必須)。

http://code.google.com/p/android-apktool/downloads/list

"apktool1.4.1.tar.bz2"と"apk-install-windows-r04-brut1.tar.bz2"をダウンロードして展開し、出てきたファイルを一つのフォルダにまとめて入れておく。ちゃんとパスを通してもいいが、面倒なのでそのままにしておく。

参考 : http://blog.appforandroid.info/?p=316

コマンドプロンプトを起動して以下のコマンドを実行する。

C:\>[apktoolをまとめて入れておいたディレクトリのパス]/apktool.bat AxT9IME.apk ./AxT9IME

このコマンドを実行するとCドライブの直下に"AxT9IME"というフォルダが作成され、APKを展開した内容が保存されている。

ここからがダメ。展開されたファイルを見たら、"classes.dex"というファイルが無いのでJavaソースに変換できない。恐らく本体である"libXt9core.so"というファイルがあるが、展開方法がわからない。詰み。

関連性がある記事

Disqusでコメント