独自 bootanimation.zip を adb shell 上から実行する
独自の bootanimation.zip
をエミュレーター、もしくは実機に送って表示する方法です。
adb push
で送って実行するだけなのですが、要注意点がいくつかあるので備忘録として書いておきます。
なお、独自 bootanimaion.zip
の作り方は、以下を参考にしてください。
以下の方法は Android 7.0 のエミューレーターで動作確認しています。
また、この方法はデバイス(エミュレーター)の root 権限を必要とします。
OEM用 bootanimation.zip の path を調べる
bootanimation
はデバイス依存性が強いので、Android のバージョンによって微妙に挙動が違います。bootanimation.zip
のパスも過去に変わっているので、確認しておいた方が良いでしょう。
cmds/bootanimation/BootAnimation.cpp - platform/frameworks/base - Git at Google
frameworks/base/cmds/bootanimation/BootAnimation.cpp
60 61 | #define OEM_BOOTANIMATION_FILE "/oem/media/bootanimation.zip" #define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip" |
上記のように andorid-cts-7.0_r9
では /oem/media/bootanimation.zip
でした。
rootfs を書き込み可能にする
/oem
はデフォルトでは書き込み不可でマウントされているため、これ書き込み可でマウントし直さなければなりません。
なお、今後 root 権限での操作が多くなるので、adb root
を先に実行しておくと楽でしょう。
$ adb root $ adb shell mount -o rw,remount / |
注意しなければならないのは、rootfs は揮発性だということです。 今後、rootfs に変更を加えたとしても、デバイスを再起動してしまうと変更内容は消えてしまいます。 永続化させるためには再マウントではなく、実体に手を加える必要があります。
参考
bootanimation.zip をデバイスに送る
/oem/media
ディレクトリが存在しない場合は、先に作成しておくのを忘れずに。
$ adb shell mkdir /oem/media $ adb push bootanimation.zip /oem/media/ |
実行
普通ならデバイス再起動でも良いのですが、先も書いたように /oem
以下は揮発性なので再起動では書き込んだ bootanimation.zip
が消えてしまいます。
そこで、以下のように直接 bootanimation
を実行します。
$ adb shell # setprop service.bootanim.exit 0 # /system/bin/bootanimation |
詳しくは以下を参考にしてください。
参考
0 件のコメント:
コメントを投稿