(1) Bootloader分区:Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化以后,再将操做系统映像或固化的嵌入式应用程序装在到内存中而后跳转到操做系统所在的空间,启动操做系统运行。Bootloader百度百科连接前端
(2) Boot分区:存放boot,linux操做系统引导分区。linux
(3) recovery分区:其实是一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux系统全部程序 的老祖宗)。init会启动一个叫作recovery的程序(recovery模式的名称也由此而来)。经过recovery程序,用户能够执行清除数 据,安装刷机包等操做。通常的手机厂商都提供一个简单的recovery刷机。Recovery百度百科连接 缓存
(4) system:是通常发布的ROM的主要功能程序分区了,咱们说的ROM功能和自带程序的定制应该就是基于这个分区的修改和编译了。服务器
(5) Kernel分区:Linux内核。网络
(6) misc分区:有Bootloader Control Block(BCB),主要是用于存放Recovery引导信息。url
(7) userdata:用户数据。spa
(8) Cache:缓存。操作系统
Android系统启动后可能会进入的几种工做模式:.net
若正常启动,即开机没有按组合键,bootloader会读取位于MISC分区的启动控制信息块BCB(Bootloader Control Block)。它是一个结构体,存放着启动命令command。根据不一样的命令,系统又 能够进入三种不一样的启动模式。结构体的定义以下:设计
struct bootloader_message{ char command[32]; //存放不一样的启动命令 char status[32]; //update-radio或update-hboot完成存放执行结果 char recovery[1024]; //存放/cache/recovery/command中的命令 };
(1)command=="boot-recovery"时,系统会进入Recovery模式。Recovery服务会具体根据/cache/recovery/command中的命令执行相应的操做(例如,升级update.zip或擦除cache,data等)。
(2)command=="update-radia"或"update-hboot"时,系统会进入更新firmware(更新bootloader),具体由bootloader完成。
(3)command为空时,即没有任何命令,系统会进入正常的启动,最后进入主系统(main system)。这种是最一般的启动流程。
(1)离线升级之USB升级:
优势:实现难度小,依赖性小,适合单个升级。
缺点:大批量升级效率较低,须要额外U盘设备。
有通用bootloader如u-boot来实现USB升级,一般咱们能够在u-boot的引导kernel的以前作相关升级处理;
(2)在线升级之IP升级:
优势:简单。
缺点:依赖于网络,须要服务端支持。
咱们在开发中使用TFTP来作烧写处理,被认为是最简单的方式,一样只要用户终端有网络,并被获知须要升级,和已知TFTP服务端及文件名,便能很容易的实现升级,在TFTP升级中,咱们不须要额外修改tftp的代码,只须要为自动参数传递升级的命令便可。
在uboot中须要先设置serverip参数,而后使用
tftp内存地址服务端的文件名如:tftp80000000 vmlinux.ub
在CFE中能够直接使用
flash–noheader服务器IP:文件路径分区
如:flsah–noheader 192.168.1.100:/vmlinuz flash0.kernel
考虑到网络的连通的不肯定性以及丢包的问题,通常咱们在内网中使用或者能够在工厂批量升级使用。
(3)在线升级之OTA升级:
优势:用户参与少,直接由前端控制,适合大批量升级
缺点:依赖前端码流,依赖机顶盒tuner。
OTA升级(OnTheAir),又称空中升级,是指用户终端直接经过信号通道接收下载方式来升级软件。是厂家最重要的一种升级方式,用于大批量用户升级。在手机,以及其余一些移动终端也有用到,它们主要是经过3G或者Gprs等无线升级方式,也能够整体归纳到网络升级中。只是具体区别于一般所说的电信网络以及这里的无线网络和咱们将讨论的数字电视网络。机顶盒的OTA升级数据能够根据不一样厂商本身的方式封装,打包成TS流,而后播放,机顶盒终端接收到流,经过解析NIT等相关表来获取升级信息。
不一样平台的OTA实现也不尽相同,但思路都是须要针对具体平台对锁频,接收和解析码流,最后烧写到flash中。
DVB升级不管是在线升级仍是离线升级,最终都是要进入recovery安装update.zip升级包。
一、基于linux的数字电视机顶盒几种升级方式的设计与实现;
二、 Android系统Recovery工做原理之使用update.zip升级过程分析(一)---update.zip包的制做这个要从一一直看到八估计收获不小。