二、Android BCB的作用

Recovery系统升级(3)---软件流程 本章节结合源码剖析Recovery系统升级流程,从APP下载升级包后触发升级直到设备完成更新启动到Launcher的整个过程。 阅读详情
AI摘要

本文深入解析OTA升级流程,涵盖问题来源、固件内容、开机流程、BCB作用及Recovery模式交互,阐述了主系统与Recovery模式下关键组件的工作原理。

这篇很多部分来源于其他博客,我个人进行了总结,可以串联起来整个ota流程

1、问题来源
2、固件内容与开机流程
3、开机BCB作用
4、recovery升级交互流程

1、问题来源
查看解密流程和recovery.cpp升级流程,多次提到BCB相关
1、从system到recovery需要用到BCB
文件RecoverySystemService.java //设置BCB
public boolean setupBcb(String command) {
return setupOrClearBcb(true, command);
private boolean setupOrClearBcb(boolean isSetup, String command) {
Slog.i(TAG, "uncrypt " + (isSetup ? "setup" : "clear") +" bcb successfully finished.");
对应Log:RecoverySystemService: uncrypt setup bcb successfully finished.\
2、 recovery升级也需要操作BCB
//get_args方法获取misc分区的command文件
std::vector<std::string> args = get_args(argc, argv);
std::vector<char*> args_to_parse(args.size());
std::transform(args.cbegin(), args.cend(), args_to_parse.begin(),
[](const std::string& arg) { return const_cast<char*>(arg.c_str()); });
Last_log:
I:Boot command: boot-recovery
I:Got 3 arguments from boot message
3、遇到过一次升级问题,因为系统会发送多次开机广播而导致升级失败,第二次开机广播清除了command信息
所以查询了一些资料作为整理该部分涉及到bootloder Misc system recovery boot分区
在升级流程上很少有客户会改动,作为了解就可以

2、固件内容
Boot:包含Linux内核和一个最小的root文件系统(装载到ramdisk中),
用于挂载系统和其他的分区,并开始Runtime。正如名字所代表的意思(注:boot的意思是启动),
这个分区使Android设备可以启动。如果没有这个分区,Android设备通常无法启动到Android系统。
System:这个分区几乎包含了除kerner和ramdisk之外的整个android操作系统,
包括了用户界面、和所有预装的系统应用程序和库文件(AOSP中可以获取到源代码)。
在运行的过程中,这个分区是read-only的。当然,一些Android设备,也允许在remount的情况下,
对system分区进行读写。 擦除这个分区,相当于删除整个安卓系统,会导致不能进入Main System,
但不会影响到Recovery。因此,可以通过进入Recovery程序或者bootloader程序中,升级安装一个新ROM。
Userdata:用户数据区,用

Android recovery (1) Main system:用boot.img启动的Linux系统,Android的正常工作模式。 (2)Recovery:用recovery.img启动的Linux系统,主要是运行Recovery程序。 (3)Bootloader:除了加载、启动系统,还会通过读取flash的MISC分区获得来自Main system和Recovery的消息,并以此决定做何种操作。      在Recovery的工作流程中,上述三个实体的通信必不可少。通信的接口有以下两 阅读详情

相关推荐

Android10.0 OTA升级流程分析

原文地址:https://skytoby.github.io/2019/Android%20OTA%E5%8D%87%E7%BA%A7%E6%B5%81%E7%A8%8B%E5%88%86%E6%9E%90/ 一、概述 目前Android系统终端的升级主要是通过无线进行的(FOTA,Firmware Over-The-Air),主要流程是通过无线方式将升级包下载到终端,而后调用系统的升级接口进行升...

skytoby 8463

深入解析Android Recovery升级流程:从开机到OTA完成

本文详细解析了Android系统升级流程,重点剖析了Recovery模式的工作原理。文章首先介绍了Android的三种启动模式(Fastboot、Recovery和Main System)及其功能差异,随后深入探讨了OTA升级的具体实现机制,包括应用层检测升级、写入升级命令到BCB(Bootloader Control Block)、重启进入Recovery模式等关键步骤。

学无止境 272

BMW Standard Tools 宝马FSC工具套装下载

这是一款非常专业的一套宝马编码工具,懂行的人自然知道他的用处,不懂行的人,我解释再多也不会明白的,需要的拿去吧。软件名:BMW Standard Tools包含工具:BMW Coding Tool v2.50、change Language、CIC Mafia、Dr.Gini B021、EasyConnect、EDIABAS Konfigurator v1.1、EDIABAS Konfigurator v2.0.0、FSC-Tools_2.18、FSTool_v2_CarServer、INPA、ITool

Zj_arrow的博客 6998

Ultralytics YOLO模块自定义与替换实战技巧

本文详细介绍了在Ultralytics YOLO框架中进行模块自定义与替换的实战技巧。通过从零开始添加全新模块(如注意力模块)到进阶替换现有模块(如增强版卷积),并涵盖模块注册、YAML配置、模型融合及ONNX导出等关键步骤,帮助开发者深度定制YOLO模型,以应对复杂检测任务与部署需求。

numpy6sculptor的博客 930

JHU ICBM DTI Atlas纤维束模板介绍

JHU ICBM DTI atlas 纤维束的定位与功能介绍

machinelearning_er的博客 6426

图像超分辨率在医学影像中的应用:如何用深度学习提升CT/MRI图像质量

本文探讨了深度学习驱动的图像超分辨率技术在医学影像(如CT/MRI)质量提升中的应用。文章分析了医学图像超分辨率在提升诊断信息含量、平衡保真度与临床相关性方面的独特挑战,并详细介绍了如何针对3D体数据特点定制模型架构、设计病理感知损失函数,以及解决高质量配对数据稀缺的策略。通过实战案例,阐述了从数据模拟、模型训练到临床评估的完整流程,旨在为医学影像的清晰化与诊断精准化提供有效解决方案。

weixin_29063681的博客 523

Ansys CFX Pre 中 RGP 表的高级配置与优化策略

本文深入探讨了Ansys CFX Pre中RGP表的高级配置与优化策略,旨在帮助用户将仿真从“能用”提升至“精准好用”。文章重点解析了如何根据具体仿真场景,科学设定温度压力范围、选择流体类型,并针对相变等复杂工况实施网格加密与分离建表等关键优化技术,以显著提升计算精度与稳定性。

weixin_29216957的博客 1180

1、工作流介绍

工作流起源于办公自动化,是对软件中业务流程的抽象。通过工作流将各个任务有序组织起来形成一个完整的业务闭环。比如:请假审批流程,网上购物流程,银行贷款流程;!

leyoliu的博客 5109

29、集成电路测试技术解析

本文深入解析了集成电路测试技术,涵盖定制电路测试资源与策略、混合模拟/数字电路测试方法、数字测试模式生成难点与解决方案,以及可控性和可观测性的核心概念。同时详细讨论了固定故障、桥接故障和开路故障等主要故障模型及其检测方法。在测试技术的综合应用与优化方面,提出了合理配置测试资源、优化测试模式和设计测试流程的策略。最后展望了测试技术的发展趋势,包括集成化测试、自动化测试和智能化测试。通过全面掌握这些测试技术,可以有效提高集成电路的质量和可靠性,推动集成电路产业的发展。

work3的博客 205

第32篇:Vibe Coding时代:LangGraph + Redis 任务状态持久化实战,解决服务重启后任务状态丢失问题

LangGraph + Redis任务状态持久化方案 本文针对Agent任务状态丢失问题,提出基于Redis的持久化解决方案。当服务重启时,传统内存存储方式会导致任务状态丢失,影响用户体验和运维排查。 核心方案 使用Redis Hash存储任务状态,key格式为agent:task:{task_id} 设计完整状态字段包括task_id、status、progress等关键信息 实现task_store模块提供CRUD操作接口 在Agent执行各节点更新Redis中的任务状态 技术实现 通过Celery执行

sundong_81的博客 42

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 减小差分包文档分析
下一篇: MTK 9.0打开AB升级宏控
李标标
博客等级 码龄11年 124粉丝 43原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值