getprop("ro.product.device") == "tucana" || abort("E3004: This package is for \"tucana\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Source: Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.2.0.PFDEUXM:user/release-keys");
ui_print("Target: Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.5.0.PFDEUXM:user/release-keys");
ui_print("Verifying current system...");
getprop("ro.build.fingerprint") == "Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.2.0.PFDEUXM:user/release-keys" ||
    getprop("ro.build.fingerprint") == "Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.5.0.PFDEUXM:user/release-keys" ||
    abort("E3001: Package expects build fingerprint of Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.2.0.PFDEUXM:user/release-keys or Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.5.0.PFDEUXM:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
show_progress(0.100000, 5);
apply_patch_check("EMMC:/dev/block/bootdevice/by-name/boot:134217728:85c472a63f78fa663995a8c75fd20ab5c46b31f2:134217728:a7a5eb842e9e25b9adf78bf87dbc5281899c8eca") || abort("E3005: \"EMMC:/dev/block/bootdevice/by-name/boot:134217728:85c472a63f78fa663995a8c75fd20ab5c46b31f2:134217728:a7a5eb842e9e25b9adf78bf87dbc5281899c8eca\" has unexpected contents.");
apply_patch_space(307765248) || abort("E3006: Not enough free space on /cache to apply patches.");
show_progress(0.100000, 70);
if (range_sha1("/dev/block/bootdevice/by-name/system", "1210,1,302,317,528,8387,8395,8397,8950,9415,9420,9578,9588,9592,9670,9688,9960,9966,10172,10176,10527,11043,11255,11589,22330,22331,28580,28581,32768,33053,38140,38141,44953,44981,45003,45437,45447,45578,45640,46155,46194,46336,46982,47045,47050,47816,48226,50267,53981,56180,56827,56833,56836,56916,57070,57073,57877,57881,58264,58506,58532,59094,61407,61408,68187,68369,69104,69149,69311,69369,69490,69633,71040,72907,73209,73306,73316,73506,73536,74593,74616,74752,74888,75462,75806,75830,75836,76378,76622,76750,76754,76799,76838,77153,77198,77292,78752,78753,78808,79061,84606,84636,84738,84823,91901,91902,93127,93128,96804,96805,98304,98589,108566,108567,111372,111517,111550,112811,112816,112868,112872,113061,113064,113160,113218,113321,113386,115011,117180,117181,118807,118808,125004,125006,127127,127128,130162,130163,143586,143587,143680,143716,143808,143975,144561,145743,145956,146419,150025,150026,150029,150031,150407,150408,150449,150450,150469,150470,150473,150475,153163,154053,154055,154162,160257,160259,160268,160269,160401,160402,163840,164125,166566,166567,166832,166833,168127,168129,175815,175816,182872,183231,183264,183273,183277,183282,183291,183307,183316,183326,183435,183438,183441,183539,183582,183797,183803,184221,184226,184282,184312,184318,184320,184340,184378,185042,185073,185196,185201,185373,185387,185392,185395,185405,185410,185425,185427,185516,185534,185539,185562,185569,185574,185579,185591,185596,185602,185605,185622,185714,185722,185736,185783,185786,185788,185796,185798,186061,186072,186079,186085,186118,186425,186426,196359,196360,196718,196719,208227,208228,208834,208835,212814,212815,214944,214945,216559,216560,216694,216695,216868,216869,216949,216950,221119,221120,224484,224485,224778,224779,229376,229661,234802,234803,235351,235352,240381,240382,241707,241708,241877,241878,241977,241978,248350,248351,257766,257767,257874,257878,258084,258087,258105,258108,259812,259815,264750,264753,267224,267225,268561,268564,269130,269133,269294,269297,269311,269314,269471,269472,271208,271210,273310,273313,278969,278972,279781,279784,280373,280374,280382,280384,280390,280393,280441,280442,280472,280474,280482,280483,282135,282137,282147,282150,282213,282216,284245,284248,294912,295197,296311,296312,311979,311982,312136,312137,312212,312214,312314,312317,315529,315532,315551,315554,315570,315573,318299,318302,318544,318549,318928,318931,333001,333004,333344,333345,333980,333982,333999,334002,344049,344050,344080,344082,344088,344089,345443,345446,345512,345515,345560,345563,345622,355897,362569,362572,362586,362588,362898,362901,363232,363235,363275,363278,363368,363371,366052,366055,366064,366067,366495,366498,375569,375572,379719,379722,380011,380012,380019,380021,380031,380032,380038,380039,384566,384567,404179,404182,404353,404356,405694,405695,405887,405889,405899,405902,406714,406717,406798,406799,406813,406815,406822,406823,407156,407158,407171,407174,407343,407346,410027,410028,414772,414775,417005,417008,417072,417073,417077,417079,417085,417088,417115,417116,422292,422294,422339,422340,422815,422817,422834,422837,426125,426128,426193,426194,427370,427372,427385,427386,427918,427920,427938,427941,428251,428252,428329,428332,428356,428359,430985,430988,435324,435325,443560,443561,447049,447052,447058,447060,447067,447070,447082,447083,448222,448224,448242,448245,448256,448259,448833,448834,449423,449424,449484,449486,449494,449495,449503,449504,453459,453460,455775,455776,476184,476187,477584,477585,480265,480267,480311,480314,503324,503329,503436,503437,517857,517858,524288,532384,544467,544468,548646,548647,549047,549048,551216,551220,551228,551229,558708,558709,560114,560117,560147,560150,560602,560605,561116,561119,561222,561223,572844,572845,573111,573114,573203,573206,573236,573239,574554,574559,574866,574867,582267,582268,590585,590586,599897,599898,600898,600901,600923,600926,600941,600944,602481,602484,602512,602515,604338,604341,604360,604361,604850,604852,604863,604864,604866,604867,604930,604932,605266,605269,607333,607334,610887,610890,610916,610919,611816,611819,611830,611833,611988,611991,613420,613425,613520,613523,613615,613618,615880,615883,615925,615928,615946,615947,622092,622093,622095,622097,622107,622110,627548,627549,627955,627958,627982,627985,629670,629671,645578,645579,645929,645930,645932,645934,645942,645943,646043,646046,647596,647599,647610,647613,648025,648026,650663,650664,654355,654356,654513,654514,655376,655378,655859,655860,655864,655867,656515,656518,656547,656550,656628,656631,656668,656669,658599,658601,658740,658741,659199,659202,659222,659225,659241,659242,659528,659530,660622,660625,661044,661047,661541,661546,661556,661559,661698,661700,661916,661917,661924,661926,662322,662325,662337,662340,662841,662842,665736,665737,665740,665743,665773,665776,665796,665799,667358,667363,667575,667578,681353,681354,681357,681359,681481,681484,681508,681511,681526,681529,684502,684505,684518,684521,687381,687384,687398,687401,688005,688008,688414,688416,688660,688661,691138,691139,707278,707279,722938,722941,722962,722965,724706,727444,731887,731890,732486,732487,732530,732532,732707,732710,735737,735740,736688,736689,737605,737607,738458,738461,740665,740667,741083,741084,741176,741178,741476,741477,741480,741482,741495,741496,741498,741500,741515,741518,741536,741537,743787,743790,743800,743801,743926,743927,743929,743930,743954,743956,743989,743992,744037,744040,744449,744452,744510,744513,745287,745290,745471,745474,745805,745806,751439,751442,754237,754238,754452,754454,754715,754718,754728,754731,754798,754801,755212,755213,756711,756712,761658,761660,766267,766270,768412,768415,773924,773925,773927,773929,773961,773966,774546,774547,774550,774552,774561,774562,782200,782201,786408,786409,786411,786413,786423,786426,786752,786754,786822,786823,786825,786827,786843,786846,786862,789658,789707,789709,789713,789714,797003,797004,805142,805145,805153,805155,805157,805160,805178,805954,806091,806092,809437,809438,809449,809451,809460,809463,810136,810139,810151,810152,810154,810157,812278,812283,812293,812294,812296,812298,812308,812311,812775,812776,813083,813085,813536,813537,813541,813543,813555,813558,813608,813611,813625,813626,813628,813630,813646,813649,816171,816172,818547,818548,818699,818701,818781,818786,819200,819485,820145,820148,820233,820382,820395,820398,820534,820537,823039,823551,823553,825537,825542,826008,826076,826078,826079,826080,826081,826082,826083,826084,826086,826087,826088,826089,826090,826091,826092,826093,826094,826095,826097,826098,826099,826100,826151,826153,826412,826413,826421,826423,826482,827588,827771,827773,827881,827882,828086,828087,828390,828391,828549,828550,828565,828566,828568,828569,828578,828579,838413,838414,843562,843563,854522,854523,854527,854528,859137,859138,864845,864846,874515,874516,874633,874634,881806,881831,881849,882355,882485,882537,882661,882701,882770,882774,882789,882804,882815,883804,883830,883877,884130,884149,884607,884641,884660,885146,885907,886875,889000,889001,891822,891823,892092,892094,892493,892494,895817,895818,897221,897222,899883,899884,901682,901684,907708,907710,907716,907718,908090,908091,909058,910146,910843,911083,911201,911369,911671,911927,912318,912539,912688,912693,912695,912711,912731,912749,912751,912759,912763,912768,912782,912791,912793,912804,912806,912815,912825,912832,912834,912925,912930,912933,912938,912946,912953,912962,912985,912991,912995,913014,913027,913036,913038,913043,913051,913225,913310,913311,913634,914093,914245,914569,914572,914575,914588,914589,914612,914613,914634,914635,914639,914640,914710,914711,914721,914722,914767,914768,914782,914783,914786,914787,914806,914807,914808,914810,914915,914917,914927,914929,914937,914938,914944,914946,914964,914966,914972,914973,914977,914978,914984,914986,915026,915028,915030,915031,919937,919939,919940,919941,919943,919944,919945,919946,919947,919948,919950,919951,919952,919953,919954,919955,919956,919957,919958,919959,919963,919964,919965,919966,919967,919968,919970,919971,919973,919974,919976,919977,919978,919979,919980,919981,919982,919983,919984,919985,919986,919987,919988,919989,919990,919991,919992,919993,920356,920357,923689,924498,925358,925359,932755,932756,932757,932760,932762,932766,932767,932771,933311,933312,934075,934078,934091,934093,934098,1161403,1179411,1179647,1179648") == "70f087e7e0c9f35fffa2cc11275442bef0b5407d" || block_image_verify("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat")) then
ui_print("Verified system image...");
else
check_first_block("/dev/block/bootdevice/by-name/system");
ifelse (block_image_recover("/dev/block/bootdevice/by-name/system", "1210,1,302,317,528,8387,8395,8397,8950,9415,9420,9578,9588,9592,9670,9688,9960,9966,10172,10176,10527,11043,11255,11589,22330,22331,28580,28581,32768,33053,38140,38141,44953,44981,45003,45437,45447,45578,45640,46155,46194,46336,46982,47045,47050,47816,48226,50267,53981,56180,56827,56833,56836,56916,57070,57073,57877,57881,58264,58506,58532,59094,61407,61408,68187,68369,69104,69149,69311,69369,69490,69633,71040,72907,73209,73306,73316,73506,73536,74593,74616,74752,74888,75462,75806,75830,75836,76378,76622,76750,76754,76799,76838,77153,77198,77292,78752,78753,78808,79061,84606,84636,84738,84823,91901,91902,93127,93128,96804,96805,98304,98589,108566,108567,111372,111517,111550,112811,112816,112868,112872,113061,113064,113160,113218,113321,113386,115011,117180,117181,118807,118808,125004,125006,127127,127128,130162,130163,143586,143587,143680,143716,143808,143975,144561,145743,145956,146419,150025,150026,150029,150031,150407,150408,150449,150450,150469,150470,150473,150475,153163,154053,154055,154162,160257,160259,160268,160269,160401,160402,163840,164125,166566,166567,166832,166833,168127,168129,175815,175816,182872,183231,183264,183273,183277,183282,183291,183307,183316,183326,183435,183438,183441,183539,183582,183797,183803,184221,184226,184282,184312,184318,184320,184340,184378,185042,185073,185196,185201,185373,185387,185392,185395,185405,185410,185425,185427,185516,185534,185539,185562,185569,185574,185579,185591,185596,185602,185605,185622,185714,185722,185736,185783,185786,185788,185796,185798,186061,186072,186079,186085,186118,186425,186426,196359,196360,196718,196719,208227,208228,208834,208835,212814,212815,214944,214945,216559,216560,216694,216695,216868,216869,216949,216950,221119,221120,224484,224485,224778,224779,229376,229661,234802,234803,235351,235352,240381,240382,241707,241708,241877,241878,241977,241978,248350,248351,257766,257767,257874,257878,258084,258087,258105,258108,259812,259815,264750,264753,267224,267225,268561,268564,269130,269133,269294,269297,269311,269314,269471,269472,271208,271210,273310,273313,278969,278972,279781,279784,280373,280374,280382,280384,280390,280393,280441,280442,280472,280474,280482,280483,282135,282137,282147,282150,282213,282216,284245,284248,294912,295197,296311,296312,311979,311982,312136,312137,312212,312214,312314,312317,315529,315532,315551,315554,315570,315573,318299,318302,318544,318549,318928,318931,333001,333004,333344,333345,333980,333982,333999,334002,344049,344050,344080,344082,344088,344089,345443,345446,345512,345515,345560,345563,345622,355897,362569,362572,362586,362588,362898,362901,363232,363235,363275,363278,363368,363371,366052,366055,366064,366067,366495,366498,375569,375572,379719,379722,380011,380012,380019,380021,380031,380032,380038,380039,384566,384567,404179,404182,404353,404356,405694,405695,405887,405889,405899,405902,406714,406717,406798,406799,406813,406815,406822,406823,407156,407158,407171,407174,407343,407346,410027,410028,414772,414775,417005,417008,417072,417073,417077,417079,417085,417088,417115,417116,422292,422294,422339,422340,422815,422817,422834,422837,426125,426128,426193,426194,427370,427372,427385,427386,427918,427920,427938,427941,428251,428252,428329,428332,428356,428359,430985,430988,435324,435325,443560,443561,447049,447052,447058,447060,447067,447070,447082,447083,448222,448224,448242,448245,448256,448259,448833,448834,449423,449424,449484,449486,449494,449495,449503,449504,453459,453460,455775,455776,476184,476187,477584,477585,480265,480267,480311,480314,503324,503329,503436,503437,517857,517858,524288,532384,544467,544468,548646,548647,549047,549048,551216,551220,551228,551229,558708,558709,560114,560117,560147,560150,560602,560605,561116,561119,561222,561223,572844,572845,573111,573114,573203,573206,573236,573239,574554,574559,574866,574867,582267,582268,590585,590586,599897,599898,600898,600901,600923,600926,600941,600944,602481,602484,602512,602515,604338,604341,604360,604361,604850,604852,604863,604864,604866,604867,604930,604932,605266,605269,607333,607334,610887,610890,610916,610919,611816,611819,611830,611833,611988,611991,613420,613425,613520,613523,613615,613618,615880,615883,615925,615928,615946,615947,622092,622093,622095,622097,622107,622110,627548,627549,627955,627958,627982,627985,629670,629671,645578,645579,645929,645930,645932,645934,645942,645943,646043,646046,647596,647599,647610,647613,648025,648026,650663,650664,654355,654356,654513,654514,655376,655378,655859,655860,655864,655867,656515,656518,656547,656550,656628,656631,656668,656669,658599,658601,658740,658741,659199,659202,659222,659225,659241,659242,659528,659530,660622,660625,661044,661047,661541,661546,661556,661559,661698,661700,661916,661917,661924,661926,662322,662325,662337,662340,662841,662842,665736,665737,665740,665743,665773,665776,665796,665799,667358,667363,667575,667578,681353,681354,681357,681359,681481,681484,681508,681511,681526,681529,684502,684505,684518,684521,687381,687384,687398,687401,688005,688008,688414,688416,688660,688661,691138,691139,707278,707279,722938,722941,722962,722965,724706,727444,731887,731890,732486,732487,732530,732532,732707,732710,735737,735740,736688,736689,737605,737607,738458,738461,740665,740667,741083,741084,741176,741178,741476,741477,741480,741482,741495,741496,741498,741500,741515,741518,741536,741537,743787,743790,743800,743801,743926,743927,743929,743930,743954,743956,743989,743992,744037,744040,744449,744452,744510,744513,745287,745290,745471,745474,745805,745806,751439,751442,754237,754238,754452,754454,754715,754718,754728,754731,754798,754801,755212,755213,756711,756712,761658,761660,766267,766270,768412,768415,773924,773925,773927,773929,773961,773966,774546,774547,774550,774552,774561,774562,782200,782201,786408,786409,786411,786413,786423,786426,786752,786754,786822,786823,786825,786827,786843,786846,786862,789658,789707,789709,789713,789714,797003,797004,805142,805145,805153,805155,805157,805160,805178,805954,806091,806092,809437,809438,809449,809451,809460,809463,810136,810139,810151,810152,810154,810157,812278,812283,812293,812294,812296,812298,812308,812311,812775,812776,813083,813085,813536,813537,813541,813543,813555,813558,813608,813611,813625,813626,813628,813630,813646,813649,816171,816172,818547,818548,818699,818701,818781,818786,819200,819485,820145,820148,820233,820382,820395,820398,820534,820537,823039,823551,823553,825537,825542,826008,826076,826078,826079,826080,826081,826082,826083,826084,826086,826087,826088,826089,826090,826091,826092,826093,826094,826095,826097,826098,826099,826100,826151,826153,826412,826413,826421,826423,826482,827588,827771,827773,827881,827882,828086,828087,828390,828391,828549,828550,828565,828566,828568,828569,828578,828579,838413,838414,843562,843563,854522,854523,854527,854528,859137,859138,864845,864846,874515,874516,874633,874634,881806,881831,881849,882355,882485,882537,882661,882701,882770,882774,882789,882804,882815,883804,883830,883877,884130,884149,884607,884641,884660,885146,885907,886875,889000,889001,891822,891823,892092,892094,892493,892494,895817,895818,897221,897222,899883,899884,901682,901684,907708,907710,907716,907718,908090,908091,909058,910146,910843,911083,911201,911369,911671,911927,912318,912539,912688,912693,912695,912711,912731,912749,912751,912759,912763,912768,912782,912791,912793,912804,912806,912815,912825,912832,912834,912925,912930,912933,912938,912946,912953,912962,912985,912991,912995,913014,913027,913036,913038,913043,913051,913225,913310,913311,913634,914093,914245,914569,914572,914575,914588,914589,914612,914613,914634,914635,914639,914640,914710,914711,914721,914722,914767,914768,914782,914783,914786,914787,914806,914807,914808,914810,914915,914917,914927,914929,914937,914938,914944,914946,914964,914966,914972,914973,914977,914978,914984,914986,915026,915028,915030,915031,919937,919939,919940,919941,919943,919944,919945,919946,919947,919948,919950,919951,919952,919953,919954,919955,919956,919957,919958,919959,919963,919964,919965,919966,919967,919968,919970,919971,919973,919974,919976,919977,919978,919979,919980,919981,919982,919983,919984,919985,919986,919987,919988,919989,919990,919991,919992,919993,920356,920357,923689,924498,925358,925359,932755,932756,932757,932760,932762,932766,932767,932771,933311,933312,934075,934078,934091,934093,934098,1161403,1179411,1179647,1179648") && block_image_verify("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat"), ui_print("system recovered successfully."), abort("E1004: system partition fails to recover"));
endif;
if (range_sha1("/dev/block/bootdevice/by-name/vendor", "22,1,139,142,144,159,317,8223,32770,32895,98306,98431,163842,163967,229378,229503,294914,295039,386698,515995,524173,524287,524288") == "31fa38698953110b89583afa55138769280965b4" || block_image_verify("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat")) then
ui_print("Verified vendor image...");
else
check_first_block("/dev/block/bootdevice/by-name/vendor");
ifelse (block_image_recover("/dev/block/bootdevice/by-name/vendor", "22,1,139,142,144,159,317,8223,32770,32895,98306,98431,163842,163967,229378,229503,294914,295039,386698,515995,524173,524287,524288") && block_image_verify("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat"), ui_print("vendor recovered successfully."), abort("E2004: vendor partition fails to recover"));
endif;

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

ui_print("Patching boot image...");
show_progress(0.100000, 10);
apply_patch("EMMC:/dev/block/bootdevice/by-name/boot:134217728:85c472a63f78fa663995a8c75fd20ab5c46b31f2:134217728:a7a5eb842e9e25b9adf78bf87dbc5281899c8eca",
            "-", a7a5eb842e9e25b9adf78bf87dbc5281899c8eca, 134217728,
            85c472a63f78fa663995a8c75fd20ab5c46b31f2, package_extract_file("patch/boot.img.p")) || abort("Failed to apply patch \"patch/boot.img.p \".");

# ---- radio update tasks ----

ui_print("Patching firmware images...");
package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64");
package_extract_file("firmware-update/imagefv.elf", "/dev/block/bootdevice/by-name/imagefv");
package_extract_file("firmware-update/cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlib");
package_extract_file("firmware-update/hyp.mbn", "/dev/block/bootdevice/by-name/hyp");
package_extract_file("firmware-update/BTFM.bin", "/dev/block/bootdevice/by-name/bluetooth");
package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tz");
package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aop");
package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_config");
package_extract_file("firmware-update/storsec.mbn", "/dev/block/bootdevice/by-name/storsec");
package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecapp");
package_extract_file("firmware-update/NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem");
package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfw");
package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/abl");
package_extract_file("firmware-update/dspso.bin", "/dev/block/bootdevice/by-name/dsp");
package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfg");
package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xbl");
package_extract_file("firmware-update/km4.mbn", "/dev/block/bootdevice/by-name/keymaster");
package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64bak");
package_extract_file("firmware-update/imagefv.elf", "/dev/block/bootdevice/by-name/imagefvbak");
package_extract_file("firmware-update/cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlibbak");
package_extract_file("firmware-update/hyp.mbn", "/dev/block/bootdevice/by-name/hypbak");
package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tzbak");
package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aopbak");
package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_configbak");
package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecappbak");
package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfwbak");
package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/ablbak");
package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfgbak");
package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xblbak");
package_extract_file("firmware-update/km4.mbn", "/dev/block/bootdevice/by-name/keymasterbak");
show_progress(0.600000, 600);
ui_print("Patching system image after verification.");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
  abort("E1001: Failed to update system image.");
ui_print("Patching vendor image after verification.");
block_image_update("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat") ||
  abort("E2001: Failed to update vendor image.");

# ---- radio update tasks 2 ----

ui_print("Patching vbmeta dtbo logo binimages...");
package_extract_file("firmware-update/vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta");
package_extract_file("firmware-update/dtbo.img", "/dev/block/bootdevice/by-name/dtbo");
show_progress(0.100000, 2);
