Android's boot up process is summarized below:
Boot-loader | - | Location: bootable\bootloader\legacy\usbloader |
init.S | Initializes stacks, zeros the BSS segment, call _main() in main.c | |
main.c | Initializes hardware (clocks, board, keypad, console), creates Linux tags | |
Displays "USB FastBoot". Boot from flash, or loops while usb_poll() awaits host PC connection | ||
Linux kernel | - | Sets up the system, loads drivers, and starts running the first process init |
The init process | Setup file system | Create and mount directories like /dev, /proc, /sys |
Execute init.rc | This is the boot-up script, commands are using Android-specific syntax, see readme.txt | |
Setup console | ||
Display "A N D R O I D" | This is just a text msg written to /dev/tty0 | |
Zygote | Zygot process in init.rc brings up Dalvik Java VM and starts the system server | |
bootanimation | Shows the animation during boot-up | |
Framework | …. | …. |