RedBend关于DM的培训总结报告
本次会议历时2天, 总计4个小时左右, 比较全面地介绍了FOTA, FUMO等协议以及RedBend公司关于DM(移动售后增强服务)的实现。
第一天下午先对Questionnire问题单的重要性进行了讲解。RedBend公司需要我们提供具体机器的相关参数以便提供精确的实现库。因为库的具 体实现是需要根据机型来确定的, RedBend北京分公司只有在获取到这个Questionnaire反馈单之后提供给总部才能获得库。 我们在初期对这个Questionnaire的反馈不够及时, 造成了进度上的一些延后, 这是以后在合作的时候需要改进的地方。
然后重点说明了FOTA协议以及它和DM的关联。简单来说, FOTA是用来进行手机固件升级的一个组件。它将差分包从服务器上下载下来, 然后生成新的Image, 替换掉手机中老的体统, 达到升级的目的。其中如何将差分包做到尽可能的小, 是一个难题。RedBend公司有他们的专利技术。RedBend提供了UPI, 它是安装升级的底层库, 但是针对具体平台还需要我们去实现一个UA(Update Agent),UA实现与设备的直接操作,我们需要把UPI集成到UA里面去。
在进行固件升级的时候, 有几个方面是需要注意的:
1. 使更新能够访问到UPI, 保证重启之后在系统层就能更新。
2. 不能更新调用更新模块的区域。 因为如果已经刚好擦除了调用更新模块的区域, 然后断电了, 再重启之后那段代码已经被擦除,就无法再继续更新。
3. 更新时进入Recovery模式, 无法连接到网络, 完成后需要重启, 正常进入手机系统后才能汇报更新结果。
UA在检测到固件更新的时候, 调用vCurrentMobileInstaller来具体操作。流程如下:
1. 在FLASH中找到差分包文件
2. 把差分包数据拷贝到RAM区域, 以便读写。
3. 读取RAM区域的差分包, 并且生成新的镜像块。
4. 把镜像块从RAM区拷贝到FLASH区域
5. 把FLASH中的镜像块覆盖设备固件中。
第三步和第四步重复执行, 直到整个固件差分包解析完。 其中我们需要注意的是为什么不直接把在RAM区生成的镜像块直接写到设备固件中去, 而要先缓冲在FLASH区域呢? 这也是容错考虑。 万一更新过程中收到其他的影响(手机没电了), 导致更新中断, 那么下次进来的时候就可以读取FLASH中之前更新的进度, 接着更新了。
我们要实现的时候, 需要去完成UA中的RB_ImageUpdate() , getUPIVersion(), getBlockSize()等方法。 这是主要的工作, 需要对底层操作有经验的人来完成。 这部分可以参考北研所之前的FOTA代码。 会对我们的进度有些帮助。
FOTA和DM的关系其实是依赖包含关系。 FOTA是负责附件更新的一个比较独立的组件; 而DM更偏向于应用层, 它有跟服务器交互的具体协议, 其中更新固件的部分调用FOTA来实现。
第二天上午介绍了DM中的FUMO, SCOMO, LAWMO协议和固件更新处理的过程。
FUMO是固件下载更新中需要遵循的协议, 和服务器交互的数据是个树形的结构, 包含了包名, Download/Update、DownloadAndUpdate命令, 对应的PKGUrl.
SCOMO是具体应用安装升级协议。 它包括Inventory和Download两部分。Inventory部分列出手机上安装的应用程序列表, 在每次DM需要进行升级软件的时候去收集手机上的应用程序列表。以便上报到服务器进行比对。Download用于标示那个应用需要去下载安装。
LAWMO是手机锁屏的协议。包括锁定(PartiallyLock), 解锁(UnLock) 和 恢复出厂设置(FactoryReset)。 比如我们在手机丢失的情况下, 可以致电中国移动申请锁定手机, 删除手机上的信息。 服务器发送这些命令到手机, 就可以完成这些操作。
DM中固件更新过程分为四个阶段
1. 发现阶段
2. 下载阶段
3. 升级阶段
4. 更新通知
每个过程都是与服务器使用命令进行通讯, GET, ALERT, REPLACE. 一方会对另一方的命令进行执行结果的回复。需要注意的是在下载中PKGUrl并不是需要下载的文件, 而是一个Download Descriptor文件, 其中描述了文件大小, 下载需要多久等信息, 给用户一个提示。用户确认后会根据DD文件里的实际文件地址去下载。
分享到:
相关推荐
倍加福读码器具有高解析度、快速识别和强抗干扰能力,能够稳定读取不同类型的二维码,包括由DM二维码生成软件创建的二维码。这使得DM软件生成的二维码能在严苛的工业环境中顺畅运行,为AGV提供可靠的导航信号。 四...
#### 二、DM3730 CUS100封装解析 **CUS100封装**是针对DM3730芯片所采用的一种特定封装形式,该封装形式的设计旨在满足DM3730芯片对性能、散热以及小型化的需求。下面将详细介绍DM3730 CUS100封装的相关知识点: #...
### 合众达DM6437开发板原理图解析 #### 一、概述 本文档将详细介绍合众达DM6437开发板的原理图及其相关知识点,旨在为电子工程师提供一个全面深入的理解框架。该开发板采用的是TI(德州仪器)的TMS320DM6437...
通过对达梦数据库迁移流程的详细解析,我们可以了解到整个迁移过程中涉及的关键步骤和技术要点。这不仅有助于提高数据库迁移的成功率,还能有效减少因迁移引起的业务中断风险。希望本文能够为正在或即将进行数据库...
【Leader统帅BCD-346WLLFD7DM1冰箱说明书】涵盖了这款智能家电的诸多关键功能和安全要点。以下是对这些知识点的详细解释: 1. **智能操控与智慧场景定制**: Leader统帅冰箱配备了智能控制系统,允许用户通过定制...
以下是对DM广告策划与制作的详细解析: 1. **基本概念与要点**: - DM广告的核心在于清晰的目标设定,确保每期广告都有明确的宣传对象和销售预期。 - 在成本管控方面,需要平衡广告费用与预期的销售热卖程度,...
### TMS320DM3730软件开发者指南知识点概览 #### 一、欢迎来到TMS320DM3730...通过以上章节的详细介绍,读者可以全面地了解TMS320DM3730软件开发者指南的内容,从而更好地掌握TMS320DM3730的软件开发方法和技术要点。
### TI DSP DM6446 原理图与DSP+ARM双核系统解析 #### 概述 TI(Texas Instruments)DSP DM6446是一款高性能数字信号处理器(DSP),集成了ARM内核,形成了一个强大的双核处理平台。这款处理器主要应用于多媒体设备...
本文将详细解析"企业管理合同要点.doc"中的经销合同和租赁合同两个关键部分。 首先,我们来看经销合同。经销合同涉及到结算方式和帐期,这是企业间交易的核心环节。结算方式通常包括在收到货物后的固定天数内付款,...
本文介绍了LwIP在STM32F107+DM9161AEP平台上的移植过程,重点讲解了关键文件的作用及配置要点。通过这些步骤,用户可以有效地将LwIP移植到目标平台上,实现稳定的以太网通信功能。希望本文能够帮助开发者更好地理解...
9. 换算关系:在文档内容中出现了不同单位的换算关系,比如100L(升)= 100dm^3(立方分米)= 0.1m^3(立方米),1.0×10^3kg/m^3(千克每立方米)表示水的密度。 10. 题目解析:在文件中,包含了具体的题目和答案...
第2章深入解析TMS320C6000 DSP芯片 TMS320C6000系列是德州仪器(TI)推出的一种高性能数字信号处理器(DSP),广泛应用于各种信号处理任务,包括图像处理、通信、语音处理、自动化控制等多个领域。本章将对DSP芯片...
为了成功地使用FINS UDP命令与PLC进行通信,读者需要对这些要点有深入的理解,并严格按照要求进行配置和操作。 以上内容涵盖了从网络通信协议的基础知识,到具体的欧姆龙PLC的FINS UDP命令格式细节,再到操作步骤和...