Learning AOSP - Android Booting Process
-
Upload
nanik-tolaram -
Category
Technology
-
view
9.450 -
download
12
Transcript of Learning AOSP - Android Booting Process
““Learning AOSP”Learning AOSP”Android Booting ProcessAndroid Booting Process
Nanik TolaramNanik Tolaram@nanikjava@nanikjava
ozandroid.infoozandroid.info
Thank You !Thank You !
ArchitectureArchitecture
Questions !Questions ! What happened when I press power on button in my Android What happened when I press power on button in my Android
device ?device ?
What is Android boot sequence ?What is Android boot sequence ?
What is bootloader ?What is bootloader ?
What is Zygote ?What is Zygote ?
What is init.rc ?What is init.rc ?
What is System Server ?What is System Server ?
Boot Execution PathBoot Execution PathBoot ROM
Boot Loader
Kernel
Init
Zygote
System Servers
hardware
boot.img, C & ASM, rootfs
system.img,Android framework & apps
u-boot or different fork
Boot ROM & Boot LoaderBoot ROM & Boot LoaderPower ON
On chip ROM (during CPU production)
Primary Boot Loader
Secondary Boot Loader
Hardware Init Modem Image Execution
Kernel Image Download & Execution
1st loaded from flash (normally)/fastboot
KernelKernel Nothing Special ! Nothing Special !
Standard Linux Kernel ExecutionStandard Linux Kernel Execution
Hardware & Android Device DriversHardware & Android Device Drivers
Needed in recovery and system partitionNeeded in recovery and system partition
InitInit Main entry point to AndroidMain entry point to Android init.rc and other .rc configinit.rc and other .rc config Initialisation and preparationInitialisation and preparation
Android framework initialisationAndroid framework initialisation Environment properties setupEnvironment properties setup Security setupSecurity setup
Mounting of different media partitionsMounting of different media partitions System servers initialisationSystem servers initialisation
ZygoteZygote Initialise during Initialise during Init Init processprocess
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-serverserver
Registers server socketRegisters server socket Preload Java classes from “preloaded-Preload Java classes from “preloaded-
classes” fileclasses” file Preload native themes and layoutsPreload native themes and layouts
System ServersSystem Servers System Servers written both as Native & System Servers written both as Native &
JavaJava startSystemServer() methodstartSystemServer() method Power Manager, Zygote, Activity Power Manager, Zygote, Activity
Manager, Telephony Registry, Battery Manager, Telephony Registry, Battery Service and many moreService and many more
Boot CompleteBoot Complete ACTION_BOOT_COMPLETED ACTION_BOOT_COMPLETED
broadcast Intent will firebroadcast Intent will fire
Boot Sequence DecisionBoot Sequence DecisionBootloader Microcode
Boot Partition
System Partition Recovery Partition
Recovery
Y
N
Execute Recovery AppRun Android Stack
Bootloader (1st, 2nd, nth)
Thank YouThank You