Advertisement
Advertisement

More Related Content

Advertisement
Advertisement

Learning AOSP - Android Booting Process

  1. ““Learning AOSP”Learning AOSP” Android Booting ProcessAndroid Booting Process Nanik TolaramNanik Tolaram @nanikjava@nanikjava ozandroid.infoozandroid.info
  2. Thank You !Thank You !
  3. ArchitectureArchitecture
  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. 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. 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. 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. 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. 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. 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. Boot CompleteBoot Complete  ACTION_BOOT_COMPLETEDACTION_BOOT_COMPLETED broadcast Intent will firebroadcast Intent will fire
  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. Thank YouThank You
Advertisement