Customizing the Chrome OS boot animation

Somehow I prefer the look of the Chrome logo in black and white, so I thought I'd see if I could change the boot animation to one which was more aesthetically pleasing (for me).

It turns out that this is very simple and easy to do. Developer mode needs to be on, of course, and rootfs verification switched off.

The boot animation comprises 17 images, which can be found in PNG format in /usr/share/chromeos-assets/images_200_percent and /usr/share/chromeos-assets/images_100_percent,named boot_splash_frame1.png thru boot_splash_frame17.png.

The file at /etc/init/boot-splash.conf can be checked in order to see which set of images is being used (if in doubt, change one set and reboot to see if it sticks).

The images can then simply be copied out, edited, and replaced. Extra images can also be added, named boot_splash_frame18.png, boot_splash_frame19.png, and so on, extending the animation. It fades to the desktop after the usual period of time, more-or less, though. I copied frame 17 to frame 18, frame 16 to 19, 15, to 20, and so on, so the animation starts to reverse after it would usually finish.

In addition, the display frame interval can easily be changed in order to speedup or slowdown the animation. Look for --frame-interval in  /etc/init/boot-splash.conf (the first instance - the frecon command, is the relevant one on my device).

By default, the frame interval is set to 25.

Change it to 50 or 75 for a slightly slower animation. It is also possible to change the animation background screen colour hex code here as well (although sadly not the initial white boot screen, which is coded into the firmware & requires removal of the write-protect screw to modify). 

As an example, here's what I did:

mkdir ~/Downloads/Edited
mkdir ~/Downloads/Backup
cd /usr/share/chromeos-assets/images_100_percent
cp * ~/Downloads/Edited
cp * ~/Downloads/Backup

Opened boot splash files in image editor, made changes. The built-in image viewer in Chrome OS is rather limited so I downloaded the free app  'Image Editor' from the Play Store. Saved edited files to Downloads/Edited. Copied files back to /usr/share/chromeos-assets/images_100_percent

sudo cp ~/Downloads/Edited/boot_splash* /usr/share/chromeos-assets/images_100_percent

vi /etc/init/boot-splash.conf 


(changed frame interval from 25 to 50)

sudo reboot

Here's a GIF of what it looks like (if it shows up in a box, that's just due to it being a GIF):




Could be improved, but it's not too bad, for a first attempt, I think.

The edited PNGs forming the above can be downloaded here

13 comments:

  1. I've got a problem with this. I Made my own animation and renamed everything appropriately. Then I went to replace the normal animation, and it wasn't there. I've got ubuntu and chromeOS installed on this machine, and I'm in Ubuntu looking through the files. I go to Computer/usr/share/, but there's not folder with the boot images. Any help? I've got an acer CB5-571.

    ReplyDelete
    Replies
    1. What I really need to do is just find the animation directory.

      Delete
    2. You mention Ubuntu - are you sure you're looking in the Chrome OS /usr/share/ directory? Can you see /usr/share/chromeos-assets/ at all, for example?

      If not, then I would suggest attempting to navigate to the directory in the CrOS terminal instead.

      Delete
    3. No, I don't see ~/usr/share/chromeos-assets. I'm more or less a script kiddie, so I've got pretty much no idea how to navigate there through the CrOS terminal. Is there a specific command?

      Delete
    4. Yeah, so if you open crosh in Chrome OS with Ctrl+Alt+T then type shell to get into the full terminal, then do

      ls /usr/share/chromeos-assets/

      this should show the contents of the chromeos-assets directory. If you want to navigate there you just do "cd" instead of "ls". But you don't need to do this, you can just copy the two relevant image directories to the Downloads folder with (all one line)

      cp -a -r /usr/share/chromeos-assets/images_* ~/Downloads

      This should copy the two directories images_100_percent/ and images_200_percent/ to Downloads.

      Then you can view the images in the Chrome OS Files app (or Android apps, or Ubuntu if you're running it via crouton), replace the images named boot_splash* with your own, and then, back in the terminal, copy the directories back over to their original location, e.g. (all one line)

      sudo cp -a -r /home/chronos/user/Downloads/images_* /usr/share/chromeos-assets/

      Delete
    5. The first part worked well; I got the folder into my Downloads and I replaced the files. However, when I run the second command, I get the following message:

      cp: cannot create regular file '/usr/share/chromeos-assets/images_100_percent/boot_splash_frame1.png': Read-only file system.

      This repeats for every frame.

      Delete
    6. Screenshot: https://ibb.co/f2bwAb

      Delete
    7. You'll need to have rootfs verification switched off in order to modify system files. I mentioned it in the post but only briefly. Assuming you haven't already done this, you should be able to switch off rootfs verification for your current partition by entering the following command (in the Chrome OS terminal) then rebooting.

      sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions $(( $(rootdev -s | sed -r 's/.*(.)$/\1/') - 1))

      The command above should be all one line - it might look weird in this comment box, but if you highlight it and copy, it should paste into the terminal as one line.

      I should also mention that it usually resets back to read-only when Chrome OS updates itself, and in addition, any customizations to system files (such as changing the boot splash, or adding scripts that run at startup, or rooting Android) usually also get lost when the OS updates. In theory there's a way around this, but it's not really ideal/practicable currently. One way to mitigate it is to stay on the beta or stable release channel, as OS updates are delivered a lot less frequently on these channels.

      Delete
    8. The commands worked, sort of. Every time I copied the files from my downloads to the assets folder, it added the original files back without deleting mine, or at least it seems that way when I copied it out.

      Delete
    9. Strange. To check, you could do ls -l on both folders, and compare the file sizes and modification times, e.g. something like

      ls -l /usr/share/chromeos-assets/images_100_percent/boot*

      then

      ls -l /home/chronos/user/Downloads/images_100_percent/boot*

      Delete
    10. Okay. It seems my suspicions were accurate. It seems to be adding the original frame back in.

      Delete
    11. Okay. I fixed that problem; It was just a simple naming error. But (of course) there's more. Now there's no boot animation. The screen just stays black for the duration that the animation should play. Then it flickers and goes to the login screen. Maybe I'm missing something with my animation?

      Delete
    12. Are your custom files the same dimensions as the originals (e.g. 274x86 for 100 percent, 512x172 for 200 percent)? Are they the same file type (.png)?

      Delete