getprop("ro.product.device") == "p212" || abort("This package is for \"p212\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ota_zip_check();
set_bootloader_env("upgrade_step", "3");
show_progress(0.750000, 0);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
ui_print("Verifying the updated system image...");
if range_sha1("/dev/block/system", "38,0,32767,32768,32770,32833,32835,33347,65535,65536,65538,66050,98303,98304,98306,98369,98371,98883,131071,131072,131074,131586,163802,163840,163842,163905,163907,164419,196607,196608,196610,197122,202904,229376,229378,229441,229443,229955,262143") == "3ade18fc80d850a3134e4e2bed8bded4013ab83a" then
if range_sha1("/dev/block/system", "40,32767,32768,32770,32833,32835,33347,65535,65536,65538,66050,98303,98304,98306,98369,98371,98883,131071,131072,131074,131586,163802,163840,163842,163905,163907,164419,196607,196608,196610,197122,202904,203416,228864,229376,229378,229441,229443,229955,262143,262144") == "6ce8791918dfb98a0fac32b408ad3ee6ea9784b2" then
ui_print("Verified the updated system image.");
else
  abort("system partition has unexpected non-zero contents after OTA update");
endif;
else
  abort("system partition has unexpected contents after OTA update");
endif;
write_raw_image(package_extract_file("logo.img"), "logo");
write_dtb_image(package_extract_file("dtb.img"));
show_progress(0.050000, 5);
write_raw_image(package_extract_file("boot.img"), "boot");
show_progress(0.050000, 5);
write_raw_image(package_extract_file("recovery.img"), "recovery");
show_progress(0.200000, 10);
write_raw_image(package_extract_file("bootloader.img"), "bootloader");
set_bootloader_env("upgrade_step", "1");
set_bootloader_env("force_auto_update", "false");
