Android Booting

Revision as of 15:19, 12 January 2010 by Tim Bird (Talk | contribs) (add information about system initialization)

Jump to: navigation, search

The bootup of an Android system consists of several phases, which are outlined here.

Device-specific startup

  • firmware/bootloader
    • On the ADP1, there are multiple versions of the bootloader
  • kernel
  • mount root file system

Generic startup

  • run /init
    • process /init.rc

See the [Android init language reference]

Sequence of boot steps on ADP1


  • first-stage bootloader runs
    • it detects if a special key is held, and can launch the recovery image, or the 'fastboot' bootloader


  • kernel is loaded
  • kernel boots
    • core kernel initialization
    • driver initialization

user space

  • user space starts
    • kernel runs /init
      • /init processes /init.rc and /init.rc.<machine_name>
      • activity manager is run
      • dalvik VM is started (zygote)
  • activity manager starts core applications
    • - phone application
    • android.process.acore - home (desktop) and a few core apps.
  • other processes started by /init:
    • adb
    • mediaserver
    • dbus-daemon
    • akmd

Tools for analyzing Android Bootup

Notes on the Android startup procedure


See "Android Initialization Process" at:


Interaction of different processes on application initialization

Talking about Android Process -