Register Hello & Welcome to Andriodtablets.net, is this your first visit?

[How To] Setup Static Bootlogo (Before Animated Boot Animation)

This is a discussion on [How To] Setup Static Bootlogo (Before Animated Boot Animation) within the Android Tablet Hacking forums, part of the Android Tablet Applications & Extras category; To setup the static bootlogo, you need to create a specially formatted image to be named initlogo.rle to be placed in the root directory of ...


Results 1 to 7 of 7
Thanks Tree3Thanks
  • 3 Post By xaueious

Thread: [How To] Setup Static Bootlogo (Before Animated Boot Animation)

  1. #1
    Administrator
    Points: 105,560, Level: 100
    Level completed: 0%, Points required for next Level: 0
    Overall activity: 2.0%
    Achievements:
    Recommendation Second Class 25000 Experience Points 10000 Experience Points 5000 Experience Points 1000 Experience Points

    Member #
    795
    Join Date
    Jul 2010
    Location
    Hong Kong, China (formerly Canada)
    Posts
    3,471
    Thanked
    362 times
    Points
    105,560
    Level
    100
    Device
    Huwaei Ideos S7-104 (Rogers 3G), HSG X5A, RK2818 RT7 (Past APAD IMX515, APAD RK2808)

    [How To] Setup Static Bootlogo (Before Animated Boot Animation)

    To setup the static bootlogo, you need to create a specially formatted image to be named initlogo.rle to be placed in the root directory of the ramdisk.

    You need the 'convert' binary to convert the image to a raw rgb888 file, and the to565 will convert it to initlogo.rle.

    The resolution of the boot logo should be the size of the screen, in pixels. For example, 800x480.

    I use a script under Ubuntu to convert my png image to my static splash logo:
    Code:
    #! /bin/sh
    convert -depth 8 splash.png rgb:splash.raw
    ./to565 -rle < splash.raw > initlogo.rle
    you need need the to565 compiled (gcc -o to565 to565.c):
    Code:
    /*
     * Copyright (C) 2008 The Android Open Source Project
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
        
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    
    #define to565(r,g,b)                                            \
        ((((r) >> 3) << 11) | (((g) >> 2) << 5) | ((b) >> 3))
    
    #define from565_r(x) ((((x) >> 11) & 0x1f) * 255 / 31)
    #define from565_g(x) ((((x) >> 5) & 0x3f) * 255 / 63)
    #define from565_b(x) (((x) & 0x1f) * 255 / 31)
    
    void to_565_raw(void)
    {
        unsigned char in[3];
        unsigned short out;
    
        while(read(0, in, 3) == 3) {
            out = to565(in[0],in[1],in[2]);
            write(1, &out, 2);
        }
        return;
    }
    
    void to_565_raw_dither(int width)
    {
        unsigned char in[3];
        unsigned short out;
        int i = 0;
        int e;
    
        int* error = malloc((width+2) * 3 * sizeof(int));
        int* next_error = malloc((width+2) * 3 * sizeof(int));
        memset(error, 0, (width+2) * 3 * sizeof(int));
        memset(next_error, 0, (width+2) * 3 * sizeof(int));
        error += 3;        // array goes from [-3..((width+1)*3+2)]
        next_error += 3;
    
        while(read(0, in, 3) == 3) {
            int r = in[0] + error[i*3+0];
            int rb = (r < 0) ? 0 : ((r > 255) ? 255 : r);
    
            int g = in[1] + error[i*3+1];
            int gb = (g < 0) ? 0 : ((g > 255) ? 255 : g);
    
            int b = in[2] + error[i*3+2];
            int bb = (b < 0) ? 0 : ((b > 255) ? 255 : b);
    
            out = to565(rb, gb, bb);
            write(1, &out, 2);
    
    #define apply_error(ch) {                                               \
                next_error[(i-1)*3+ch] += e * 3 / 16;                       \
                next_error[(i)*3+ch] += e * 5 / 16;                         \
                next_error[(i+1)*3+ch] += e * 1 / 16;                       \
                error[(i+1)*3+ch] += e - ((e*1/16) + (e*3/16) + (e*5/16));  \
            }
    
            e = r - from565_r(out);
            apply_error(0);
    
            e = g - from565_g(out);
            apply_error(1);
    
            e = b - from565_b(out);
            apply_error(2);
    
    #undef apply_error
    
            ++i;
            if (i == width) {
                // error <- next_error; next_error <- 0
                int* temp = error; error = next_error; next_error = temp;
                memset(next_error, 0, (width+1) * 3 * sizeof(int));
                i = 0;
            }
        }
    
        free(error-3);
        free(next_error-3);
    
        return;
    }
    
    void to_565_rle(void)
    {
        unsigned char in[3];
        unsigned short last, color, count;
        unsigned total = 0;
        count = 0;
    
        while(read(0, in, 3) == 3) {
            color = to565(in[0],in[1],in[2]);
            if (count) {
                if ((color == last) && (count != 65535)) {
                    count++;
                    continue;
                } else {
                    write(1, &count, 2);
                    write(1, &last, 2);
                    total += count;
                }
            }
            last = color;
            count = 1;
        }
        if (count) {
            write(1, &count, 2);
            write(1, &last, 2);
            total += count;
        }
        fprintf(stderr,"%d pixels\n",total);
    }
    
    int main(int argc, char **argv)
    {
        if ((argc == 2) && (!strcmp(argv[1],"-rle"))) {
            to_565_rle();
        } else {
            if (argc > 2 && (!strcmp(argv[1], "-w"))) {
                to_565_raw_dither(atoi(argv[2]));
            } else {
                to_565_raw();
            }
        }
        return 0;
    }
    XDA reading:
    initlogo.rle: display an image on boot - xda-developers

    Android wiki reading:
    HOWTO: Unpack, Edit, and Re-Pack Boot Images - Android Wiki
    ZilverZurfarn, RomanticEvil and l_n thanked this.

  2. # ADS
    Circuit advertisement
    Join Date
    Always
    Location
    Advertising world
    Posts
    Many

  3. #2
    Senior Member Achievements:
    7 days registered 31 days registered 3 months registered 1 year registered 100 Experience Points

    Member #
    227
    Join Date
    May 2010
    Posts
    133
    Thanked
    7 times
    I might add that the binaries for to565 (both Windows and Linux) can be found here if you're not up to compiling it yourself.

  4. #3
    Senior Member Achievements:
    7 days registered 31 days registered 3 months registered 1 year registered 100 Experience Points

    Member #
    227
    Join Date
    May 2010
    Posts
    133
    Thanked
    7 times
    OK, so now that I got me a nice new boot splash, and would like to tweak update.img, where in update.img should it be placed? Can't find initlogo.rle anywhere.
    Edit N.M. Found it in boot.img /Edit
    Last edited by ZilverZurfarn; 08-17-2010 at 09:15 AM.

  5. #4
    Senior Member Achievements:
    Recommendation Second Class 7 days registered 31 days registered 3 months registered 100 Experience Points

    Member #
    5864
    Join Date
    Oct 2010
    Location
    Tilburg, the Netherlands
    Posts
    245
    Thanked
    16 times
    Device
    Gome FlyTouch / SmartQ7 / HTC X7500 / M006 / CVUK-PC06-2GEN / WMT2.1
    Thanks Xaueious this is what I'm looking for atm!
    For more info about HowTo mod the FlyTouch / ePad generic roms please visit my website @ http://hch.net.tc/, registration is free !
    SmartQ7 owners, upgrade to Uberoid for SmartQ7, an overclocked, fixed, tweaked, expanded Android 2.2
    Eken M006 (128MB) owners, it's finally made! A rooted/modded/updated version of WMT2.0v0915, grab it fast!

  6. #5
    Junior Member Achievements:
    7 days registered 31 days registered 3 months registered 100 Experience Points 250 Experience Points

    Member #
    19141
    Join Date
    Feb 2011
    Posts
    1
    Thanks Xaueious for the info. I am having a hard time finding the convert binary. Could you post a link to the biniaries that you used?

    Thanks again
    -CMYLXGO

  7. #6
    l_n
    l_n is offline
    Senior Member
    Points: 13,452, Level: 75
    Level completed: 51%, Points required for next Level: 198
    Overall activity: 2.2%
    Achievements:
    1000 Experience Points Recommendation Second Class Tagger Second Class 5000 Experience Points 10000 Experience Points

    Member #
    10861
    Join Date
    Dec 2010
    Location
    TN, USA
    Posts
    790
    Thanked
    89 times
    Points
    13,452
    Level
    75
    Device
    Mid7015
    convert is part of the ImageMagick software suite (lots of libraries and utilities in there.. wonderful bit of work from the open source community.)

  8. #7
    Junior Member Achievements:
    7 days registered 31 days registered 3 months registered 100 Experience Points 250 Experience Points

    Member #
    8274
    Join Date
    Dec 2010
    Location
    Puducherry
    Posts
    11
    Device
    Android Tablet 2.2

    Changing splash screen

    Hi all,

    I am trying to change splash screen for android with my own splash screen
    I followed the steps as follows:
    1. Created a new image and save it as raw file
    2. I tried to change raw file to rle file using to565 C program but failed the coding is not showing any dependency nor any error so I download a sample initlogo.rle from net
    3. I pasted the initlogo.rle to /out directory
    4.I compiled the source code

    but no change is happened

    I tried in init.rc to stop the boot animation and I got succeed in it but not on changing the splash screen

    Please correct me If i made any mistakes


 

Sponsors:

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Similar Threads

  1. Joyplus m701 problem - black screen/no boot
    By tonyvh in forum Marvell Based
    Replies: 5
    Last Post: 04-12-2012, 12:38 PM
  2. boot loader?
    By probbiethe1 in forum Android Tablet Hacking
    Replies: 10
    Last Post: 04-04-2012, 03:14 PM
  3. Initial WiFi setup problems...
    By ScaryBob in forum Augen Gentouch
    Replies: 11
    Last Post: 02-11-2012, 07:49 PM
  4. Dual boot Android/Linux devices?
    By lucentum in forum Android Tablet Discussions
    Replies: 0
    Last Post: 04-20-2010, 08:47 AM

Search tags for this page

android boot logo

,
android change boot logo
,
android initlogo.rle
,
boot logo android
,

change android boot logo

,
change boot logo android
,
how to change android boot logo
,
how to change boot logo android
,

initlogo.rle

,
initlogo.rle android
,
logo.rle
,

to565

Click on a term to search our sites for related topics.
Powered by vBulletin® Version 4.1.11
Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.
Android Tablets.net is not affiliated or associated with Google, Android Project or any of the device manufacturers listed on this site.
We are simply an enthusiast site.
All times are GMT -5. The time now is 12:09 AM.