Robert Foss
April 21, 2017
Reading time:
For various reasons you might want to change the Android boot animation to something other than the stock one, this is how you do it.
There exists official documentation for how to create a custom boot animation, but unfortunately it is lacking in actual examples.
So this guide is a bit more hands-on.
Without covering too much of the same gound as the documentation, let's have a quick look at what is in a simple bootanimation.zip.
$ ls -la bootanimation total 28 drwxr-xr-x 4 hottuna hottuna 4096 Apr 19 22:39 . drwxr-xr-x 8 hottuna hottuna 4096 Apr 19 22:39 .. -rw-r--r-- 1 hottuna hottuna 92 Apr 19 15:21 desc.txt drwxr-xr-x 2 hottuna hottuna 4096 Apr 19 12:44 part0 drwxr-xr-x 2 hottuna hottuna 4096 Apr 19 12:45 part1 $ cat bootanimation/desc.txt 1920 1080 30 # WIDTH HEIGHT FPS c 5 15 part0 FFFFFF # TYPE COUNT PAUSE PATH [#RGBHEX] [CLOCK] c 5 15 part1 FFFFFF # TYPE COUNT PAUSE PATH [#RGBHEX] [CLOCK] ls -la bootanimation/part0 total 28 drwxr-xr-x 2 hottuna hottuna 4096 Apr 19 12:44 . drwxr-xr-x 6 hottuna hottuna 4096 Apr 19 15:40 .. -rw-r--r-- 1 hottuna hottuna 10688 Apr 19 12:31 0000.png -rw-r--r-- 1 hottuna hottuna 10688 Apr 19 12:31 0001.png -rw-r--r-- 1 hottuna hottuna 10688 Apr 19 12:31 0002.png -rw-r--r-- 1 hottuna hottuna 10688 Apr 19 12:31 0003.png -rw-r--r-- 1 hottuna hottuna 10688 Apr 19 12:31 XXXX.png
Note that the "#" comments are mine and not actually present in the files.
An important thing to note with the zip file is needs to have compression turned off.
unzip bootanimation.zip cd bootanimation # Edit desc.txt and partN folders to your needs zip -0qry -i \*.txt \*.png \*.wav @ ../bootanimation.zip *.txt part* # Option 1, use adb to send bootanimation.zip adb root adb remount adb push bootanimation.zip /system/media/bootanimation.zip # Option 2, bake bootanimation.zip into your AOSP build cp bootanimation.zip /opt/aosp/out/target/product/linaro_arm/system/bootanimation.zip ./your_favorite_buildscript_here.sh
This post has been a part of work undertaken by my employer Collabora.
09/06/2025
In this final article based on Matt Godbolt's talk on making APIs easy to use and hard to misuse, I will discuss locking, an area where…
21/05/2025
In this second article of a three-part series, I look at how Matt Godbolt uses modern C++ features to try to protect against misusing an…
12/05/2025
Powerful video analytics pipelines are easy to make when you're well-equipped. Combining GStreamer and Machine Learning frameworks are the…
06/05/2025
Gustavo Noronha helps break down C++ and shows how that knowledge can open up new possibilities with Rust.
29/04/2025
Configuring WirePlumber on embedded Linux systems can be somewhat confusing. We take a moment to demystify this process for a particular…
24/04/2025
Collabora's Board Farm demo, showcasing our recent hardware enablement and continuous integration efforts, has undergone serious development…
Comments (0)
Add a Comment