Friday, August 19, 2011

Android Bootup Logo and Animation

Vanilla Android boots up with a Green Droid logo and then switch to boot animation.

Droid logo image is loaded by init process(system/core/init/init.*)
main()
--> console_init_action()
      --> load_565rle_image(INIT_IMAGE_FILE)

Where INIT_IMAGE_FILE="/initlogo.rle"
Image load processing is handled by system/core/init/logo.c

Android boot animation is triggered by SurfaceFlinger startup routine(frameworks/base/services/surfaceflinger/SurfaceFlinger.cpp)
SurfaceFlinger::readyToRun()
--> property_set("ctl.start", "bootanim")

Where bootanim service(defined in /init.rc) will start /system/bin/bootanimation
Bootanimation code can be found here frameworks/base/cmds/bootanimation/*

Now you know what you need to modify to create a custom Android bootup Logo or Animation.

2 comments:

  1. hi,

    I have checked the code. I have made all the above things in surface flinger and init.rc, but still the bootanim is not coming up. please tell me where is the problem

    ReplyDelete
  2. nisam siguran ali mislim da ima neko pravilo prilikom kreiranja slike. i sam imam problema...mislim da slika moram biti 16bit grafika :)

    ReplyDelete