Android 动态分区详解(四) OTA 中对动态分区的处理

Android 动态分区详解(四) OTA 中对动态分区的处理_第1张图片

文章目录

    • 0. 导读
    • 1. payload 中的动态分区数据
    • 2. 制作动态分区升级包
      • 2.1 制作升级包
      • 2.2 `dynamic_partition_info_file` 参数
      • 2.3 `dynamic_partitions_info.txt` 文件
      • 2.4 总结
    • 3. 打包动态分区数据
      • 3.1 解析动态分区数据
      • 3.2 输出动态分区数据
      • 3.3 动态分区数据打包流程
    • 4. 解包并更新动态分区数据
      • 4.1 设备处理接收到的 Manifest 数据
      • 4.2 更新设备的动态分区数据
        • 1. DeltaPerformer::InitPartitionMetadata
        • 2. BootControlAndroid::InitPartitionMetadata
        • 3. BootControlAndroid::UnmapTargetPartitions
        • 4. BootControlAndroid::UpdatePartitionMetadata
        • 5. InstallPlan::LoadPartitionsFromSlots
        • 6. BootControlAndroid::GetPartitionDevice
        • 7. BootControlAndroid::GetDynamicPartitionDevice
      • 4.3 动态分区更新和映射流程
    • 5. 总结
      • 5.1 动态分区数据的打包
      • 5.2 动态分区数据的解包
    • 6. 后续计划
    • 7. 其它

0. 导读

动态分区机制的底层由 linux 的 device mapper 驱动实现。因此,Android 的动态分区,主要强调的是 linux 驱动之上,Android 对动态分区的管理。第一篇《Android 动态分区详解(一) 5 张图让你搞懂动态分区原理》中提到过我对 Android 动态分区本质的看法: 动态分区管理的本质就是对分区数据的增删改查操作,操作的数据对象就是动态分区描述数据 metadata

而对于 OTA 升级,其本质就是围绕升级数据 payload 文件的一些列操作,包括:

  • 增,即 payload 文件的生成

  • 删,无需此操作

  • 改,各种对 payload 文件的修改,包括生成过程中的调整操作,对 payload 的修改签名等

  • 查,在接收到 payload

你可能感兴趣的:(Android,动态分区,Android,虚拟,A/B,分区,android,动态分区)