First code executed on power-on. Initializes DRAM controller, basic clocks, eMMC storage controller, verifies and loads LK bootloader from boot partition.
DRAM Initialization - Memory controller setup and configuration
eMMC Storage - Flash storage controller initialization
Partition Layout - MT6580 scatter file partition table
Preloader Binary - First-stage bootloader image
Little Kernel - lightweight bootloader providing boot mode selection, display initialization, kernel loading and verification, device tree loading, and command line parameters.
Boot Logo & Display - Splash screen and display driver init
Boot Animation - Android boot animation player
Recovery Mode - System recovery and update mode
Fastboot Mode - Flash/debug protocol for development
Logo Selector - Custom boot logo management
Linux 3.18.x kernel initialization - core hardware setup, memory management, early console, and low-level driver framework before device tree parsing.
Boot Parameters - Kernel command line arguments
Memory Config - Physical memory layout and zones
Early Console - UART debug output initialization
Kernel Image - Compressed kernel binary
Hardware discovery from device tree blob - eliminates board-specific kernel code by describing hardware topology, peripherals, and configurations in a data structure.
CPU Topology - ARM Cortex-A7 quad-core definition
SoC Node - MT8127 system-on-chip hierarchy
Compatible Strings - Device driver matching identifiers
Device Tree Binary - Compiled hardware description
Critical dependency-ordered driver initialization. Interrupt controllers MUST initialize first, followed by clocks, pinctrl, regulators, then peripheral drivers. This ordering prevents race conditions and ensures hardware availability.
Interrupt Controllers - GIC/NVIC interrupt routing (MUST be first)
Clock Framework - System clock tree and PLLs
Pin Multiplexing - GPIO function routing and electrical properties
Power Regulators - PMIC voltage rail management
DMA Controllers - Direct memory access engines
Timers - System tick and hardware timers
Serial Console - Debug UART for kernel messages
Storage Controllers - eMMC/SD card interface
Display Subsystem - LCD controller and backlight
USB Subsystem - USB OTG controller
Audio Subsystem - I2S/PCM codec interface
I2C Bus - Serial peripheral communication
SPI Bus - High-speed serial interface
GPIO Controllers - General purpose I/O pins
Thermal Management - Temperature sensors and throttling
6
WIRELESS CONNECTIVITY
▼
MT6620/MT6627 combo chip initialization providing WiFi 802.11n, Bluetooth 4.0, FM radio receiver, and GPS. Shared RF frontend with separate protocol stacks.
WiFi - 802.11 b/g/n wireless networking
Bluetooth - BT 4.0 Classic and BLE
FM Radio - 76-108 MHz FM receiver
GPS - Location and navigation satellite receiver
WLAN Firmware - WiFi binary blob and nvram
Root filesystem mounted from ramdisk, then system and vendor partitions. Android Treble architecture separates vendor HALs from system framework for independent updates.
Root Filesystem - Initial ramdisk with init binary
System Partition - Android framework and apps
Vendor Partition - Hardware-specific libraries and HALs
User Data - Application data and settings
Fstab - Filesystem mount table configuration
First userspace program, parent of all processes. Parses init.rc scripts to start services, set properties, mount filesystems, and configure security policies (SELinux).
Init Scripts - Service definitions and boot actions
MTK Init - MediaTek-specific initialization
Device Node Manager - Dynamic /dev node creation
SELinux - Security policy enforcement
9
SERVICE MANAGERS (IPC Infrastructure)
▼
Inter-process communication registry. Classic Binder for framework services, HIDL for Treble HALs, vendor service manager for proprietary extensions. All Android IPC flows through these managers.
Binder IPC - Classic Android IPC mechanism
HIDL Services - Hardware Interface Definition Language (Treble)
Vendor Services - Proprietary vendor service registry
Service Manager - Central service lookup daemon
Essential system services running as native C/C++ daemons. Handle logging, storage volumes, networking, crash dumps, and package installation at a lower level than framework services.
Logging Daemon - Centralized log buffer manager
Volume Daemon - Storage volume and encryption manager
Network Daemon - Network configuration and routing
Crash Handler - Native crash dump and tombstone generator
Installer Daemon - APK installation helper
11
HARDWARE ABSTRACTION LAYER (HAL)
▼
Hardware abstraction layer isolates Android framework from device-specific implementations. Enables framework portability across different hardware while vendors provide hardware-specific code.
Audio HAL - Sound routing and effects processing
Graphics HAL - GPU and display composition
Power HAL - CPU frequency scaling and suspend
Camera HAL - Image sensor and ISP control
WiFi HAL - Wireless configuration interface
Bluetooth HAL - BT stack hardware interface
DRM HAL - Widevine content protection
Keymaster HAL - Hardware-backed cryptography
Sensors HAL - Accelerometer, gyroscope, compass
Light HAL - LED and backlight control
12
VENDOR-SPECIFIC HAL SERVICES
▼
Autochips car head unit specific HALs for automotive features not in standard Android. Provides backup camera input, DVR recording, CAN bus vehicle integration, and car-specific audio routing.
Autochips Audio - Car-specific audio mixer and routing
Backup Camera - Reverse camera video input
DVR Service - Dashcam recording management
CAN Bus - Vehicle data integration (OBD-II, steering wheel controls)
MCU Service - Microcontroller communication for vehicle functions
13
MEDIA & GRAPHICS SERVICES
▼
Core multimedia servers. SurfaceFlinger composites all UI layers to framebuffer. Audio/media/camera servers handle codec pipelines, mixing, and hardware encoding/decoding.
SurfaceFlinger - Display compositor and vsync manager
Audio Server - Audio mixing and policy enforcement
Media Server - Codec management and playback pipeline
Camera Server - Camera capture and processing
HWComposer - Hardware-accelerated layer composition
14
ZYGOTE (App Process Spawner)
▼
Preloaded app template process. Loads framework classes and resources once, then forks new app processes from this warm state. Dramatically reduces app startup time versus cold start.
Main Zygote - Primary app spawner with preloaded framework
WebView Zygote - Isolated renderer process template
App Process - Forked application instance
Dalvik/ART - Java VM and runtime environment
15
SYSTEM SERVER (Android Framework)
▼
The heart of Android framework. Runs all core system services including activity lifecycle, package management, window management, and hardware service coordination. Single process hosting 80+ system services.
Activity Manager - App lifecycle and task stack management
Package Manager - APK installation and app registry
Window Manager - UI window hierarchy and input routing
Power Manager - Screen timeout and wake lock arbitration
Location Manager - GPS and network location fusion
System fully initialized and ready for user interaction. Boot completed broadcast sent to all apps, launcher loads home screen, device enters idle state. Average boot time: 30-60 seconds from power-on.
Boot Properties - System flags indicating boot completion
Launcher Ready - Home screen application loaded
Boot Broadcast - BOOT_COMPLETED intent to applications
Boot Profiling - Boot time analysis and bottleneck detection