Learning AOSP - Android Booting Process


Published on

"Learning AOSP" series presentation. In this presentation we talk about how the Android boots up

Published in: Technology
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Learning AOSP - Android Booting Process

  1. 1. ““Learning AOSP”Learning AOSP” Android Booting ProcessAndroid Booting Process Nanik TolaramNanik Tolaram @nanikjava@nanikjava ozandroid.infoozandroid.info
  2. 2. Thank You !Thank You !
  3. 3. ArchitectureArchitecture
  4. 4. Questions !Questions !  What happened when I press power on button in my AndroidWhat 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 ?
  5. 5. Boot Execution PathBoot Execution Path Boot ROM Boot Loader Kernel Init Zygote System Servers hardware boot.img, C & ASM, rootfs system.img, Android framework & apps u-boot or different fork
  6. 6. Boot ROM & BootBoot ROM & Boot LoaderLoader Power 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
  7. 7. 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
  8. 8. 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
  9. 9. ZygoteZygote  Initialise duringInitialise during InitInit 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
  10. 10. System ServersSystem Servers  System Servers written both as Native &System Servers written both as Native & JavaJava  startSystemServer() methodstartSystemServer() method  Power Manager, Zygote, ActivityPower Manager, Zygote, Activity Manager, Telephony Registry, BatteryManager, Telephony Registry, Battery Service and many moreService and many more
  11. 11. Boot CompleteBoot Complete  ACTION_BOOT_COMPLETEDACTION_BOOT_COMPLETED broadcast Intent will firebroadcast Intent will fire
  12. 12. Boot SequenceBoot Sequence DecisionDecision Bootloader Microcode Boot Partition System Partition Recovery Partition Recovery Y N Execute Recovery AppRun Android Stack Bootloader (1st, 2nd, nth)
  13. 13. Thank YouThank You
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.