getprop("ro.product.device") == "rgk6735m_35_qc_n" || abort("E3004: This package is for \"rgk6735m_35_qc_n\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Source: alps/full_rgk6735m_35_qc_n/rgk6735m_35_qc_n:7.0/NRD90M/1752837431:user/test-keys");
ui_print("Target: alps/full_rgk6735m_35_qc_n/rgk6735m_35_qc_n:7.0/NRD90M/1753151677:user/test-keys");
ui_print("Verifying current system...");
getprop("ro.build.fingerprint") == "alps/full_rgk6735m_35_qc_n/rgk6735m_35_qc_n:7.0/NRD90M/1752837431:user/test-keys" ||
    getprop("ro.build.fingerprint") == "alps/full_rgk6735m_35_qc_n/rgk6735m_35_qc_n:7.0/NRD90M/1753151677:user/test-keys" ||
    abort("E3001: Package expects build fingerprint of alps/full_rgk6735m_35_qc_n/rgk6735m_35_qc_n:7.0/NRD90M/1752837431:user/test-keys or alps/full_rgk6735m_35_qc_n/rgk6735m_35_qc_n:7.0/NRD90M/1753151677:user/test-keys; this device has " + getprop("ro.build.fingerprint") + ".");
apply_patch_check("EMMC:/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot:8634624:940206e4b1ecdfdc23d4b8ea601b1c1d8e6bca8c:8634624:87328b06778a8369f2fc401bd043c8db1cbba79d") || abort("E3005: \"EMMC:/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot:8634624:940206e4b1ecdfdc23d4b8ea601b1c1d8e6bca8c:8634624:87328b06778a8369f2fc401bd043c8db1cbba79d\" has unexpected contents.");
apply_patch_space(26214400) || abort("E3006: Not enough free space on /cache to apply patches.");
if (range_sha1("/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/system", "748,1,144,145,331,32686,32687,32693,32694,32695,32696,32706,32707,32724,32725,32726,32727,32754,32755,32756,32757,32758,32759,32760,32761,32762,32763,32764,32765,32766,32767,32768,32770,32913,32914,48227,48228,57670,57671,62701,62702,62846,62847,62977,62978,63132,63133,63262,63263,63409,63410,63702,63703,63998,63999,64305,64306,64449,64450,65004,65005,65326,65327,65478,65479,65524,65525,65536,65537,78832,85232,98304,98306,98449,98450,109240,110989,131072,131073,163840,163842,163985,163986,175037,175038,175039,175040,175044,175045,175046,175047,175182,175183,175190,175191,175192,175193,175240,175241,175327,175328,175329,175330,175430,175431,175436,175437,175438,175439,175458,175459,175460,175461,175559,175560,175561,175562,177515,177516,178028,178029,196608,196609,228962,228963,229239,229240,229298,229299,229344,229345,229372,229373,229376,229378,229521,229522,230466,230467,231787,231857,232353,232355,232356,232357,232358,232384,232385,232386,232387,232388,232389,232390,232391,232392,232395,232396,232399,232400,232403,232404,232407,232408,232411,232412,232415,232416,232419,232420,232423,232424,232427,232428,232431,232432,232435,232436,232439,232440,232443,232444,232447,232448,232451,232452,232455,232456,232459,232460,232463,232464,232467,232468,232471,232472,232475,232476,232479,232480,232487,232488,232491,232492,232495,232496,232499,232500,232503,232504,232507,232508,232511,232512,232515,232516,232519,232520,232523,232524,232527,232528,232531,232532,232535,232536,232539,232540,232543,232544,232545,232546,232547,232548,237352,237353,242566,242567,247368,247369,252400,252401,257276,257277,261707,261708,261862,261863,262012,262013,262144,262145,294801,294802,294858,294859,294912,294914,295057,295058,327429,327430,327599,327600,327646,327647,327674,327675,327680,327681,360364,360365,360392,360393,360448,360449,366099,366100,366156,366157,366830,366831,366836,366837,366838,366839,367339,367340,367347,367348,367354,367356,376584,376585,376598,376599,393160,393161,393162,393163,393216,393217,411576,411579,411584,411585,411612,411613,425984,425985,450308,450309,450371,450372,450373,450374,450375,450376,450812,450813,451248,451249,452754,452755,452926,452927,452942,452943,458211,458212,458213,458214,458251,458252,458253,458254,458266,458267,458271,458272,458278,458279,458280,458281,458282,458283,458284,458285,458299,458300,458544,458545,458546,458547,458548,458549,458553,458554,458555,458556,458568,458569,458576,458577,458578,458579,458620,458621,458663,458664,458665,458666,458674,458675,458703,458704,458705,458706,458707,458708,458723,458724,458725,458726,458727,458728,458729,458730,458731,458732,458736,458737,458738,458739,458740,458741,458742,458743,458744,458745,458746,458747,458752,458753,479245,479246,479247,479248,479257,479258,479262,479263,479264,479265,479280,479281,485057,485058,485086,485087,485088,485089,485209,485210,485214,485215,485216,485217,485229,485230,485258,485259,485260,485261,485350,485351,485355,485356,485357,485358,485403,485404,487281,487282,487283,487284,487285,487286,487287,487288,489893,489894,489910,489911,489912,489913,489925,489926,489927,489928,489929,489977,489978,489979,489980,489981,491513,491514,491515,491516,491520,491521,515360,515361,520948,520949,520956,520957,520982,520983,521058,521059,521060,521061,521073,521074,521198,521199,521200,521201,521202,521203,521207,521208,521209,521210,521279,521280,521313,521314,521315,521316,521328,521329,521446,521447,521448,521449,522111,522112,522113,522114,522115,522116,524247,524248,524258,524259,524260,524261,524284,524285,524288,524289,528441,528442,528443,528444,531259,531260,531274,531275,531276,531277,531287,531288,531297,531298,531299,531300,531658,531659,531846,531847,531848,531849,532024,532025,532034,532035,532036,532037,532094,532095,532104,532105,532106,532107,532519,532520,532588,532589,532590,532591,532973,532974,540841,540842,540843,540844,541623,541624,541670,541671,541672,541673,541715,541716,544835,544836,544837,544838,544847,544848,544849,544850,544857,544858,544867,544868,544886,544887,544890,544891,544894,544895,544896,544897,544916,544917,544932,544933,544952,544953,544954,544955,544956,544957,544972,544973,550884,550885,550896,550897,551052,551053,551056,551057,551754,551755,551756,551757,551766,551768,551769,551770,551790,551791,551794,551795,553166,553206,557053,557054,557056,557057,557552,557553,566436,566438,566439,566440,566441,566442,566443,566444,566454,566455,566456,566457,566478,566479,566488,566489,566490,566491,566506,566507,566663,566664,566665,566666,566667,566668,566669,566670,566671,566672,566676,566677,566678,566679,566695,566696,566703,566704,566705,566706,566715,566716,566729,566730,566731,566732,566748,566749,566806,566807,566808,566809,566841,566842,566846,566847,566851,566852,566853,566854,566863,566864,567527,567528,567529,567530,567531,567532,567533,567534,567544,567545,567556,567557,567558,567559,567560,567561,567562,567563,567580,567581,567586,567587,567588,567589,567628,567629,567630,567631,567632,567633,567634,567635,567640,567641,567642,567643,567660,567661,567662,567663,567664,567665,568423,568425,568519,570378,571914,572998,573005,577536") == "391e159a2ec3bf56620f17c8b098c380d350ee1e" || block_image_verify("/dev/block/platform/mtk-msdc.0/11230000.msdc0/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/platform/mtk-msdc.0/11230000.msdc0/by-name/system");
ifelse (block_image_recover("/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/system", "748,1,144,145,331,32686,32687,32693,32694,32695,32696,32706,32707,32724,32725,32726,32727,32754,32755,32756,32757,32758,32759,32760,32761,32762,32763,32764,32765,32766,32767,32768,32770,32913,32914,48227,48228,57670,57671,62701,62702,62846,62847,62977,62978,63132,63133,63262,63263,63409,63410,63702,63703,63998,63999,64305,64306,64449,64450,65004,65005,65326,65327,65478,65479,65524,65525,65536,65537,78832,85232,98304,98306,98449,98450,109240,110989,131072,131073,163840,163842,163985,163986,175037,175038,175039,175040,175044,175045,175046,175047,175182,175183,175190,175191,175192,175193,175240,175241,175327,175328,175329,175330,175430,175431,175436,175437,175438,175439,175458,175459,175460,175461,175559,175560,175561,175562,177515,177516,178028,178029,196608,196609,228962,228963,229239,229240,229298,229299,229344,229345,229372,229373,229376,229378,229521,229522,230466,230467,231787,231857,232353,232355,232356,232357,232358,232384,232385,232386,232387,232388,232389,232390,232391,232392,232395,232396,232399,232400,232403,232404,232407,232408,232411,232412,232415,232416,232419,232420,232423,232424,232427,232428,232431,232432,232435,232436,232439,232440,232443,232444,232447,232448,232451,232452,232455,232456,232459,232460,232463,232464,232467,232468,232471,232472,232475,232476,232479,232480,232487,232488,232491,232492,232495,232496,232499,232500,232503,232504,232507,232508,232511,232512,232515,232516,232519,232520,232523,232524,232527,232528,232531,232532,232535,232536,232539,232540,232543,232544,232545,232546,232547,232548,237352,237353,242566,242567,247368,247369,252400,252401,257276,257277,261707,261708,261862,261863,262012,262013,262144,262145,294801,294802,294858,294859,294912,294914,295057,295058,327429,327430,327599,327600,327646,327647,327674,327675,327680,327681,360364,360365,360392,360393,360448,360449,366099,366100,366156,366157,366830,366831,366836,366837,366838,366839,367339,367340,367347,367348,367354,367356,376584,376585,376598,376599,393160,393161,393162,393163,393216,393217,411576,411579,411584,411585,411612,411613,425984,425985,450308,450309,450371,450372,450373,450374,450375,450376,450812,450813,451248,451249,452754,452755,452926,452927,452942,452943,458211,458212,458213,458214,458251,458252,458253,458254,458266,458267,458271,458272,458278,458279,458280,458281,458282,458283,458284,458285,458299,458300,458544,458545,458546,458547,458548,458549,458553,458554,458555,458556,458568,458569,458576,458577,458578,458579,458620,458621,458663,458664,458665,458666,458674,458675,458703,458704,458705,458706,458707,458708,458723,458724,458725,458726,458727,458728,458729,458730,458731,458732,458736,458737,458738,458739,458740,458741,458742,458743,458744,458745,458746,458747,458752,458753,479245,479246,479247,479248,479257,479258,479262,479263,479264,479265,479280,479281,485057,485058,485086,485087,485088,485089,485209,485210,485214,485215,485216,485217,485229,485230,485258,485259,485260,485261,485350,485351,485355,485356,485357,485358,485403,485404,487281,487282,487283,487284,487285,487286,487287,487288,489893,489894,489910,489911,489912,489913,489925,489926,489927,489928,489929,489977,489978,489979,489980,489981,491513,491514,491515,491516,491520,491521,515360,515361,520948,520949,520956,520957,520982,520983,521058,521059,521060,521061,521073,521074,521198,521199,521200,521201,521202,521203,521207,521208,521209,521210,521279,521280,521313,521314,521315,521316,521328,521329,521446,521447,521448,521449,522111,522112,522113,522114,522115,522116,524247,524248,524258,524259,524260,524261,524284,524285,524288,524289,528441,528442,528443,528444,531259,531260,531274,531275,531276,531277,531287,531288,531297,531298,531299,531300,531658,531659,531846,531847,531848,531849,532024,532025,532034,532035,532036,532037,532094,532095,532104,532105,532106,532107,532519,532520,532588,532589,532590,532591,532973,532974,540841,540842,540843,540844,541623,541624,541670,541671,541672,541673,541715,541716,544835,544836,544837,544838,544847,544848,544849,544850,544857,544858,544867,544868,544886,544887,544890,544891,544894,544895,544896,544897,544916,544917,544932,544933,544952,544953,544954,544955,544956,544957,544972,544973,550884,550885,550896,550897,551052,551053,551056,551057,551754,551755,551756,551757,551766,551768,551769,551770,551790,551791,551794,551795,553166,553206,557053,557054,557056,557057,557552,557553,566436,566438,566439,566440,566441,566442,566443,566444,566454,566455,566456,566457,566478,566479,566488,566489,566490,566491,566506,566507,566663,566664,566665,566666,566667,566668,566669,566670,566671,566672,566676,566677,566678,566679,566695,566696,566703,566704,566705,566706,566715,566716,566729,566730,566731,566732,566748,566749,566806,566807,566808,566809,566841,566842,566846,566847,566851,566852,566853,566854,566863,566864,567527,567528,567529,567530,567531,567532,567533,567534,567544,567545,567556,567557,567558,567559,567560,567561,567562,567563,567580,567581,567586,567587,567588,567589,567628,567629,567630,567631,567632,567633,567634,567635,567640,567641,567642,567643,567660,567661,567662,567663,567664,567665,568423,568425,568519,570378,571914,572998,573005,577536") && block_image_verify("/dev/block/platform/mtk-msdc.0/11230000.msdc0/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;

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

ui_print("Patching system image after verification.");
show_progress(0.900000, 0);
block_image_update("/dev/block/platform/mtk-msdc.0/11230000.msdc0/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 boot image...");
show_progress(0.100000, 10);
apply_patch("EMMC:/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot:8634624:940206e4b1ecdfdc23d4b8ea601b1c1d8e6bca8c:8634624:87328b06778a8369f2fc401bd043c8db1cbba79d",
            "-", 87328b06778a8369f2fc401bd043c8db1cbba79d, 8634624,
            940206e4b1ecdfdc23d4b8ea601b1c1d8e6bca8c,
            package_extract_file("patch/boot.img.p")) ||
    abort("E3008: Failed to apply patch to EMMC:/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/boot:8634624:940206e4b1ecdfdc23d4b8ea601b1c1d8e6bca8c:8634624:87328b06778a8369f2fc401bd043c8db1cbba79d");
show_mtupdate_stage("/cache/recovery/last_mtupdate_stage");
ifelse (
less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "3") ,
(
if less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "2") then

ui_print("start to update alt loader image");
package_extract_file("trustzone.bin", "/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/tee2");
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "2");
endif;

switch_active("tee1", "tee2");
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "3");
),
ui_print("alt loder images are already updated");
);
ifelse (
less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "5") ,
(
if less_than_int(get_mtupdate_stage("/cache/recovery/last_mtupdate_stage"), "4") then

ui_print("start to update main loader image");
package_extract_file("trustzone.bin", "/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/tee1");
set_mtupdate_stage("/cache/recovery/last_mtupdate_stage", "4");
endif;

switch_active("tee2", "tee1");
),
ui_print("main loader images are already updated");
);
delete("/cache/recovery/last_mtupdate_stage");
set_progress(1.000000);
