The OnePlus 5T is a great smartphone with features like a 6.01-inch FHD+ AMOLED display, 8GB of RAM, Android 8.0 Oreo and many others that place it in the upper echelon of smartphones. However, many Android smartphone users are not satisfied with the default configuration of their devices and want to customize it to their taste, and this is the same in the case of the OnePlus 5T. In this guide, I’ll show you how you can change the splash screen image on your OnePlus 5T.
The Splash screen is the screen that is displayed on your smartphone when you power it on, before going on to show your home screen (or lock screen if you have security lock) when the device has finished booting. This (splash) screen usually contains the logo or brand name of the manufacturer of the device. If you’re not satisfied with the splash screen image on your OnePlus 5T and you wish to modify it, this guide will show you how to do that.
- As is with advanced tweaks on Android like this, your OnePlus 5T has to be rooted first of all. Here are some guides to help you with that:
- You also have to unlock the bootloader of your OnePlus 5T. Here’s an easy way to do that.
- Make a backup of your device data. This isn’t a requirement but it’s better to be on the safe side at all times.
- OP5tLogo Splash Screen Image Injector ZIP File.
Process – Changing Splash Screen Image on OnePlus 5T
The software we’re using here is called the OP5tLogo Splash Screen Image Injector. It changes the OnePlus 5T splash screen image by decoding its default logo.bin. By decoding, I mean it will extract all of the different PNG images that make up the splash screen image (which is the logo.bin file).
After these individual files are extracted, you can make your desired changes to them and then encode and inject the images back into the logo.bin file. That way, you can modify and change the splash screen image on your OnePlus 5T.
Here’s the process:
- Download the OP5tLogo.zip file above.
- Extract the .exe file in it.
- Find and copy your OnePlus 5T’s logo.bin file. You can find it by doing a device-wide search with a root file explorer like ES Explorer. You can also check this path /dev/block/bootdevice/by-name/.
- Place the logo.bin folder into the same folder into which you extracted the .exe file in the downloaded zip file above.
- Navigate to the folder into which you extracted the .exe file, hold the shift key on your keyboard and right-click on an empty space in the file explorer. Then click open command window here to open a Windows Command Prompt.
- Decode the logo.bin file by running the following command
OP5tLogo -i logo.bin -d
- Edit the PNG files that you want to change from the extracted files.
- Then inject the images back into the logo.bin file by running the command
OP5tLogo -i logo.bin -j image_name
- Finally, flash the modified logo file on your OnePlus 5T via fastboot using the command
fastboot flash LOGO modified.logo.bin.
Things to note
- Your original logo.bin file won’t be changed when you make changes to the individual PNG files after decoding. It will only be read.
- To see what’s in your logo.bin file run
OP5tLogo -i logo.bin -l. For a more comprehensive list, run
OP5tLogo -i logo.bin -L.
- If the colours are messed up when you decode, try again using the -s switch. Here’s the command
OP5tLogo -i logo.bin -d -s. If you do this, you also have to use the -s switch when injecting the images back into the logo.bin file. Here’s the command
OP5tLogo -i logo.bin -j image_name -s.
- You can put as many names as you want after the -j switch, and it’s not case sensitive. You also don’t have to put the whole name; if you just put “-j fhd”, every image in the logo.bin that starts with “fhd” will be injected. There has to be a PNG with the name in the directory, though.
- If the re-encoding of the logo.bin file after the PNG files were modified were successful, the size of your modified.logo.bin file will be displayed along with the original size. The ‘splash’ partition on the OnePlus 5T is 16MB in size, so you have to make sure that the changes you make do not increase the file size above that. If you use too much colour on too many of the images you will easily go over 16 MB. The program will tell you and delete the “modified.logo.bin” that was created. If you would like to keep it, use the “-B” flag on the command.
Technical – About Raw Images and Run Length Encoded Images
The developer of the OP5TLogo Splash Screen Image Injector, makers_mark used a special type of image decoding and encoding, and has explained how it works in the tool to modify your OnePlus 5T. In his/her words:
What Is A Raw Image?
A raw image, whether it be a file or an image in memory, is simply pixel data. There is no extra information like width, height, name, end of line… Absolutely nothing, just pixel data. If you have an image that is raw and the resolution is 1080×1920 and you are using a typical RGB24 or BGR24 (like the ones used here), then your exact filesize or size in memory will be 1080x1920x3! We use 3 here because there is one byte for the R or red component, one for the G (green), and one for the B(blue).
What Is A Run Length Encoded Image?
A run length image encoding uses a count ;usually a single byte (char), 2 bytes (short int), or 4 bytes (long int); and then the pixelcomponents. So instead of writing out 300 bytes of ‘0’s to make a line of 100 black pixels. Black is RGB(0,0,0). You could encode this as 100, 0, 0, 0. And only use 4 bytes of data to get the exact same image as the 300 byte raw image. All the run length encoding I’ve found, except the Motorola style which is a little different, use a run length encoding that is pixel-oriented like this.
Now I’ve found this new one and it is a byte-oriented run length encoding. This is for runs of bytes, not pixels. You may think, well whats the big deal? When you add a little area of color, you increase the run length encoded image in you logo.bin immensely! You use 6 bytes per pixel if there aren’t any runs of color data. If you had an image that was a 1080×1920 black image with a 25 pixel horizontal line in the middle. The encoder would be doing runs of black dataefficiently until it reached the red area.
…..0 255 0 255 0 255 0 255 0 255 0 133 /// we’ve reached the top left corner of the red line /// 13 1 30 1 255 1 // << that was just one red pixel!! in bgr color order (13, 30, 255) <<// And it keeps going through the rest of the red pixels on that line using 6 bytes per pixel, which is the opposite of compression. Before reaching the red line the encoding was decoding to 255 zeros over and over, until finally 133 zeros. 255 zeros is 85 black pixels stored in just 2 bytes!
This type of encoding is ONLY good for grey scale images. It is not good with color, but it still will handle color of course. In grey scale, the Red, Blue, and Green data components are always the same values. All the way from black (0,0,0) to white (255, 255, 255); including every shade of grey in between>>>(1,1,1) (2,2,2) (3,3,3)….(243, 243, 243) (254, 254, 254)<<<
One other difference in this method of run length encoding is that the color byte is before the count, which is backwards from all of the other methods.
The attachment contains the executable that was compiled using mingw32 on a 64 bit Windows 10 PC. The PNG library that I used is LodePng, the source is in the download.