getprop("ro.product.device") == "minnow" || abort("This package is for \"minnow\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Source: motorola/metallica/minnow:5.1.1/LCA44B/2166028:user/release-keys");
ui_print("Target: motorola/metallica/minnow:6.0.1/MEC23I/2580363:user/release-keys");
ui_print("Verifying current system...");
getprop("ro.build.fingerprint") == "motorola/metallica/minnow:5.1.1/LCA44B/2166028:user/release-keys" ||
    getprop("ro.build.fingerprint") == "motorola/metallica/minnow:6.0.1/MEC23I/2580363:user/release-keys" ||
    abort("Package expects build fingerprint of motorola/metallica/minnow:5.1.1/LCA44B/2166028:user/release-keys or motorola/metallica/minnow:6.0.1/MEC23I/2580363:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
apply_patch_check("EMMC:/dev/block/mmcblk0p9:4716544:a202a16ccf9d0a237721bf7543f6a25477837c6b:4886528:a5cb6a4b98cc16e802fba28a5525841582bd378b") || abort("\"EMMC:/dev/block/mmcblk0p9:4716544:a202a16ccf9d0a237721bf7543f6a25477837c6b:4886528:a5cb6a4b98cc16e802fba28a5525841582bd378b\" has unexpected contents.");
if (range_sha1("/dev/block/mmcblk0p14", "2,1,43759") == "bb301357c8f3324a05f6d223a226ef296721b451" || block_image_verify("/dev/block/mmcblk0p14", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat")) then
ui_print("Verified system image...");
else
abort("system partition has unexpected contents");
endif;

# ---- start making changes here ----

ui_print("Patching system image after verification.");
show_progress(0.900000, 0);
block_image_update("/dev/block/mmcblk0p14", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat");
ui_print("Verifying the updated system image...");
if range_sha1("/dev/block/mmcblk0p14", "2,0,59499") == "ff37c07dccfe8f7889dadae5f1bf7bbe2cf74ba1" then
ui_print("Verified the updated system image.");
else
  abort("system partition has unexpected contents after OTA update");
endif;
ui_print("Patching boot image...");
show_progress(0.100000, 10);
apply_patch("EMMC:/dev/block/mmcblk0p9:4716544:a202a16ccf9d0a237721bf7543f6a25477837c6b:4886528:a5cb6a4b98cc16e802fba28a5525841582bd378b",
            "-", a5cb6a4b98cc16e802fba28a5525841582bd378b, 4886528,
            a202a16ccf9d0a237721bf7543f6a25477837c6b, package_extract_file("patch/boot.img.p"));
ui_print("Writing bootloader...");
package_extract_file("bootloader-flag.txt", "/dev/block/mmcblk0p11");
package_extract_file("bootloader.mbm.img", "/dev/block/mmcblk0p2");
package_extract_file("bootloader.cdt.bin.img", "/dev/block/mmcblk0p5");
package_extract_file("bootloader.logo.bin.img", "/dev/block/mmcblk0p8");
package_extract_file("bootloader-flag-clear.txt", "/dev/block/mmcblk0p11");
set_progress(1.000000);
