バッファローのAOSSアプリをプリインストール化する

バッファローの「AOSS」アプリは便利なんですが、当たり前ながらGooglePlayからダウンロードしてくる必要があります。でもSIM抜きの端末だったり、そもそも3Gのないタブレットだったりすると、ネットワークの設定をするのにAOSSが必要な訳で、典型的な「卵が先か鶏が先か」という状況になってしまいますし、たとえデータ通信が使えたとしても、ファクトリーリセットするたびに毎回パケット料金が掛かるのはいただけません。
じゃあ、/system/appに書き込んでプリインストール化すれば、ファクトリーリセット直後でデータ通信が無い状況でも使えるじゃん! と考えるのは自然な流れ。でも、残念なことにAOSSアプリはそのまま/system/appに書いても動きません。起動直後にオチてしまいます。
そんなAOSSアプリをきちんと動くように/systemに書き込むことが出来たので、その方法をエントリ。ちなみに「らくらく無線スタートEX for Android」は、何故か有料でもないのにセキュリティが掛かっていて、普通には.apkが取り出せないのでスルーします。
では、手順をば。一応P-01D向けとして書いていますが、/systemディレクトリ以下に書き込むことが出来るなら、他機種でも同様に出来ると思います。

  1. まずAOSSアプリの.apkを入手しないと始まりません。普通にGooglePlayからインストールしたら、/data/appディレクトリ内にある"jp.buffalo.aoss-1.apk"(最後の数字は状況により変わる可能性あり)をPCで取り出します。ファイル名さえ合っていれば、いきなりadb pullで大丈夫。取り出せたら端末からはサクっとアンインストールします。
  2. PC上で何がしかのアーカイバ(私はExplzh)を使い、取り出した.apkファイルを読み込ませます。普通に中身が見えるので、libディレクトリを展開して中の"libAossBuffalo2.so"ファイルを取り出します。ちなみにlibディレクトリ内にはarmeabiとarmeabi-v7aの2つのフォルダがあって、どちらにも同じファイルが入っていますが、P-01Dはarmeabi-v7aの方です。端末のCPUによって変わりますので、予め調べて*1おいてください。中身を取り出したら.apkの中にlibディレクトリは要らなくなるので、出来るならそのまま削除してください。解らなければ.soファイルを取り出すだけで構いません。
  3. 取り出したlibAossBuffalo2.soファイルと、中のlibディレクトリを削除した(もしくはそのままの)jp.buffalo.aoss-1.apkを端末に戻します。sdカードにでも入れておきましょう。
  4. 端末側でファイラーを操作し、jp.buffalo.aoss-1.apkを/system/appに移動して属性を644に、libAossBuffalo2.soを/system/libに移動して属性を644にします。
  5. 端末の電源を入れなおして再起動します。

これでドロワー画面にAOSSの赤いアイコンが現れてアプリがオチずに使えるようになります。
他の、同様に/system/appに書き込んだだけだと動かないアプリでも、.soを取り出して別途/system/libにコピーしてやると動くようになるかもしれません*2。お試しあれ。

*1:ドコモ謹製の「端末仕様確認ツール」がオススメ。[端末情報]の[ビルド情報]で確認出来ます。ちなみにこのアプリ、ドコモ端末でなくてもインストール出来ますので。

*2:もうすでに気づいている方も居るようですが、実はこの方法でATOKもプリインストール化することが出来ます。違法コピー一歩手前(購入したアカウント以外を設定するとライセンス的にアウト)なので、そのへんは各自の判断で。もちろんGoogle日本語入力など他のIMEでも出来ます。