Android OTA需要的Cache大小

Android OTA更新在Recovery模式下能断电安全恢复。在差分升级过程中,需要一个断电不丢失的存储区,如Cache。若目标是分区,则目标文件存于Cache;若是文件,要求目标文件系统有足够的空间。估算CACHE_SIZE需大于最大分区大小(MAX_ROM_SIZE)及系统中最大文件大小加256K(MAX_FILE_SIZE),且当系统剩余空间小于最大文件大小的1.5倍时,CACHE_SIZE需大于最大文件大小。
摘要由CSDN通过智能技术生成

Android OTA是断电安全的,也就是说,在Recovery模式下升级的任意一步,如果突然断电,后续还是能恢复。 

当执行差分升级包时,为了能断电恢复,需要先计算出目标文件,并保存到一个临时位置,然后再用目标文件覆盖源文件。 因此,在差分升级过程中,需要一个持久性的(断电不丢失的)存储区。


其逻辑在 “bootable/recovery/applypatch/”中。 其中分了两块处理:


1.) 如果目标是一个分区(如boot), 会把 target文件写在cache中

2.) 如果目档是文件(如更新system时), 会要求target所在的文件系统有 enough_space, 

   enough_space =
                   (free_space > (256 << 10)) &&          // 256k (two-block) minimum
                    (free_space > (target_size * 3 / 2));  // 50% margin of error

如果target所在的文件系统没有 enough_space,会试图备份source到 cache, 然后删除source。然后再检查target所在的文件系统是否有足够空间(不考虑文件碎片的话,一般来讲都会有的,要不然target image也编译不成功了。)



好吧,上面说的很乱ÿ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值