从Android 5.0开始支持dm-verity,这样就必须支持按照block更新分区。使用make otapackage时指定--block-based参数得到的zip文件,查看内容:
boot.img
file_contexts
META-INF
system.new.dat
system.patch.dat
system.transfer.list
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");