Android系统启动流程1

您所在的位置:网站首页 白蜡木学名叫什么 Android系统启动流程1

Android系统启动流程1

#Android系统启动流程1| 来源: 网络整理| 查看: 265

本文将基于我个人的理解,通俗的介绍Android系统的大致启动流程。

本文的内容基于高通开源 Android 10(kernel启动之前) 与 Google AOSP 12(kernel启动之后)。

一、简述

Android设备的启动,以目前手机主流的高通平台为例,最典型启动路径是启动Android系统,主要经历 bootloader -> kernel -> Android 三个大步骤。除此之外,还有启动Recovery模式和fastboot模式等启动路径。

当我们按下手机的开机电源键后,设备会首先启动bootloader,bootloader的主要作用是准备硬件环境,引导Linux Kernel(Linux内核)的启动。

这里bootloader启动过程中,会区分本次要启动的系统是Android系统或Recovery模式甚至是fastboot模式:

Recovery模式是另一个小型的类Android(Linux)系统,它独立于Android系统,主要作用是用来清除用户数据(在某些系统中被称作“恢复出厂设置”)、升级Android系统(OTA)等。请注意,如果系统采用的A/B分区结构,则Recovery不再具备升级Android系统的能力。fastboot模式是bootloader中的一个模块,它没有启动Linux Kernel,主要作用是通过USB连接,刷写Android镜像、控制A/B slots状态(如果采用A/B分区结构)等。Android系统就是我们所通常指的Android系统,它主要由Linux Kernel、HAL硬件抽象层、运行时库、Framework(Native层和Java层)、应用等组成。传统启动框架A/B分区启动框架二、bootloader

高通目前比较新的设备(骁龙845/865等)采用的bootloader是PBL->XBL->ABL多级引导启动的方式。

PBL是固化在硬件设备上的,无法刷写,使用高通QFIL工具给设备刷机时设备运行的紧急模式(9008模式)就是运行在PBL中。

高通bootloader的UEFI实现主要分为XBL和ABL两部分,其中XBL包含芯片特有的核心协议以及核心应用程序。ABL则是XBL中的核心应用程序之一,包含独立于芯片组的应用程序,例如fastboot。

我们一般涉及到的定制部分,都集中在ABL中。

三、fastboot

fastboot是bootloader中的一个功能,对于爱折腾、常刷机的小伙伴们一定再熟悉不过了。它是在bootloader中提供的一个通过USB连接对设备进行查看和修改的工具,包括重启、双清、刷机、设置启动slot等。

fastboot分为客户端和服务端:

客户端我们通常在电脑上运行,解析命令并通过usb与设备通信。服务端即是我们所说的设备的fastboot模式,真正的执行都在这里。

fastboot常用命令包括:

# 查看连接的fastboot设备 fastboot devices # 列出当前状态 fastboot getvar all # 使用FILENAME文件刷写PARTITION分区 fastboot flash PARTITION [FILENAME] # 重启(正常重启或重启到fastboot) fastboot reboot [bootloader] # 清除PARTITION fastboot erase PARTITION # 选择启动的slot(用于A/B分区结构) fastboot set_active SLOT四、Linux Kernel

五、Recovery六、Android



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3