As I posted earlier, I lost my custom boot flash screen when I unlocked the Moto X Pure’s (MXPE) bootloader. Motorola substituted an obnoxious warning screen instead:
I posted here how to lose the warning screen, but that still didn’t get me back to my custom message on the boot flash screen. But I finally figured out to get my custom message back.
First, I used makers_mark’s very nice and simple Windows-based tool in my Windows 8.1 virtual machine to disassemble the MXPE’s logo.bin file and extract the included image files. I then used Linux’ GIMP editor to modify the logo_boot.png file by adding my text layer to it, merging the text layer into the image, and saving it as a new logo_boot.png. That turned out to be easier than I thought. I used the Ubuntu font, size 160 px, because it is rounded and I happen to like it.
Once I had the new logo_boot.png image, I copied it over the old version in the \Modified\Images directory under the makers_mark’s tool’s project directory structure. After that, I used the “Make MotoLogo Bin From Images Folder.bat” batch file to create a new build.bin file, which is really the logo.bin file.
But flashing that file (see here for how) to my phone merely brought back the dreaded bootloader unlocked warning screen. Ugh. Replacing the logo_unlocked.png file didn’t work because it’s a different resolution.
That took me back to Hashbang173’s post on getting rid of the Moto warning screen. I followed his link to Alberto97’s post on the concept behind redirecting the bootloader to the desired image. Long story short, Alberto97 merely used a hex editor to copy the hex address of the logo_boot.png image over the logo_unlocked.png address, so that all calls to the logo_unlocked.png image are redirected to the logo_boot.png image. Very clever.
So, I used ghex, a Linux hex editor for Gnome, to do the same to my file. Here’s the original logo.bin file with my custom boot splash image:
Here’s my “corrected” version where I copied the first 12 bytes at offset 0020 over to the first 12 bytes of offset 0060 (highlighted):
Compare the bytes at offset 0020 with offset 0060 in both images above and you’ll see what I did. I simply followed Alberto97’s approach exactly. Your actual byte values will likely vary with the size of the individual images. My custom image (159.0K) was a bit larger than the original Moto logo image (127.4K). That didn’t seem to matter to the overall process, but I’m sure there’s a limit to the image size. The overall logo.bin file cannot exceed 2MB.
After modifying the logo.bin file, I flashed it to my MXPE and rebooted (see here for how). Up popped my custom boot splash image! Yea!!!
So, I went from the obnoxious warning screen at the top of this post to the standard Moto logo screen with Hashbang173’s file initially. Later, I used makers_mark’s tool in my Windows virtual machine and GIMP in Linux to create a custom boot splash and then incorporate it into a new logo.bin. After that, I applied Alberto97’s approach to redirect the bootloader to my custom boot splash image rather than the obnoxious bootloader unlocked warning screen, then flashed the result to my MXPE. Now at boot I see my custom boot splash:
All this sounds complicated, but is actually very straightforward to do step-by-step. The hardest part for me was creating the custom image because I don’t do much graphics work. GIMP’s online help, especially on using text boxes, helped a lot. I am now a very happy camper with a fully unlocked and rooted MXPE with which I’m very pleased, although now I’m way behind on all the stuff I should have been doing instead of playing with my new phone.
There you have it. I hope that this helps others recreate their custom boot flash screens after unlocking their MXPE’s bootloaders. Many thanks to those who made this possible – Hashbang173, makers_mark, and Alberto97 over at xda-developers.