hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

recovery形式差分(增量)升级小结

2019-11-18杂谈搜奇网27°c
A+ A-

近来在做recovery形式下的升级,简朴的总结一下。

先说说recovery形式,他是个升级小体系,有零丁的kernel,经由历程特定的体系敕令就能够进入到此体系中,挑选进入平常体系的kernel照样recovery体系的kernel,

决议在于bootloader中,recovery中的boot与平常体系的boot烧写的是雷同的kernel,差别点在于,recovery形式有一个零丁的rootfs,这个是一个非常小的体系,

体系的许多功用也是不启动的, 主要目标就是留给升级流出充足的内存,主体系与recovery体系通讯的桥梁就是/cache分区,此分区在平常体系启动与recovery

形式都是要被挂载mount。在主体系写敕令到cache中,在recovery中读取,升级后,升级效果及日记也是在cache中。

recovery体系中大抵流程,有些以为不主要就省略了

1、实行find_recovery_partition.sh剧本它的事情就是生成/res/recovery_volume_detected文件,很主要的,挂载分区,attach范例为ubi的分区,如system modem。

2、rc启动剧本主假如启动了挪用recovery历程的剧本,此剧本中运转recovery历程,升级的一切功用就在recovery历程中完成,recovery历程中触及到的load_volume_table()

    函数,读取的文件就是由find_recovery_partition.sh剧本生成的。

3、读取升级敕令,升级敕令位于/cache/recovery/command中,花样能够看函数解释。在此历程当中会写misc分区一个msg,主假如防备升级历程当中掉电,在lk中会

     读取misc中的msg,假如升级中非常掉电,体系加载起来以后就继承进入recovery形式历程升级。

4、接下来就是从升级包重猎取可实行递次,读取到/tmp中,升级包署名校验,本项目没触及到不多说,然后就是建立管道,建立子历程,子历程中实行updater进

      程。将进度,效果等关照到主历程,直到升级完毕。

5、updater历程的实行历程,有太多的文件讲了及就不讲了。

6、升级完毕后,finish_recovery做扫尾事情,拷贝日记,写升级效果,然后体系reboot。

7、重启后,主体系平常启动后,就能够从cache中猎取到当前升级的效果,日记,升级包等。

碰到的一些问题:

1、对nand来讲,存在flash层的操纵与mtd层的操纵,lk中是对flash的操纵能够根据页,页大小有2048/4096,mtd层对block操纵的,平常都是很多个页构成,如64*2048,

作为一个block。有个分区比较特别,不能多写flash,由于就是recovery中是mtd层的操纵,想要准确,只能在lk中去做,比较特别。

2、运用的打包东西,高人写了剧本,能够将modem分区根据ubi的体式格局打包,非常凶猛啊,对比了下文件睁开体式格局,升级包比较小,升级还快,实在信服啊。

3、全部recovery形式升级功用实在高通已完成了许多症结,主要的功用,我们也是简朴的运用了下。

10-24 新增流程图

简朴申明

1、流程图中省略也许多细节,实在很多细节都是能够拿出来大写特写,比方差分文件是怎样盘算生成的(触及imgdiff 与bsddiff),关于有文件体系的文件权限的处置惩罚

    (full package时更体贴一点)  updater-script剧本用于实行的剧本解析器的运转,等等

2、标注赤色的部份是我以为比较症结和主要的部份,包含为申明的updater-script每条敕令对应的回调函数。

3、能够差别的运用场景不一样,当前没有将ui部份的逻辑,另有升级前的前提搜检处置惩罚,升级非常等等。

4、recovery历程实行完毕以后会实行扫尾事情,保留日记,写升级效果等等,然后就是syse_reboot,图中带recovery 的块实在就是在recovery历程中实行的, 根据函数

     挪用递次写的。

                                 

 

                                 长按二维码关注【嵌入式C部落】,猎取更多编程资料及英华文章

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
recovery形式差分(增量)升级小结

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282016.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>