Android系统分区介绍

Android系统分区介绍

Android系统分区介绍

hboot——系统开机引导类似电脑BIOS,这块刷错手机就会变成砖

radio——通讯模块、基带、WIFI、Bluetooth等衔接硬件的驱动软件 model分区

recovery——系统故障时负责恢复

boot——Linux嵌入式系统内核

system——系统文件、应用

cache——系统运行时产生的缓存

userdata——用户使用APP产生的缓存数据

几个关键分区:

/boot

它由 kernel 和 ramdisk 构成,内核就这这里

/system

这个分区包含了整个操作系统除 kernel 和 ramdisk 之外的其它部分,包括 Android UI 和设备上预装的 APP。删除这个分区只会同步将 Android 系统从设备上卸载掉,而不会导致设备不能重启,因此你依然可以顺利让设备进入到 recovery 或 bootloader 模式来为它重新刷入一个新的 ROM。

/recovery

recovery 分区相当于一个备用的 boot 分区,利用它我们可以使设备启动到恢复模式窗口来进行一些高级的恢复和维护操作。

/data

这个分区也被称作 /userdata,是用户数据被存储的地方——也就是说你的联系人、短信、配置文件和你自己安装的 APP 都位于这里。删除这个分区相当于将你的设备恢复出厂设置,你的设备会变得和你第一次开机或最后一次刷入官方/自定义 ROM 后一样。你在设备上点击清除用户数据或恢复出厂设置按钮后,实际上清除掉的就是这个分区。

/cache

这个分区中存放的是 Android 系统中经常被访问的数据和 APP 的部件。删除这个分区不会对你的个人数据造成影响,这个分区上的数据会随着你继续使用设备被重新收集并存储在这里。

/misc

这个分区中包含了各种以开关量形式保存的系统配置,包括 CID(Carrier or Region ID)、USB配置和某些硬件配置等。这是个很重要的分区,如果它遭到了破坏或有数据丢失,那么设备的一些功能可能无法正常使用。

Android启动概述

软件系统架构图

Android经典的四层架构图

Android架构图

这里主要讲涉及的镜像有boot.img、system.img、vendor.img、recovery.img、userdata.img、cache.img,与平台相关的镜像有lk.bin(MTK)、preloader.img(MTK)、logo.bin(MTK)、emmc_appsboot.mbn(QCOM)、splash.img(QCOM)等,通常来说,修改kernel层通常编译boot.img即可,修改Framework层或Native层主要是编译system.img,在Android O之后修改某些模块还需要编译vendor.img,主要是受Android O Treble的影响,具体问题需要具体分析。

启动:

概述:Loader > Kernel > Native > Framework > Application

细分:BootRom > Bootloader > Kernel > Init > Zygote > SystemServer > Launcher

Loader层主要包括Boot Rom和Boot Loader

Kernel层主要是Android内核层

Native层主要是包括init进程以及其fork出来的用户空间的守护进程、HAL层、开机动画等

Framework层主要是AMS和PMS等Service的初始化

Application层主要指SystemUI、Launcher的启动

首先从bootloader分区中一个固定的地址开始执行指令,如图所示,bootloader分区分成两个部分,分别叫做primary bootloader和secondary stage bootloader。Primary bootloader主要执行硬件检测,确保硬件能正常工作后将secondary stage bootloader拷贝到内存(RAM)开始执行。Secondary stage bootloader会进行一些硬件初始化工作,获取内存大小信息等,然后根据用户的按键进入到某种启动模式。比如说大家所熟知的通过电源键和其它一些按键的组合,可以进入到recovery,fastboot或者选择启动模式的启动界面等。我们在论坛上看到的bootloader通常指的就是secondary stage bootloader。不过我们不需要关心太多的细节,可以简单的理解为bootloader就是一段启动代码,根据用户按键有选择的进入某种启动模式。

fastboot模式:fastboot是android定义的一种简单的刷机协议,用户可以通过fastboot命令行工具来进行刷机。比如说fastboot flash boot boot.img这个命令就是把boot.img的内容刷写到boot分区中。一般的手机厂商不直接提供fastboot模式刷机,而是为了显示他们的牛B之处,总是会提供自己专有的刷机工具和刷机方法。比如说三星的Odin,摩托的RSD,华为的粉屏等等。但是其本质实际上是相同的,都是将软件直接flash到各个分区中。

recovery模式:recovery是android定义的一个标准刷机协议。当进入recovery模式时,secondary stage bootloader从recovery分区开始启动,recovery分区实际上是一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux系统所有程序的老祖宗)。init会启动一个叫做recovery的程序(recovery模式的名称也由此而来)。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。一般的手机厂商都提供一个简单的recovery刷机,而大名鼎鼎的CWM Recovery就是一个加入了很多增强功能的recovery,要想用上CWM Recovery前提是recovery分区可以被刷写。大家在论坛上看到的解锁bootloader,通常指的就是解锁recovery或fastboot,允许刷写recovery分区,这样大家就可以用上喜爱的CWM Recovery了。

手机除了普通的CPU芯片以外,还有MODEM处理器芯片。该芯片的功能就是实现手机必需的通信功能,大家通常所的刷RADIO就是刷写modem分区。

相关内容

如何设置qq空间问题
365名品汇推荐码多少

如何设置qq空间问题

⌛ 07-01 👁️ 7368
玛吉斯轮胎ma656
bst365大陆投注

玛吉斯轮胎ma656

⌛ 07-13 👁️ 4058
支付宝借呗、花呗多久还清最划算?避坑指南
365名品汇推荐码多少

支付宝借呗、花呗多久还清最划算?避坑指南

⌛ 08-12 👁️ 9736
iphone7手机壳
365名品汇推荐码多少

iphone7手机壳

⌛ 08-19 👁️ 1276
诗人陈超之死:嵌于两个时代转换间的注脚(2)
bst365大陆投注

诗人陈超之死:嵌于两个时代转换间的注脚(2)

⌛ 08-23 👁️ 2255
【雷】可以组哪些词
365名品汇推荐码多少

【雷】可以组哪些词

⌛ 08-20 👁️ 4954
笔记本电脑在哪买比较好(去哪里买笔记本电脑比较好)
365名品汇推荐码多少

笔记本电脑在哪买比较好(去哪里买笔记本电脑比较好)

⌛ 08-18 👁️ 2232
#阅读历程 说明
365名品汇推荐码多少

#阅读历程 说明

⌛ 08-20 👁️ 298
滴滴公司待遇?
bst365大陆投注

滴滴公司待遇?

⌛ 07-15 👁️ 4936