Home » Android » Android boot process explained : How Android boots?

Android boot process explained : How Android boots?

In previous and very first post of the blog, I told you about the booting process of Linux, here comes the Android as well! Android is an open source mobile operating system developed by Google Inc. and is based and operates on Linux kernel. There is a difference, Linux kernel is based on x86 architecture but almost all Android phones now are running on ARM architecture (Advanced RISC Machines) except Intel Xolo 900 which runs on Atom 1.6 GHz x86 processor.

  1. Boot ROM: When you power ON the Android phone, no initializations have been made. The only memory available is internal ROM. In its very first time, the processor executes a code called Boot ROM which is hardwired in the internal ROM. It is responsible for resolving the boot media and loading the bootloader from boot media. Bootloader is a component which initializes the DRAM and load another stages for booting.
  2. BL0/uBoot: Here comes the first stage or level of bootloader. It is responsible for determining and reading the boot image (kernel) and ramdisk (file system).
  3. Kernel: Kernel is the core of any operating system, which is responsible for booting the operating system and manage everything else. Android is based on Linux kernel. Kernel (sometimes referred as boot image ) can be a compressed or decompressed boot image. When kernel is loaded in memory, it creates and mounts the rootfs (root file system).

The kernel executes a script called boot image (which is located in the ramdisk), init , as its name suggest (initialize or, initialization), configures the rest of the process for booting and to setup the environment for the user. It is the very first process started by the kernel. In Android, init mounts the directories like /proc , /sys , /dev etc. and run the init.rc script. Android has its own specific format for its init.rc script which is also explained in the latter part of this guide.

The init.rc language of Android has mainly for parts:

  1. Actions: Actions are the sequence of commands to be executed. It consist of a trigger which tells when a action should be executed, for example: early-init, init, boot, fs, post-fs etc. Syntax :
  2. Services: Services (sometimes referred as daemons) are the programs that are to be executed when the init process starts.Syntax:
  3. Options: The options tells how and when the init runs the services.

The init.rc file is located in the root directory of any Android phone and looks like this (your may be different):

 

  1. Zygote and dalvik: The zygote initializes the Dalivik VM and forks to create multiple instances to support each android process. It facilitates using a shared code across the VM instances resulting in a low memory foot print and short load time, ideal for an embedded system. Zygote apart from installing a listener on the server socket, also preloads classes and resources to be used later in the Android applications. Once done, the system server is started.
  2. System services: Sometimes referred as SystemServer, initializes and starts all the services on a Android phone. Some of the core services and other services have been mentioned below:
    Power Manager
    Activity Manager
    Package Manager
    Window Manager
    Display Manager
    Content Manager
    Backup Manager
    Input Manager
    Accounts Manager
    Notification Manager
    Alarm Manager
    Location Manager
    Entropy Mixer
    Status Bar
    Battery Service
    Scheduling Policy
    Device Policy
    Clipboard Service
    Network Service
    NetworkStats Service
    NetworkPolicy Service
    NetworkManagement Service
    AppWidget Service
    Connectivity Service
    Ethernet Service
    Wi-Fi_P2P Service
    Wi-Fi Service
    Discovery Service
  3. ACTION_BOOT_COMPLETED: As soon as all the services are up and running, the Android broadcasts a ACTION_BOOT_COMPLETED message which is the end of the booting process of Android.

That was all how any Android phone boots up, please do a comment if you have any query!

About Ashish Srivastava

4 comments

  1. In not sure u can help but my Phn is all messed up my x boy friend has connected it to his or something vheko please. Tmotomom5415@gmail.com is my email please send any info u need or if u can even help. I just want a phone of my own that actually works properly.

  2. It tells me im rooted then it says Im not. I have numerous settings I use to be able to control over now Im very limited. I am not able to use features that are free and usable to most aka WiFi hotspots. It as if I am being tracked and or stalked by whether I chose to or not. He has used alot of 3rd party apps to utilize the CC options but I no nothing other than that I haven’t a clue 1 to rid this or if i even can. It use to say i had a hz- buildsrv22 but that doesn’t appear anymore at least for the moment. My emails past and present seem to be swRmed with tasteless unasked for pornography. Please see if thats enough to help start i will send further into as needed but may need assist in how tepending on what is needed.

    • He might have used some 3rd party apps to get into your system directory or maybe just used the Kali tools, the best bet is to install the stock rom again, please mention the model number of the device and I’ll provide you a guide to install stock rom, the only thing you should backup are the contacts I assume and don’t forget to change your Gmail account password(along with Dropbox and other data sharing sites passwords). Hopefully this will make him unable to track you down anymore.

Leave a Reply

Your email address will not be published. Required fields are marked *

*