system.transfer.list system.new.dat
很明显,通过名字我们就知道这两个文件的作用,system.new.dat为数据部分,system.transfer.list为转换的描述列表,我们可以通过这两个文件完成升级。
我们打开一个升级包的升级脚本META-INF\com\google\android\updater-script
block_image_update("/dev/block/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
调用的是block_image_updater接口,传入system.transfer.list及system.new.dat文件来实现升级。
block_image_updater的代码实现在
bootable/recovery/updater/blockimg.cpp中:
void RegisterBlockImageFunctions() {
RegisterFunction("block_image_verify", BlockImageVerifyFn);
RegisterFunction("block_image_update", BlockImageUpdateFn);
RegisterFunction("block_image_recover", BlockImageRecoverFn);

system.transfer.list与system.new.dat是Android系统升级过程中的关键文件,用于描述升级操作。system.transfer.list包含new、zero和erase等区域的block范围,通过block_image_updater进行升级。升级包中system.new.dat的大小与total block数量匹配,所有new、zero、erase的block描述对应整个system分区大小。在新版本中,加入vendor.new.dat.br并采用压缩,减小了升级包的大小。
最低0.47元/天 解锁文章
1170

被折叠的 条评论
为什么被折叠?



