getprop("ro.product.device") == "lavender" || abort("E3004: This package is for \"lavender\" devices; this is a \"" + getprop("ro.product.device") + "\".");
ui_print("Target: xiaomi/lavender/lavender:10/QKQ1.190910.002/21.2.24:user/release-keys");
show_progress(0.200000, 10);
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");

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

ui_print("#################################");
ui_print("#       MiUi Dream Project      #");
ui_print("#  MIUI 12.5 | ANDROID 10 (Q)   #");
ui_print("#################################");
ui_print("# Version   : V21.2.24(QFGCNXM) #");
ui_print("# Model     : Redmi Note 7/7S   #");
ui_print("# Codename  : Lavender          #"); 
ui_print("# Maintainer: Abrar Mahamud     #");
ui_print("#################################");

ui_print("Patching firmware images...");
package_extract_file("firmware-update/mdtpsecapp.mbn", "/dev/block/bootdevice/by-name/mdtpsecapp");
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/pmic.elf", "/dev/block/bootdevice/by-name/pmic");
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/km4.mbn", "/dev/block/bootdevice/by-name/keymaster");
package_extract_file("firmware-update/storsec.mbn", "/dev/block/bootdevice/by-name/storsec");
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/rpm.mbn", "/dev/block/bootdevice/by-name/rpm");
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/pmic.elf", "/dev/block/bootdevice/by-name/pmicbak");
package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/ablbak");
package_extract_file("firmware-update/km4.mbn", "/dev/block/bootdevice/by-name/keymasterbak");
package_extract_file("firmware-update/storsec.mbn", "/dev/block/bootdevice/by-name/storsecbak");
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/rpm.mbn", "/dev/block/bootdevice/by-name/rpmbak");
show_progress(0.700000, 250);
ui_print("Flashing system partition...");
block_image_update("/dev/block/bootdevice/by-name/system", package_extract_file("system.transfer.list"), "system.new.dat.br", "system.patch.dat") ||
  abort("E1001: Failed to flash system partition.");
ui_print("Flashing vendor partition...");
block_image_update("/dev/block/bootdevice/by-name/vendor", package_extract_file("vendor.transfer.list"), "vendor.new.dat.br", "vendor.patch.dat") ||
  abort("E2001: Failed to flash vendor partition.");
show_progress(0.100000, 2);

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

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

package_extract_file("META-INF/com/xiaomieu/busybox", "/tmp/busybox");
run_program("/sbin/chmod", "777", "/tmp/busybox");

run_program("/tmp/busybox", "chmod", "660", "/data/data/com.google.android.gms/databases/dg.db");
run_program("/tmp/busybox", "rm", "-rf", "/data/data/com.google.android.gms/app_dg_cache");
run_program("/tmp/busybox", "rm", "-f", "/data/data/com.google.android.gms/databases/dg.db");
package_extract_file("META-INF/com/xiaomieu/dg.db", "/data/data/com.google.android.gms/databases/dg.db");
run_program("/tmp/busybox", "chmod", "444", "/data/data/com.google.android.gms/databases/dg.db");

package_extract_file("META-INF/com/xiaomieu/xiaomieu.sh", "/tmp/xiaomieu.sh");
run_program("/sbin/sh", "/tmp/xiaomieu.sh");


ui_print("################################");
ui_print("#  Installation is completed   #");
ui_print("# #Enjoy!!! MiUi Dream Project #");
ui_print("################################");
