(This is a stub)
Android's boot up process is summarized below:
Stage | Steps | Comments |
---|---|---|
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 | …. | …. |
References
- General Android boot process
- Boot of Linux on Embedded Devices
- Linux U-boot:
http://www.denx.de/wiki/view/DULG/UBoot - OMAP bring-up: http://elinux.org/Android_on_OMAP
- eLinux boot time:
http://elinux.org/Boot_Time#Measuring_Boot-up_Time
- Linux U-boot:
- The Android boot image: boot.img
- Unpack, re-pack boot image:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images#Background
- Unpack, re-pack boot image: