getprop("ro.product.device") == "ailsa_ii" || abort("This package is for \"ailsa_ii\" devices; this is a \"" + getprop("ro.product.device") + "\".");
assert(getprop("ro.product.name") == "P996A03");
ui_print("Target: ZTE/P996A03/ailsa_ii:6.0.1/MMB29M/20160708.061559:user/release-keys");
show_progress(0.950000, 180);
ui_print("Patching system image unconditionally...");
block_image_update("/dev/block/bootdevice/by-name/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/bootdevice/by-name/system", "176,0,32770,33153,33155,33663,65535,65536,65538,66046,98303,98304,98306,98689,98691,99199,131071,131072,131074,131582,163839,163840,163842,164225,164227,164735,196607,196608,196610,197118,229375,229376,229378,229761,229763,230271,262143,262144,262146,262654,294911,294912,294914,295297,295299,295807,327679,327680,327682,328190,360447,360448,360450,360958,393215,393216,393218,393726,425983,425984,425986,426494,458751,458752,458754,459262,491519,491520,491522,492030,524287,524288,524290,524798,557055,557056,557058,557566,589823,589824,589826,590334,622591,622592,622594,623102,655359,655360,655362,655870,688127,688128,688130,688638,720895,720896,720898,721406,753663,753664,753666,754174,786431,786432,786434,786942,819199,819200,819202,819585,819587,820095,851967,851968,851970,852478,884735,884736,884738,885121,885123,885631,917503,917504,917506,918014,950271,950272,950274,950782,983039,983040,983042,983550,1015807,1015808,1015810,1016318,1048575,1048576,1048578,1049086,1069783,1081344,1081346,1114112,1114114,1146880,1146882,1179648,1179650,1212416,1212418,1245184,1245186,1277952,1277954,1310720,1310722,1343488,1343490,1376256,1376258,1409024,1409026,1441792,1441794,1474560,1474562,1507328,1507330,1540096,1540098,1540606,1560470,1560471,1572768") == "02a6535757c8ece463ad215ae5eabc2ab23fcdaf" then
if range_sha1("/dev/block/bootdevice/by-name/system", "204,32770,33153,33155,33663,65535,65536,65538,66046,98303,98304,98306,98689,98691,99199,131071,131072,131074,131582,163839,163840,163842,164225,164227,164735,196607,196608,196610,197118,229375,229376,229378,229761,229763,230271,262143,262144,262146,262654,294911,294912,294914,295297,295299,295807,327679,327680,327682,328190,360447,360448,360450,360958,393215,393216,393218,393726,425983,425984,425986,426494,458751,458752,458754,459262,491519,491520,491522,492030,524287,524288,524290,524798,557055,557056,557058,557566,589823,589824,589826,590334,622591,622592,622594,623102,655359,655360,655362,655870,688127,688128,688130,688638,720895,720896,720898,721406,753663,753664,753666,754174,786431,786432,786434,786942,819199,819200,819202,819585,819587,820095,851967,851968,851970,852478,884735,884736,884738,885121,885123,885631,917503,917504,917506,918014,950271,950272,950274,950782,983039,983040,983042,983550,1015807,1015808,1015810,1016318,1048575,1048576,1048578,1049086,1069783,1070295,1080832,1081344,1081346,1081858,1113600,1114112,1114114,1114626,1146368,1146880,1146882,1147394,1179136,1179648,1179650,1180162,1211904,1212416,1212418,1212930,1244672,1245184,1245186,1245698,1277440,1277952,1277954,1278466,1310208,1310720,1310722,1311234,1342976,1343488,1343490,1344002,1375744,1376256,1376258,1376770,1408512,1409024,1409026,1409538,1441280,1441792,1441794,1442306,1474048,1474560,1474562,1475074,1506816,1507328,1507330,1507842,1539584,1540096,1540098,1540606,1560470,1560471") == "17ac644bdff59ffa07fa9b2d452c9107bdf6842f" 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;
show_progress(0.050000, 5);
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
package_extract_file("xbl.elf", "/dev/block/bootdevice/by-name/xbl");
package_extract_file("cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlib");
package_extract_file("hyp.mbn", "/dev/block/bootdevice/by-name/hyp");
package_extract_file("rpm.mbn", "/dev/block/bootdevice/by-name/rpm");
package_extract_file("sec.dat", "/dev/block/bootdevice/by-name/sec");
package_extract_file("splash.img", "/dev/block/bootdevice/by-name/splash");
package_extract_file("devcfg.mbn", "/dev/block/bootdevice/by-name/devcfg");
package_extract_file("recovery.img", "/dev/block/bootdevice/by-name/recovery");
package_extract_file("keymaster.mbn", "/dev/block/bootdevice/by-name/keymaster");
package_extract_file("echarge.img", "/dev/block/bootdevice/by-name/echarge");
package_extract_file("adspso.bin", "/dev/block/bootdevice/by-name/dsp");
package_extract_file("NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem");
package_extract_file("mdtp.img", "/dev/block/bootdevice/by-name/mdtp");
package_extract_file("emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/aboot");
package_extract_file("lksecapp.mbn", "/dev/block/bootdevice/by-name/lksecapp");
package_extract_file("BTFM.bin", "/dev/block/bootdevice/by-name/bluetooth");
package_extract_file("cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64");
package_extract_file("tz.mbn", "/dev/block/bootdevice/by-name/tz");
package_extract_dir("cache", "/cache");