2013年9月13日金曜日

Androidでbootanimation変更

Android端末で起動時のアニメーション(bootanimation)を変更する方法を紹介します。

通常はメーカーやキャリアのアニメーションが出ると思います。

まず、bootanimationの説明からです。
bootanimationのファイルはzipでアーカイブされており、そこに各コマの画像ファイルやコマを回す秒数やループの情報などが入っています。ファイル名は "bootanimation.zip" です。

Androidでは3種類のbootanimationの読み出し方があります。優先度順に並べると…

  1. /data/local/bootanimation.zip
    ユーザーデータの領域なので初期化すると消える。
    初期状態ではファイルは存在しない。
  2. /system/media/bootanimation.zip
    メーカーやキャリアなどが用意しているアニメーション。
    システム領域なのでrootを取ってsystemを書き換えないと変更できない。
  3. Androidデフォルトのbootanimation
    エミュレータなどの起動画面にでるアレ。2つの静止画を組み合わせている。
1がなければ2へ、2がなければ3へと読み込みます。
これはAndroidのソースコード BootAnimation.cpp に書いてあります。

ほとんどの端末は2が表示されます。
2を変更するにはシステムを書き換えられるようにしなければいけないのでroot化をしてシステムを書き換えないといけません。これは危険を伴う行為です。今回はシステムを書き換えない1に書き込みたいと思います。

1の場所はOSバージョンが3.1以下の端末では非rootで書き込むことができます(エミュレータ調べ)
3.2以上ではroot化が必要です。
data領域だから一時rootでも大丈夫じゃないかな(適当) 今度試してみようと思います。
また、HTC端末やサムスン端末ではここにファイルをおいても読み込みません。

よって対象の端末は HTC/サムスン以外でOSが3.1以下の端末となります。
3.2以上でもrootをとれば可能ですが… root化はメーカー・キャリアの保証の対象外になるので自己責任で。rootをとってもdata領域の書き換えはシステム領域の書き換えと比べて安全だと思いますが。


それでは導入です。PCでAndroidSDKを導入してadbコマンドが打てることを前提に話をします。
まず、bootanimation.zipを用意します。インターネット上に落ちているのを拾ったり自作したりします。僕のおすすめは"Helix Boot"っていうやつです。端末と解像度が一致しているものが好ましいです。まあ7z等でzipのなかにあるdesc.txtの数値を書き換えれば調整できるのですが…

そして adbコマンドを打ちます。
adb push [bootanimation.zipのファイルパス] /data/local/bootanimation.zip
***KB/s (*** bytes in ***s) と出れば成功です。

削除するときは
adb shell rm /data/local/bootanimation.zip
で削除できます。

これできbootanimationを変更することができます。実際他人が見るわけでもないので完全に趣味の領域ですが… 楽しみが増えましたね。

最後までお読みいただいてありがとうございました。



2013年7月30日火曜日

Bloggerはじめました

こんにちは! てっちゃんこと @tetsu31415 です。

この度Bloggerを使用することにしました。

飽きっぽいのでfc2→hatena→Bloggerと点々とBlogを変えています。

過去のブログに内容もそのうちこっちに移行しようと思います。

おもにガジェットやプログラミングの投稿になると思います。

よろしくです。