set_progress(0.0);
ui_print("");
ui_print("Welcome to Snapdragon tools");

set_progress(0.1);
ui_print("Unpacking needed tools...");
package_extract_dir("script", "/tmp/aroma");
set_perm(0, 0, 0777, "/tmp/aroma/busybox");
set_perm(0, 0, 0777, "/tmp/aroma/magiskboot");
set_perm(0, 0, 0777, "/tmp/aroma/dtc");
set_perm(0, 0, 0777, "/tmp/aroma/dtp");
set_perm(0, 0, 0777, "/tmp/aroma/main.sh");
set_perm(0, 0, 0777, "/tmp/aroma/dtb_MSM8998.sh");
set_perm(0, 0, 0777, "/tmp/aroma/dtb_MSM8953.sh");
set_perm(0, 0, 0777, "/tmp/aroma/dtb_SDM660.sh");
set_perm(0, 0, 0777, "/tmp/aroma/common.sh");
set_perm(0, 0, 0777, "/tmp/aroma/clean_up.sh");
set_perm(0, 0, 0777, "/tmp/aroma/overclock.prop");
set_perm(0, 0, 0777, "/tmp/aroma/restore.prop");
set_perm(0, 0, 0777, "/tmp/aroma/sdm660.prop");

set_progress(0.2);
ui_print("Getting current boot image...");
run_program("/tmp/aroma/busybox", "dd", "if=/dev/block/bootdevice/by-name/boot", "of=/tmp/aroma/boot.img");

ui_print("Unpacking boot image using magiskboot...");
#magiskboot doesn't support select output dir, so dangerous
run_program("/tmp/aroma/magiskboot", "unpack", "/tmp/aroma/boot.img");

set_progress(0.3);

set_progress(0.4);

set_progress(0.5);
ui_print("Patching boot...");
run_program("/tmp/aroma/main.sh");
ui_print("Patched done.");

set_progress(0.7);
if
    file_getprop("/tmp/aroma/status.prop","error_status") == "1"
then
    ui_print("Repacking boot...");
    run_program("/tmp/aroma/magiskboot", "repack", "/tmp/aroma/boot.img");
    ui_print("Flashing new boot");
    run_program("/tmp/aroma/busybox", "dd", "if=new-boot.img", "of=/dev/block/bootdevice/by-name/boot");
endif;
if
    file_getprop("/tmp/aroma/status.prop","error_status") == "2"
then
    ui_print("Something goes wrong, please contact me with your log file /tmp/dtp_log.");
endif;

set_progress(0.9);
set_progress(1.0);
ui_print("Cleanup...");
run_program("/tmp/aroma/magiskboot", "cleanup");
run_program("/tmp/aroma/clean_up.sh");
ui_print("Finished.");
