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 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 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)
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.
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.
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.
ReplyDeleteWhat I really need to do is just find the animation directory.
DeleteYou 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?
DeleteIf not, then I would suggest attempting to navigate to the directory in the CrOS terminal instead.
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?
DeleteYeah, so if you open crosh in Chrome OS with Ctrl+Alt+T then type shell to get into the full terminal, then do
Deletels /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/
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:
Deletecp: cannot create regular file '/usr/share/chromeos-assets/images_100_percent/boot_splash_frame1.png': Read-only file system.
This repeats for every frame.
Screenshot: https://ibb.co/f2bwAb
DeleteYou'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.
Deletesudo /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.
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.
DeleteStrange. To check, you could do ls -l on both folders, and compare the file sizes and modification times, e.g. something like
Deletels -l /usr/share/chromeos-assets/images_100_percent/boot*
then
ls -l /home/chronos/user/Downloads/images_100_percent/boot*
Okay. It seems my suspicions were accurate. It seems to be adding the original frame back in.
DeleteOkay. 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?
DeleteAre 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)?
DeleteDid you guys get it working yet?
DeleteBecause I'm making one for a system at are school but it has chromium OS.
This comment has been removed by the author.
ReplyDeleteI keep getting Read-only file system when I use sudo cp ~/Downloads/Edited/boot_splash* /usr/share/chromeos-assets/images_100_percent and I tried using sudo su it also did that
ReplyDeleteI had the same problem. The author said this to me, and it worked.
DeleteYou'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.
Owen is 'Right', you need to :
Deleteshell
cd /usr/share/vboot/bin/;sudo ./make_dev_ssd.sh
This will tell you what to type for the next command. Remember the number after partitions
cd /usr/share/vboot/bin/;sudo ./make_dev_ssd.sh --remove_rootfs_verification --partitions N (where N is the number given by the previous command)
reboot
you need to do that, every time the system is update.
This comment has been removed by the author.
ReplyDeleteI tried what you said, but I get a blank screen while starting up. Maybe it didn't copy back properly?... I don't know.
ReplyDeletechown must be root:root
Deleteand chmod 644
for that or those images
how do i do this?
Deletehow can i make those root?
DeleteThis comment has been removed by the author.
ReplyDeleteYou can also copy any image (in .png format & renamed boot_splash_frame01.png), in /usr/share/chromeos-assets/images_100_percent
ReplyDelete... and remove other boot_splash_frame*.png images
there will be a static image at startup instead. in addition if you choose, the same background image, there will be a continuous rendering.
Need help, cant edit the frame intervals!
ReplyDeleteNever mind, ran it with sudo.
DeleteHow though? Even using sudo and disabling rootfs, I can't seem to edit the files for changing frame intervals.
DeleteHi, great info.
ReplyDeleteBut I'm stock, I'm running a CloudReady ChromiumOS and when I run [sudo ./make_dev_ssd.sh] prints there's no Kernel boot information. Anyway I run [sudo ./make_dev_ssd.sh --remove_rootfs_verification --partitions N] with numbers from 0 to 10 but all prints the same no kernel boot information.
Any idea? 'cause my main root problem is the same "Read-only file system" warning when I tried to copy my images into the folders.
Thanks in advanced!
-@JCdelValle
Hi, great info.
ReplyDeleteBut I'm stock, I'm running a CloudReady ChromiumOS and when I run [sudo ./make_dev_ssd.sh] prints there's no Kernel boot information. Anyway I run [sudo ./make_dev_ssd.sh --remove_rootfs_verification --partitions N] with numbers from 0 to 10 but all prints the same no kernel boot information.
Any idea? 'cause my main root problem is the same "Read-only file system" warning when I tried to copy my images into the folders.
Thanks in advanced!
-@JCdelValle
On Cloudready, I think you should be able to just remount / as readwrite directly in the shell, i.e.
Deletesudo mount -o remount,rw /
Here is a recreation of the original colored chrome os boot animation
ReplyDeletehttps://www.dropbox.com/s/7xt3mvc8h9qzqtq/boot_splash_recreation.zip
��
Another one
Deletehttps://www.dropbox.com/s/gzd9z0kjkqia7xm/boot_splash_anim.zip
taken from Sean Dexter's dribbble shot which I'm in love with https://dribbble.com/shots/2276182-Swirly-dots-to-Chrome
anyway to do it if settings and chrosh are blocked?
ReplyDeleteprobably not bu thanks anyway
Hey, i get this error:'cp:
ReplyDeleteerror writing '/usr/share/chromeos-assets/boot_splash_frame13.png': No space left on device'
what do is do? i have allready powerwashed and it isn't actualy full
I mean there is enough space.
DeleteGreat article with excellent idea!Thank you for such a valuable article. I really appreciate for this great information.. Books for people of all ages
ReplyDeletehey, i really need help finding and changing the frame interval i cant find the file or figure out how to edit it. please help me
ReplyDeleteMe too I need help with that!
DeleteWhen I type in vi /etc/init/boot-splash.conf to change the frame interval it says: # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
ReplyDelete# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "Displays an animation while the system is booting"
author "chromium-os-dev@chromium.org"
# boot-splash depends on udev-trigger-early because frecon does need
# graphics device to be ready to display splash screen and tty (ptmx)
# device to create terminals, it also uses input devices (though they
# can also be hotplugged).
start on stopped udev-trigger-early
# If no assets are available to show, assume "embedded".
# If a specific embedded device needs different parameters, see:
# http://upstart.ubuntu.com/cookbook/#separating-variables-from-the-job
env ASSETLESS_ARGS="--enable-osc --enable-vts --pre-create-vts"
script
# Set the backlight to 40% of its maximum level.
BACKLIGHT_DIR=/sys/class/backlight
if [ -d ${BACKLIGHT_DIR} ] &&
[ -n "$(find ${BACKLIGHT_DIR} -maxdepth 0 ! -empty)" ]; then
backlight_tool --set_brightness_percent=40.0 || true
fi
ASSETS=/usr/share/chromeos-assets
ASSETS_200=${ASSETS}/images_200_percent
ASSETS_100=${ASSETS}/images_100_percent
# Use differently-sized images depending on the framebuffer width.
if [ -e "${ASSETS_200}/boot_splash_frame01.png" ]; then
"/etc/init/boot-splash.conf" [readonly] 56 lines, 1970 characters
Idk how to edit it or what to edit in here, thanks!
hello i know this is old i need help with it if you have a video that would be nice but i dont know how to do it?
ReplyDeleteI did the whole procedure, but the image was static in a middle frame, that is, he didn’t even do the initial animation to get there and freeze it. I use Chromium os for raspberry Pi 3
ReplyDeleteI'm resizing that png and now it's fit with my CloudReady
ReplyDeletewhat image editor is this that id from the google play?
ReplyDelete