ui_print("start......");
open_led();
set_progress("1");
show_progress("1","25");
ui_print("update fastboot......");
ifelse(getprop("persist.sys.packagetype.qfp") == "true", package_extract_file("fastboot-qfp.img", "/dev/block/platform/soc/by-name/fastboot"),
        package_extract_file("fastboot.img", "/dev/block/platform/soc/by-name/fastboot"));
ui_print("update recovery......");
package_extract_file("recovery.img", "/dev/block/platform/soc/by-name/recovery");
ui_print("update logo......");
package_extract_file("logo.img", "/dev/block/platform/soc/by-name/logo");
ui_print("update boot.....");
package_extract_file("boot.img", "/dev/block/platform/soc/by-name/kernel");
ui_print("update system......");
format("ext4", "EMMC", "/dev/block/platform/soc/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/platform/soc/by-name/system", "/system");
package_extract_dir("system", "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc");
ui_print("update userdata......");
format("ext4", "EMMC", "/dev/block/platform/soc/by-name/userdata", "0", "/data");
mount("ext4", "EMMC", "/dev/block/platform/soc/by-name/userdata", "/data");
package_extract_dir("userdata", "/data");
delete("/data/property/persist.sys.firstboot.flag");
delete("/data/property/persist.sys.qb.flag");
unmount("/data");
ui_print("format private......");
format("ext4", "EMMC", "/dev/block/platform/soc/by-name/private", "0", "/private");
ifelse(format_ctc()=="true",
  ui_print("format ctc......");
  format("ext4", "EMMC", "/dev/block/platform/soc/by-name/ctc", "0", "/ctc");
  mount("ext4", "EMMC", "/dev/block/platform/soc/by-name/ctc", "/ctc");
  package_extract_dir("ctc", "/ctc"),
  ui_print(".........."));
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/cp");
symlink("toolbox", "/system/bin/load_policy");
symlink("toolbox", "/system/bin/r");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/clear");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/runcon");
symlink("toolbox", "/system/bin/getsebool");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/grep");
symlink("toolbox", "/system/bin/du");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/getenforce");
symlink("toolbox", "/system/bin/restorecon");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/swapoff");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/readlink");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/sleep");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/swapon");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/mkswap");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/wipe");
symlink("toolbox", "/system/bin/chcon");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/setenforce");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/setsebool");
symlink("toolbox", "/system/bin/date");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("libGLESv2.so", "/system/lib/libGLESv3.so");
ui_print("set system symlink ok.....");  unmount("/system");
ifelse(isexistupdatepackage(/cache),
ui_print("update.zip in cache......");
delete_recursive("/cache"),
ui_print("format cache......");
unmount("/cache");
format("ext4", "EMMC", "/dev/block/platform/soc/by-name/cache", "0", "/cache");
);
close_led();
ui_print("update ok.....");
