Android Update Engine 分析(十九)Extent 到底是个什么鬼?

本文深入分析了 Android OTA 更新中 extent 的概念和作用,介绍了 extent 在文件系统、Android OTA 升级过程中的应用。文章探讨了 update_metadata.proto 中的 extent 结构,以及在 payload_consumer 和 payload_generator 中的实现。此外,还讲解了全量包和差分包生成过程中如何处理 extent,包括全 0 的 extent、新旧分区数据一致的 extent 和不一致的 extent 的处理方式。最后,文章提供了一些关于 extent 和 bitmap 的扩展资料,以及与之相关的思考题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

本文为洛奇看世界(guyongqiangx)原创,转载请注明出处。

原文链接:https://blog.youkuaiyun.com/guyongqiangx/article/details/132389438

0. 导读

说来惭愧,几年前,我把 Android 的 system/update_engine 目录下早期的代码翻了一遍,很多地方提到了并且使用了 extent 这个概念来处理数据,但我一直没有搞懂 extent 到底是个什么东西,只是知道一个 extent 由两个数据表示,一个表示起始位置,另一个表示长度。在制作升级包时,差分操作基于 extent 进行;在设备端升级时基于 extent 进行还原。仅致于此,并没有继续深究~

最近才了解到 extent 是现在常见的文件系统组织方式,突然一惊,真是 out 了,这打破了我一直以为文件系统都是基于 blockmap 进行处理的陈旧观念。

本文对 Android OTA 中对 Extent 的处理进行深入全面的分析。

核心代码《Android Update Engine 分析》系列,文

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛奇看世界

一分也是爱~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值