Esiste un file bootanimation.zip situato in /system/media/ (oppure in /data/local) che sarebbe proprio l'animazione del boot di android!!
Quello in /data/local non verrà salvato se si farà un wipe e si farà un nandroid backup della ROM
Quindi se dovete cucinare un ROM con un bootanimation, questo va messo in /system/media/
Questo archivio .zip deve essere senza compressione (compressione memorizzazione) e contiene 2 cose:
1) Un file di descrizione (desc.txt) che dice al terminale come usare le animazioni, quali usare, in che ordine, in quale risoluzione, con che velocità ecc.
2) Le cartelle che contengono i file immagini dell'animazione.
La struttura base di un bootanimation.zip è la seguente:
bootanimation.zip
|-- desc.txt
|-- part0
|-- part1
part0 e part1 sono le cartelle che contengono una serie di immagini
Per esempio in part 0 ci sono:
part0
|-- boot_00001.png
|-- boot_00002.png
|-- boot_00003.png
E in part 1:
part1
|-- boot_0004.png
|-- boot_0005.png
|-- boot_0006.png
Queste immagini delle rispettive cartelle sono combinate in modo da creare l'animazione secondo il file 'desc.txt'.
Le immagini, come vedete sono ordinate da un numero e vengono eseguite in sequenza e dovranno avere tutte la stessa risoluzione, formato e qualità.
Il file 'desc.txt' normalmente contiene questa stringa:
480 800 30
p 1 0 part0
p 0 0 part1
'480' è la larghezza con la quale viene visualizzata l'animazione (può essere anche diversa da quella di default, se è più grande, l'immagine risulterà ingrandita, può avere valori anche superiori rispetto alla risoluzione del display)
'800' è l'altezza con la quale viene visualizzata l'animazione (può essere anche diversa da quella di default, se è più grande, l'immagine risulterà ingrandita, può avere valori anche superiori rispetto alla risoluzione del display)
'30' è il numero di FPS che deve avere l'animazione (la velocità con cui eseguire l'animazione)
'p' definisce una parte nell'animazione
'1' quante volte l'animazione deve essere eseguita (per poia passare alla parte successiva)
'0' definisce una pausa, per quanti microsecondi bisogna mettere in pausa il bootanimation dopo l'ultimo frame di questa "parte"
'part0' è il nome della cartella dove ci sono le immagini della prima parte
'p' definisce un'altra parte di animazione
'0' definisce che questa parte verrà eseguita in loop all'infinito (finché non partirà il sistema operativo Android)
'0' definisce una pausa
'part1' è il nome della cartella che contiene le immagini della seconda parte
Per modificare le singole immagini .png, consiglio di usare photoshop