getprop("ro.product.device") == "sweet" || abort("E3004: This package is for \"sweet\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Source: Redmi/sweet_eea2/sweet:11/RKQ1.200826.002/V13.0.3.0.RHGEUXM:user/release-keys");
ui_print("Target: Redmi/sweet_eea2/sweet:11/RKQ1.200826.002/V13.0.4.0.RHGEUXM:user/release-keys");
ui_print("Verifying current system...");
getprop("ro.build.fingerprint") == "Redmi/sweet_eea2/sweet:11/RKQ1.200826.002/V13.0.3.0.RHGEUXM:user/release-keys" ||
    getprop("ro.build.fingerprint") == "Redmi/sweet_eea2/sweet:11/RKQ1.200826.002/V13.0.4.0.RHGEUXM:user/release-keys" ||
    abort("E3001: Package expects build fingerprint of Redmi/sweet_eea2/sweet:11/RKQ1.200826.002/V13.0.3.0.RHGEUXM:user/release-keys or Redmi/sweet_eea2/sweet:11/RKQ1.200826.002/V13.0.4.0.RHGEUXM:user/release-keys; this device has " + getprop("ro.build.fingerprint") + ".");
patch_partition_check(concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:a12c0497ddb7944975782eded6a9eef2629b6a04"),
                      concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:8f8d618f56240e23c69ef99d0aab46f19f45cfc9")) ||
    abort(concat("E3005: \"",concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:a12c0497ddb7944975782eded6a9eef2629b6a04"),"\" or \"",concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:8f8d618f56240e23c69ef99d0aab46f19f45cfc9"),"\" has unexpected contents."));
apply_patch_space(134217728) || abort("E3006: Not enough free space on /cache to apply patches.");
if (range_sha1(map_partition("system"), "32,1,247,258,268,270,274,302,303,319,21587,21594,21595,27753,32770,32987,98306,98523,163842,164059,229378,229595,294914,295131,819202,819419,884738,884955,887399,890256,904363,904549,904550") == "a5aca12ec7d20077222e809c651234517c341b5f" || block_image_verify(map_partition("system"), package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat")) then
ui_print("Verified system image...");
else
check_first_block(map_partition("system"));
ifelse (block_image_recover(map_partition("system"), "32,1,247,258,268,270,274,302,303,319,21587,21594,21595,27753,32770,32987,98306,98523,163842,164059,229378,229595,294914,295131,819202,819419,884738,884955,887399,890256,904363,904549,904550") && block_image_verify(map_partition("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(map_partition("vendor"), "240,1,122,133,137,142,143,223,231,237,238,483,487,492,493,496,500,503,504,509,513,517,518,521,522,532,536,540,541,1226,1277,1380,1381,2682,2691,3946,3947,4560,4648,12550,12554,12640,12641,13621,13623,13624,13625,13627,13630,13631,13632,13634,13636,13637,13638,13640,13642,13643,13644,13646,13648,13649,13650,13652,13654,13655,13656,13658,13660,13665,13667,13670,13672,13675,13677,13685,13687,13690,13692,13693,13694,13696,13698,13699,13700,13703,13705,13706,13707,13709,13711,13712,13713,13715,13717,13718,13719,13721,13723,13724,13725,13727,13729,13730,13731,13740,13741,13760,13761,13762,13763,13767,13768,13769,13770,13773,13774,13775,13776,13779,13780,13781,13782,13785,13786,13787,13788,13792,13793,13794,13795,13798,13799,13800,13801,13805,13806,13810,13811,13815,13816,13820,13821,13825,13826,13827,13828,13837,13838,13839,13840,13843,13844,13845,13846,13849,13850,13851,13852,13855,13856,13857,13858,13860,13862,14154,14155,14270,14271,14618,14635,15173,15178,32768,32770,32862,32888,56710,56711,57339,57341,65536,65556,65891,65892,66603,66605,66800,66801,68052,68054,68108,68110,68656,68657,68878,68879,90515,90516,90520,90522,90539,90540,90575,90576,90585,90586,90588,90589,90639,90640,90643,90644,90652,90653,90729,90730,90736,90737,90762,90763,90799,90800,90905,90906,90953,98306,98398,163842,163934,229378,229470,294914,295006,360464,360468,378317,379526,385542,385631,385632") == "74dcdf586cac1ed14538573087cdb44bf70ec7a9" || block_image_verify(map_partition("vendor"), package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat")) then
ui_print("Verified vendor image...");
else
check_first_block(map_partition("vendor"));
ifelse (block_image_recover(map_partition("vendor"), "240,1,122,133,137,142,143,223,231,237,238,483,487,492,493,496,500,503,504,509,513,517,518,521,522,532,536,540,541,1226,1277,1380,1381,2682,2691,3946,3947,4560,4648,12550,12554,12640,12641,13621,13623,13624,13625,13627,13630,13631,13632,13634,13636,13637,13638,13640,13642,13643,13644,13646,13648,13649,13650,13652,13654,13655,13656,13658,13660,13665,13667,13670,13672,13675,13677,13685,13687,13690,13692,13693,13694,13696,13698,13699,13700,13703,13705,13706,13707,13709,13711,13712,13713,13715,13717,13718,13719,13721,13723,13724,13725,13727,13729,13730,13731,13740,13741,13760,13761,13762,13763,13767,13768,13769,13770,13773,13774,13775,13776,13779,13780,13781,13782,13785,13786,13787,13788,13792,13793,13794,13795,13798,13799,13800,13801,13805,13806,13810,13811,13815,13816,13820,13821,13825,13826,13827,13828,13837,13838,13839,13840,13843,13844,13845,13846,13849,13850,13851,13852,13855,13856,13857,13858,13860,13862,14154,14155,14270,14271,14618,14635,15173,15178,32768,32770,32862,32888,56710,56711,57339,57341,65536,65556,65891,65892,66603,66605,66800,66801,68052,68054,68108,68110,68656,68657,68878,68879,90515,90516,90520,90522,90539,90540,90575,90576,90585,90586,90588,90589,90639,90640,90643,90644,90652,90653,90729,90730,90736,90737,90762,90763,90799,90800,90905,90906,90953,98306,98398,163842,163934,229378,229470,294914,295006,360464,360468,378317,379526,385542,385631,385632") && block_image_verify(map_partition("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;
if (range_sha1(map_partition("product"), "464,1,110,3393,3394,6568,6569,14041,14042,15250,15254,15347,15348,15407,15410,15416,15417,15459,15460,24260,24261,32768,32770,32864,32870,34869,34870,36264,36265,36702,36703,38181,38182,38544,38548,39067,39068,39080,39084,39088,39089,40929,40933,40975,40976,42366,42367,52275,52276,56325,56326,60331,60332,65536,65542,70179,70180,79724,79731,81207,81208,92214,92215,97373,97374,98304,98306,98400,98406,105417,105418,105487,105489,105532,105533,105543,105545,105834,105836,105845,105847,105856,105858,106628,106629,106636,106637,106766,106772,106773,106774,106787,106793,106794,106795,114321,114322,115557,115561,116574,116575,120461,120462,131072,131078,134159,134160,134230,134231,136493,136495,157282,157283,159341,159342,163840,163842,163936,163942,167462,167463,168632,168633,169244,169245,174045,174046,178691,178693,179197,179198,179205,179206,179212,179213,183550,183551,183776,183778,183788,183790,183836,183838,183848,183850,183859,183860,185677,185678,185681,185685,189652,189653,194583,194584,194696,194698,194707,194708,194821,194822,194831,194832,195291,195292,196608,196614,198370,198371,211732,211734,212143,212144,212154,212155,212823,212824,213987,213988,216549,216553,216624,216625,216631,220247,224946,224947,226579,226580,226584,226585,229376,229378,229472,229478,233809,233813,241029,241034,241053,241057,241076,241080,241099,241103,241122,241126,242624,242625,243199,243203,244223,244224,245365,245366,249173,249174,249178,249179,249202,249204,249205,249206,249238,249239,249250,249251,251169,251170,253482,253483,256733,256734,256767,256768,257284,257285,257454,257455,257456,257457,257459,257460,257476,257477,257480,257482,257483,257485,257502,257503,257516,257517,257556,257560,257564,257568,257569,257573,257574,257590,258005,258006,258377,258378,259863,259864,259953,259955,259958,259959,259962,259963,259966,259967,259970,259971,259974,259975,259978,259979,259993,259994,260000,260001,260007,260008,260014,260015,260021,260022,260028,260029,260075,260076,260097,260098,260105,260106,260127,260128,260145,260146,260152,260153,260171,260172,260179,260180,260199,260200,260215,260216,260221,260222,260242,260243,260250,260251,260272,260273,260290,260291,260297,260298,260301,260302,260305,260306,260309,260310,260313,260314,260317,260318,260339,260340,260343,260344,260348,260349,260923,260925,262144,262157,263269,263270,263345,263346,264775,264776,265385,265386,266852,266853,270701,270702,274581,274583,276432,276434,278241,278242,280154,280155,281797,281798,281936,281938,290874,290876,291926,291928,294168,294169,294343,294347,294395,294396,294411,294412,294652,294656,294907,294908,294912,294914,295008,295014,303684,303685,309064,309068,309120,309121,309149,309150,309287,309291,309299,309300,311416,311417,311616,311620,311660,311661,313061,313065,313109,315832,316678,316679,323326,323327,327680,327683,329390,329391,329927,329931,329952,329953,330617,330621,330637,330638,332333,332337,332362,332363,343189,343190,360448,360449,367322,367323,367514,367515,367818,367819,367990,367991,368968,368969,369551,369552,369728,369729,370704,370706,371178,371179,371820,371821,374697,374698,375650,375653,378987,378988,386602,392731,392819,392820") == "b9048644280a9d9d7e2688b071c226b36be22f8b" || block_image_verify(map_partition("product"), package_extract_file("product.transfer.list"), "product.new.dat", "product.patch.dat")) then
ui_print("Verified product image...");
else
ifelse (block_image_recover(map_partition("product"), "464,1,110,3393,3394,6568,6569,14041,14042,15250,15254,15347,15348,15407,15410,15416,15417,15459,15460,24260,24261,32768,32770,32864,32870,34869,34870,36264,36265,36702,36703,38181,38182,38544,38548,39067,39068,39080,39084,39088,39089,40929,40933,40975,40976,42366,42367,52275,52276,56325,56326,60331,60332,65536,65542,70179,70180,79724,79731,81207,81208,92214,92215,97373,97374,98304,98306,98400,98406,105417,105418,105487,105489,105532,105533,105543,105545,105834,105836,105845,105847,105856,105858,106628,106629,106636,106637,106766,106772,106773,106774,106787,106793,106794,106795,114321,114322,115557,115561,116574,116575,120461,120462,131072,131078,134159,134160,134230,134231,136493,136495,157282,157283,159341,159342,163840,163842,163936,163942,167462,167463,168632,168633,169244,169245,174045,174046,178691,178693,179197,179198,179205,179206,179212,179213,183550,183551,183776,183778,183788,183790,183836,183838,183848,183850,183859,183860,185677,185678,185681,185685,189652,189653,194583,194584,194696,194698,194707,194708,194821,194822,194831,194832,195291,195292,196608,196614,198370,198371,211732,211734,212143,212144,212154,212155,212823,212824,213987,213988,216549,216553,216624,216625,216631,220247,224946,224947,226579,226580,226584,226585,229376,229378,229472,229478,233809,233813,241029,241034,241053,241057,241076,241080,241099,241103,241122,241126,242624,242625,243199,243203,244223,244224,245365,245366,249173,249174,249178,249179,249202,249204,249205,249206,249238,249239,249250,249251,251169,251170,253482,253483,256733,256734,256767,256768,257284,257285,257454,257455,257456,257457,257459,257460,257476,257477,257480,257482,257483,257485,257502,257503,257516,257517,257556,257560,257564,257568,257569,257573,257574,257590,258005,258006,258377,258378,259863,259864,259953,259955,259958,259959,259962,259963,259966,259967,259970,259971,259974,259975,259978,259979,259993,259994,260000,260001,260007,260008,260014,260015,260021,260022,260028,260029,260075,260076,260097,260098,260105,260106,260127,260128,260145,260146,260152,260153,260171,260172,260179,260180,260199,260200,260215,260216,260221,260222,260242,260243,260250,260251,260272,260273,260290,260291,260297,260298,260301,260302,260305,260306,260309,260310,260313,260314,260317,260318,260339,260340,260343,260344,260348,260349,260923,260925,262144,262157,263269,263270,263345,263346,264775,264776,265385,265386,266852,266853,270701,270702,274581,274583,276432,276434,278241,278242,280154,280155,281797,281798,281936,281938,290874,290876,291926,291928,294168,294169,294343,294347,294395,294396,294411,294412,294652,294656,294907,294908,294912,294914,295008,295014,303684,303685,309064,309068,309120,309121,309149,309150,309287,309291,309299,309300,311416,311417,311616,311620,311660,311661,313061,313065,313109,315832,316678,316679,323326,323327,327680,327683,329390,329391,329927,329931,329952,329953,330617,330621,330637,330638,332333,332337,332362,332363,343189,343190,360448,360449,367322,367323,367514,367515,367818,367819,367990,367991,368968,368969,369551,369552,369728,369729,370704,370706,371178,371179,371820,371821,374697,374698,375650,375653,378987,378988,386602,392731,392819,392820") && block_image_verify(map_partition("product"), package_extract_file("product.transfer.list"), "product.new.dat", "product.patch.dat"), ui_print("product recovered successfully."), abort("E2004: product partition fails to recover"));
endif;
if (range_sha1(map_partition("odm"), "12,1,11,12,13,14,16,24,252,254,262,279,280") == "03f548065e968ab4d527916ceec00df6b88a7501" || block_image_verify(map_partition("odm"), package_extract_file("odm.transfer.list"), "odm.new.dat", "odm.patch.dat")) then
ui_print("Verified odm image...");
else
ifelse (block_image_recover(map_partition("odm"), "12,1,11,12,13,14,16,24,252,254,262,279,280") && block_image_verify(map_partition("odm"), package_extract_file("odm.transfer.list"), "odm.new.dat", "odm.patch.dat"), ui_print("odm recovered successfully."), abort("E2004: odm partition fails to recover"));
endif;
if (range_sha1(map_partition("system_ext"), "246,1,62,71,75,79,80,87,93,94,95,111,117,118,119,178,182,187,188,847,849,906,910,926,927,955,961,962,963,1369,1375,1389,1390,1397,1403,1404,1405,1601,1605,1609,1610,1614,1618,1623,1624,1629,1630,1638,1644,1645,1646,1670,1676,1677,1678,1684,1690,1691,1692,1695,1696,1708,1714,1715,1716,1727,1728,1734,1738,1742,1743,1748,1754,1758,1759,1768,1774,1775,1776,1789,1795,1796,1797,1800,1807,1815,1822,1828,1835,1867,1874,1894,1901,1920,1925,1943,1950,1968,1969,2033,2052,2174,2177,2187,2188,2201,2202,2203,2204,2205,2206,2214,2215,2238,2239,2285,2290,2293,2296,2299,2302,2305,2307,2311,2312,2316,2319,2324,2325,2328,2330,2933,2935,2939,2943,2948,2950,2955,2959,2960,2964,2965,2969,2970,2974,2975,2979,2980,2984,2985,2989,2990,2994,2995,2999,3000,3004,3005,3009,3010,3014,3015,3019,3020,3022,3029,3033,3034,3038,3039,3043,3044,3048,3049,3053,3054,3058,3059,3063,3064,3066,3067,3071,3072,3076,3077,3081,3082,3086,3087,3091,3092,3096,3097,3101,3102,3104,3108,3112,3113,3117,3118,3120,3121,3123,3124,3128,3129,3133,3134,3136,3137,3141,3142,3144,3145,3149,3150,3154,3155,3157,3158,3162,3163,3165,3169,3182,3187,3241,3244,3354,5169,5188,6197,6198,6332,32770,32800,98306,98336,98356,98358,126252,126642,128652,128692,128693") == "f7076edef4423d11147ca605021e517f00e910a8" || block_image_verify(map_partition("system_ext"), package_extract_file("system_ext.transfer.list"), "system_ext.new.dat", "system_ext.patch.dat")) then
ui_print("Verified system_ext image...");
else
check_first_block(map_partition("system_ext"));
ifelse (block_image_recover(map_partition("system_ext"), "246,1,62,71,75,79,80,87,93,94,95,111,117,118,119,178,182,187,188,847,849,906,910,926,927,955,961,962,963,1369,1375,1389,1390,1397,1403,1404,1405,1601,1605,1609,1610,1614,1618,1623,1624,1629,1630,1638,1644,1645,1646,1670,1676,1677,1678,1684,1690,1691,1692,1695,1696,1708,1714,1715,1716,1727,1728,1734,1738,1742,1743,1748,1754,1758,1759,1768,1774,1775,1776,1789,1795,1796,1797,1800,1807,1815,1822,1828,1835,1867,1874,1894,1901,1920,1925,1943,1950,1968,1969,2033,2052,2174,2177,2187,2188,2201,2202,2203,2204,2205,2206,2214,2215,2238,2239,2285,2290,2293,2296,2299,2302,2305,2307,2311,2312,2316,2319,2324,2325,2328,2330,2933,2935,2939,2943,2948,2950,2955,2959,2960,2964,2965,2969,2970,2974,2975,2979,2980,2984,2985,2989,2990,2994,2995,2999,3000,3004,3005,3009,3010,3014,3015,3019,3020,3022,3029,3033,3034,3038,3039,3043,3044,3048,3049,3053,3054,3058,3059,3063,3064,3066,3067,3071,3072,3076,3077,3081,3082,3086,3087,3091,3092,3096,3097,3101,3102,3104,3108,3112,3113,3117,3118,3120,3121,3123,3124,3128,3129,3133,3134,3136,3137,3141,3142,3144,3145,3149,3150,3154,3155,3157,3158,3162,3163,3165,3169,3182,3187,3241,3244,3354,5169,5188,6197,6198,6332,32770,32800,98306,98336,98356,98358,126252,126642,128652,128692,128693") && block_image_verify(map_partition("system_ext"), package_extract_file("system_ext.transfer.list"), "system_ext.new.dat", "system_ext.patch.dat"), ui_print("system_ext recovered successfully."), abort("E2004: system_ext partition fails to recover"));
endif;

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


# ---- 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/NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem");
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/imagefv.elf", "/dev/block/bootdevice/by-name/imagefv");
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/km41.mbn", "/dev/block/bootdevice/by-name/keymaster");
package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xbl");
package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64bak");
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/imagefv.elf", "/dev/block/bootdevice/by-name/imagefvbak");
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/km41.mbn", "/dev/block/bootdevice/by-name/keymasterbak");
package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xblbak");

# --- Start patching dynamic partitions ---


# Update dynamic partition metadata

assert(update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list")));

# Patch partition system

ui_print("Patching system image after verification.");
show_progress(0.500000, 0);
block_image_update(map_partition("system"), package_extract_file("system.transfer.list"), "system.new.dat", "system.patch.dat") ||
  abort("E1001: Failed to update system image.");

# Patch partition vendor

ui_print("Patching vendor image after verification.");
show_progress(0.100000, 0);
block_image_update(map_partition("vendor"), package_extract_file("vendor.transfer.list"), "vendor.new.dat", "vendor.patch.dat") ||
  abort("E2001: Failed to update vendor image.");

# Patch partition product

ui_print("Patching product image after verification.");
show_progress(0.100000, 0);
block_image_update(map_partition("product"), package_extract_file("product.transfer.list"), "product.new.dat", "product.patch.dat") ||
  abort("E2001: Failed to update product image.");

# Patch partition odm

ui_print("Patching odm image after verification.");
show_progress(0.100000, 0);
block_image_update(map_partition("odm"), package_extract_file("odm.transfer.list"), "odm.new.dat", "odm.patch.dat") ||
  abort("E2001: Failed to update odm image.");

# Patch partition system_ext

ui_print("Patching system_ext image after verification.");
show_progress(0.100000, 0);
block_image_update(map_partition("system_ext"), package_extract_file("system_ext.transfer.list"), "system_ext.new.dat", "system_ext.patch.dat") ||
  abort("E2001: Failed to update system_ext image.");

# --- End patching dynamic partitions ---

ui_print("Patching boot image...");
show_progress(0.100000, 10);
patch_partition(concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:a12c0497ddb7944975782eded6a9eef2629b6a04"),
                concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:8f8d618f56240e23c69ef99d0aab46f19f45cfc9"),
                package_extract_file("boot.img.p")) ||
    abort(concat(        "E3008: Failed to apply patch to ",concat("EMMC:","/dev/block/bootdevice/by-name/boot",":134217728:8f8d618f56240e23c69ef99d0aab46f19f45cfc9")));

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

ui_print("Patching vbmeta dtbo logo binimages...");
package_extract_file("firmware-update/dtbo.img", "/dev/block/bootdevice/by-name/dtbo");
package_extract_file("firmware-update/vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta");
package_extract_file("firmware-update/vbmeta_system.img", "/dev/block/bootdevice/by-name/vbmeta_system");
set_progress(1.000000);
