What Happens When You Power On an Android Phone? A Deep Dive into the Boot Process
This article explains the complete Android phone boot sequence—from power‑on, through the BIOS‑like bootloader, Linux kernel initialization, init and Zygote processes, to the launch of the first app and the desktop UI—in clear, step‑by‑step detail.
PC Boot Process Based on Linux
When a PC is powered on, the BIOS (Basic Input/Output System) – firmware stored on a motherboard chip – is the first program executed. The CPU starts in 16‑bit real mode at address 0xFFFF0, where the BIOS code resides. The BIOS performs hardware self‑test, builds the interrupt vector table, and loads the first sector (boot sector) of the disk into memory via interrupt 0x19. Subsequent stages load additional sectors, eventually handing control to the operating system's kernel.
Android Phone Boot Process
Android, also built on Linux, replaces the BIOS with a bootloader that initializes hardware, creates a memory image, and prepares the environment for the kernel. Android devices store the system in ROM, partitioned as follows:
/boot – bootloader and kernel
/system – Android system and system apps
/recovery – recovery partition for system restores
/data – user data (contacts, messages, settings, installed apps)
/cache – frequently accessed system data
/misc – miscellaneous settings
/sdcard – user‑visible storage for media files
The bootloader is mapped to a fixed address (similar to 0xFFFF0) and executed from the /boot partition, loading the Linux kernel into RAM. Once the kernel starts, it initializes drivers, mounts the root filesystem, and runs the init process.
The init process is the ancestor of all Android user processes. It starts core services (Media Server, Service Manager, boot animation, etc.) and parses init.rc, after which it forks the Zygote process.
Zygote loads the ZygoteInit class, starts a socket service, loads the virtual machine, pre‑loads core Android classes and resources, and then forks the System Server process. System Server launches and manages the Android framework services such as Activity Manager and Power Manager.
When System Server signals that services are ready, the Activity Manager starts the first application – the Home screen – completing the boot sequence.
Thus, from power‑on to the visible desktop, the Android boot process mirrors a PC’s boot stages but uses a bootloader, ROM partitions, and the Zygote/System Server architecture specific to mobile devices.
References: http://blog.chinaunix.net/uid-26569496-id-3891554.html http://ticktick.blog.51cto.com/823160/1659473 http://gityuan.com/2016/01/30/android-boot/
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
