前言:
从Android 5.0(Lollipop)开始,为了降低update.zip文件的大小和写入的数据量,所有的ROM包,都仿照增量包的方式进行打包了。
ROM包中的内容如下:
boot.img
file_contexts
META-INF
system.new.dat
system.patch.dat
system.transfer.list
显然system.img不再提供,而是提供了三个文件,如何利用这三个文件的脚本在:
/META-INF/com/google/android/updater-script 文件中:
block_image_update(“/dev/block/platform/msm_sdcc.1/by-name/system”, package_extract_file(“system.transfer.list”), “system.new.dat”, “system.patch.dat”);
otapackage的zip包中的system.new.dat文件实际上是由system.transfer.list描述的一个稀疏数组。这里提供一个可以用于将该稀疏数组unpack成为真正ext4的image文件的程序sdat2img。
使用方法:
sdat2img <trans_list> <system_new_file> <system_img>
命令解释:
前两个参数分别是trans list文件和输入的system.new.dat文件,最后一个是输出的system.img文件名,可以直接用于ext4的mount。