ui_print("start......");
set_progress("1");
show_progress("1","170");
ui_print("update fastboot......");
package_extract_file("fastboot.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/fastboot");
ui_print("update bootargs......");
package_extract_file("bootargs.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/bootargs");
ui_print("update recovery......");
package_extract_file("recovery.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/recovery");
ui_print("update baseparam......");
package_extract_file("baseparam.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/baseparam");
ui_print("update fastplay......");
#format("raw", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/fastplay", "0", "fastplay");
#package_extract_file("fastplay.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/fastplay");
ui_print("update logo......");
package_extract_file("logo.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/logo");
ui_print("update boot.....");
package_extract_file("boot.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/kernel");
ui_print("update pq_param.....");
package_extract_file("pq_param.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/pqparam");
ui_print("update trustedcore......");
package_extract_file("trustedcore.img", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/trustedcore");
ui_print("update system......");
format("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/system", "/system");
package_extract_dir("system", "/system");
set_perm_recursive(0, 2000, 06755, 06755, "/system/bin");
set_perm_recursive(0, 2000, 06755, 06755, "/system/*");
set_perm_recursive(0, 2000, 06755, 06755, "/system/xbin");
set_perm_recursive(0, 2000, 06755, 06755, "/system/etc");
ifelse(isuserversion(),
    ui_print(" ----user version----- "),
    ui_print(" --------- ");
    set_perm(0, 2000, 06755, "/system/xbin/su");
);

ui_print("update userdata......");
format("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/userdata", "0", "/data");
ifelse(isselinux_disabled(),
		ui_print("update userdata with dir ......");
		mount("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/userdata", "/data");
		package_extract_dir("userdata", "/data");
		unmount("/data"),
		ui_print("update userdata with image ......");
		package_extract_file("userdata.img", "/tmp/userdata.ext4");
		write_ext4sp_img("/tmp/userdata.ext4","/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/userdata");
		delete("/tmp/userdata.ext4");
);
delete("/data/property/persist.sys.firstboot.flag");
#ui_print("update private......");
#format("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/private", "0", "/private");
ui_print("update securestore......");
format("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/securestore", "0", "/securestore");
symlink("toybox", "/system/bin/logname");
symlink("toybox", "/system/bin/modinfo");
symlink("toybox", "/system/bin/clear");
symlink("toybox", "/system/bin/cpio");
symlink("toybox", "/system/bin/truncate");
symlink("toybox", "/system/bin/bzcat");
symlink("toybox", "/system/bin/getprop");
symlink("toybox", "/system/bin/df");
symlink("toybox", "/system/bin/date");
symlink("toybox", "/system/bin/xxd");
symlink("toybox", "/system/bin/more");
symlink("toybox", "/system/bin/realpath");
symlink("toybox", "/system/bin/setprop");
symlink("iptables", "/system/bin/iptables-restore");
symlink("app_process32", "/system/bin/app_process");
symlink("toybox", "/system/bin/env");
symlink("toybox", "/system/bin/timeout");
symlink("toybox", "/system/bin/umount");
symlink("toybox", "/system/bin/sha1sum");
symlink("toybox", "/system/bin/base64");
symlink("toybox", "/system/bin/pmap");
symlink("toybox", "/system/bin/sort");
symlink("toybox", "/system/bin/od");
symlink("toybox", "/system/bin/tail");
symlink("toybox", "/system/bin/fallocate");
symlink("toybox", "/system/bin/expr");
symlink("toybox", "/system/bin/echo");
symlink("toybox", "/system/bin/dos2unix");
symlink("toybox", "/system/bin/md5sum");
symlink("toybox", "/system/bin/seq");
symlink("toybox", "/system/bin/expand");
symlink("toybox", "/system/bin/split");
symlink("toybox", "/system/bin/chgrp");
symlink("ip6tables", "/system/bin/ip6tables-restore");
symlink("toybox", "/system/bin/vmstat");
symlink("toybox", "/system/bin/insmod");
symlink("toybox", "/system/bin/sync");
symlink("toybox", "/system/bin/mkswap");
symlink("toybox", "/system/bin/ulimit");
symlink("toybox", "/system/bin/renice");
symlink("toybox", "/system/bin/lsmod");
symlink("toybox", "/system/bin/rmdir");
symlink("toybox", "/system/bin/ln");
symlink("toybox", "/system/bin/basename");
symlink("toybox", "/system/bin/strings");
symlink("toolbox", "/system/bin/log");
symlink("toybox", "/system/bin/blockdev");
symlink("toybox", "/system/bin/groups");
symlink("toybox", "/system/bin/setsid");
symlink("toybox", "/system/bin/chroot");
symlink("toybox", "/system/bin/pwd");
symlink("toybox", "/system/bin/pkill");
symlink("toybox", "/system/bin/xargs");
symlink("toybox", "/system/bin/find");
symlink("toolbox", "/system/bin/stop");
symlink("dalvikvm32", "/system/bin/dalvikvm");
symlink("iptables", "/system/bin/iptables-save");
symlink("toybox", "/system/bin/true");
symlink("toybox", "/system/bin/getenforce");
symlink("toybox", "/system/bin/load_policy");
symlink("toybox", "/system/bin/kill");
symlink("grep", "/system/bin/fgrep");
symlink("toybox", "/system/bin/hostname");
symlink("toybox", "/system/bin/uname");
symlink("toybox", "/system/bin/tee");
symlink("toybox", "/system/bin/acpi");
symlink("toybox", "/system/bin/tr");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/sendevent");
symlink("toybox", "/system/bin/patch");
symlink("toybox", "/system/bin/pgrep");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/prlimit");
symlink("toybox", "/system/bin/cal");
symlink("toybox", "/system/bin/killall");
symlink("toolbox", "/system/bin/start");
symlink("toybox", "/system/bin/flock");
symlink("toybox", "/system/bin/mountpoint");
symlink("toybox", "/system/bin/iorenice");
symlink("toybox", "/system/bin/printenv");
symlink("toybox", "/system/bin/nl");
symlink("toybox", "/system/bin/unix2dos");
symlink("toybox", "/system/bin/rmmod");
symlink("toybox", "/system/bin/paste");
symlink("ip6tables", "/system/bin/ip6tables-save");
symlink("toybox", "/system/bin/mkdir");
symlink("toybox", "/system/bin/comm");
symlink("toybox", "/system/bin/chown");
symlink("toybox", "/system/bin/rm");
symlink("toybox", "/system/bin/mktemp");
symlink("toybox", "/system/bin/sleep");
symlink("toybox", "/system/bin/time");
symlink("toybox", "/system/bin/setenforce");
symlink("toybox", "/system/bin/dmesg");
symlink("toybox", "/system/bin/tac");
symlink("toybox", "/system/bin/mount");
symlink("toybox", "/system/bin/ifconfig");
symlink("toybox", "/system/bin/du");
symlink("toybox", "/system/bin/cp");
symlink("toybox", "/system/bin/swapon");
symlink("toybox", "/system/bin/losetup");
symlink("toybox", "/system/bin/mv");
symlink("toybox", "/system/bin/cksum");
symlink("toybox", "/system/bin/tar");
symlink("grep", "/system/bin/egrep");
symlink("toybox", "/system/bin/cut");
symlink("toybox", "/system/bin/ionice");
symlink("toybox", "/system/bin/head");
symlink("toybox", "/system/bin/route");
symlink("toybox", "/system/bin/printf");
symlink("toybox", "/system/bin/runcon");
symlink("toybox", "/system/bin/lsof");
symlink("toybox", "/system/bin/taskset");
symlink("toybox", "/system/bin/readlink");
symlink("toybox", "/system/bin/nohup");
symlink("toybox", "/system/bin/uptime");
symlink("toybox", "/system/bin/tty");
symlink("toybox", "/system/bin/cmp");
symlink("toybox", "/system/bin/wc");
symlink("toybox", "/system/bin/which");
symlink("toybox", "/system/bin/whoami");
symlink("toybox", "/system/bin/dirname");
symlink("toolbox", "/system/bin/nandread");
symlink("toybox", "/system/bin/chcon");
symlink("toybox", "/system/bin/hwclock");
symlink("toybox", "/system/bin/id");
symlink("toybox", "/system/bin/pidof");
symlink("toolbox", "/system/bin/top");
symlink("toybox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toybox", "/system/bin/cat");
symlink("toolbox", "/system/bin/iftop");
symlink("toybox", "/system/bin/mknod");
symlink("toybox", "/system/bin/swapoff");
symlink("toybox", "/system/bin/lsusb");
symlink("toybox", "/system/bin/sed");
symlink("toybox", "/system/bin/free");
symlink("toybox", "/system/bin/sysctl");
symlink("toolbox", "/system/bin/dd");
symlink("toybox", "/system/bin/touch");
symlink("toybox", "/system/bin/stat");
symlink("toybox", "/system/bin/yes");
symlink("toybox", "/system/bin/ls");
symlink("toybox", "/system/bin/false");
symlink("toybox", "/system/bin/uniq");
symlink("toybox", "/system/bin/restorecon");
symlink("toybox", "/system/bin/nice");
symlink("toybox", "/system/bin/inotifyd");
symlink("toybox", "/system/bin/usleep");
symlink("toybox", "/system/bin/chmod");
symlink("../bin/busybox", "/system/xbin/ifconfig");
symlink("../bin/busybox", "/system/xbin/route");
symlink("../bin/busybox", "/system/xbin/ip");
symlink("/sdcard/kast/movies", "/system/usr/share/kast/web_app/movies");
symlink("/sdcard/kast/backgrounds", "/system/usr/share/kast/web_app/backgrounds");
symlink("/sdcard/kast/logos", "/system/usr/share/kast/web_app/logos");
symlink("/sdcard/kast/watermarks", "/system/usr/share/kast/web_app/watermarks");
symlink("/system/lib/libdefcontainer_jni.so", "/system/priv-app/DefaultContainerService/lib/arm/libdefcontainer_jni.so");
symlink("/system/lib/libandroid_runtime.so", "/system/priv-app/Settings/lib/arm/libandroid_runtime.so");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("/system/lib/libsysmanagerservice_jni.so", "/system/app/HiMusic/lib/arm/libsysmanagerservice_jni.so");
symlink("/system/lib/libandroid_runtime.so", "/system/app/HiMusic/lib/arm/libandroid_runtime.so");
symlink("/system/lib/libandroid_runtime.so", "/system/app/HiVideoPlayer/lib/arm/libandroid_runtime.so");
symlink("/system/lib/liboffscreenobject.so", "/system/app/HiGalleryL/lib/arm/liboffscreenobject.so");
symlink("/system/lib/libgallerycore.so", "/system/app/HiGalleryL/lib/arm/libgallerycore.so");
symlink("/system/lib/libttscompat.so", "/system/app/PicoTts/lib/arm/libttscompat.so");
symlink("/system/lib/libttspico.so", "/system/app/PicoTts/lib/arm/libttspico.so");
symlink("/system/lib/libandroid_runtime.so", "/system/app/HiPQTools/lib/arm/libandroid_runtime.so");
symlink("/system/lib/libprintspooler_jni.so", "/system/app/PrintSpooler/lib/arm/libprintspooler_jni.so");
symlink("/system/lib/libjni_eglfence.so", "/system/app/Gallery2/lib/arm/libjni_eglfence.so");
symlink("/system/lib/libjni_filtershow_filters.so", "/system/app/Gallery2/lib/arm/libjni_filtershow_filters.so");
symlink("/system/lib/libjni_jpegstream.so", "/system/app/Gallery2/lib/arm/libjni_jpegstream.so");
symlink("/system/lib/libjni_pacprocessor.so", "/system/app/PacProcessor/lib/arm/libjni_pacprocessor.so");
symlink("/system/lib/libandroid_runtime.so", "/system/app/HiFileManager/lib/arm/libandroid_runtime.so");
symlink("/system/lib/libbluetooth_jni.so", "/system/app/Bluetooth/lib/arm/libbluetooth_jni.so");
symlink("/system/lib/libjni_remoteime.so", "/system/app/HiPinyinIME/lib/arm/libjni_remoteime.so");
symlink("/system/lib/libandroid_runtime.so", "/system/app/HiGallery/lib/arm/libandroid_runtime.so");
symlink("/system/lib/libjni_tinyplanet.so", "/system/app/Camera2/lib/arm/libjni_tinyplanet.so");
symlink("/system/lib/libjni_jpegutil.so", "/system/app/Camera2/lib/arm/libjni_jpegutil.so");
symlink("/system/lib/libsink_jni.so", "/system/app/Miracast/lib/arm/libsink_jni.so");
ui_print("set system symlink ok.....");  unmount("/system"); 
ui_print("set data symlink ok.....");  unmount("/data"); 
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/f9830000.himciv200.MMC/by-name/cache", "0", "/cache");
);
ui_print("update ok.....");
