bootanimation について
bootanimation の機構
/init.rc
の下記部分でブートロゴアニメーションサービスを起動している。
service bootanim /system/bin/bootanimation user graphics group graphics disabled oneshot
/system/bin/bootanimation
のソースは,Android のソースツリーの frameworks/base/cmds/bootanimation/
ディレクトリに存在する (git ツリー)。
bootanimation の抑制
上記ソース (の [https://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=cmds/bootanimation/bootanimation_main.cpp;hb=HEAD:title=bootanimation_main.cpp]
) を読むと debug.sf.nobootanimation
というプロパティが 0 以外であれば起動が抑制されることがわかる。なのでこのプロパティを /data/local.prop
, /system/build.prop
あたりで指定してやればよい。
であるが,/system/etc/init.goldfish.sh
にて ro.kernel.android.bootanim
プロパティが 0 の際に当該プロパティを setprop にて設定しているので,ro.kernel.android.bootanim=0
を指定するほうが行儀がよいようだ*1。(2011-04-21 追記:ただし ro.*
プロパティなので /default.prop
に指示子がある場合そちらが優先されてしまう)
bootanimation のカスタマイズ
ソースによれば
/data/local/bootanimation.zip
が存在する場合,そのアニメーションを使う。/system/media/bootanimation.zip
が存在する場合,そのアニメーションを使う。- さもなくば
/system/framework/framework-res.apk
のres/assets/images/android-logo-mask.png
およびres/assets/images/android-logo-shine.png
を利用した簡易アニメーションを行う。
のようになっている。
なので,/data/local/bootanimation.zip
を用意してやればカスタマイズしたアニメーションを利用できる。(どうしてもっということであれば framework-res.apk
の中身を変更すれば簡易アニメーションもカスタマイズできるであろうが,bootanimation.zip
を用意する手間とシステムファイル書き換えのリスクを天秤にかけたらとてもおすすめはできない)
bootanimation.zip
の作り方については「bootanimation.zip
desc.txt
」あたりをキーワードにして Google 検索すればいくらかでてくる。英語だが http://forum.sdx-developers.com/themes/(how-to)-creating-a-bootanimation-zip/ あたりが細かい仕様までまとまっていると感じた (ちゃんと探していないが)。
以下補足。