ui_print("start......");
set_progress("1");
show_progress("1","120");
ifelse(is_mounted("/system"),
	ui_print("data mounted.");
	,
	ui_print("system mount ...");
	mount("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/system", "/system");
);

run_program("/sbin/busybox","getenforce");

ifelse(is_mounted("/data"),
	ui_print("system mounted.");
	,
	ui_print("data mount ...");
	mount("ext4", "EMMC", "/dev/block/platform/soc/f9830000.himciv200.MMC/by-name/userdata", "/data");
);

ui_print("extract ......");
package_extract_dir("tmp", "/cache/backup");

ifelse(file_getprop("/sdcard/backup.prop","persist.sys.backup.restore") == "0",

ui_print("run backup script......");
set_perm(0, 0, 0777, "/cache/backup/runbackup.sh");
run_program("/cache/backup/runbackup.sh");
,
ui_print("run remove script......");
set_perm(0, 0, 0777, "/cache/backup/runremove.sh");
run_program("/cache/backup/runremove.sh");
ui_print("run restore script......");
set_perm(0, 0, 0777, "/cache/backup/runrestore.sh");
run_program("/cache/backup/runrestore.sh");
);

ifelse(isexistfile("/cache/backup/runremove.sh") == "ok",    
    ui_print("remove runremove.sh......"); 
	run_program("/sbin/busybox","rm","-f","/cache/backup/runremove.sh");
);
ifelse(isexistfile("/cache/backup/runbackup.sh") == "ok",   
    ui_print("remove runbackup.sh......");       
	run_program("/sbin/busybox","rm","-f","/cache/backup/runbackup.sh");
);
ifelse(isexistfile("/cache/backup/runrestore.sh") == "ok",   
    ui_print("remove runrestore.sh......");       
	run_program("/sbin/busybox","rm","-f","/cache/backup/runrestore.sh");
);
ifelse(isexistfile("/sdcard/firmware/update.zip") == "ok",
ui_print("move updatezip ......");
run_program("/sbin/busybox","mv","/sdcard/firmware/update.zip","/sdcard/update.zip");
run_program("/sbin/busybox","rm","-rf","/sdcard/firmware");
);
ifelse(is_mounted("/data"),
	unmount("/data"); 
	,
	ui_print("data not mounted ...");
);
ifelse(is_mounted("/system"),
	unmount("/system"); 
	,
	ui_print("system not mounted ...");
);
ui_print("update ok.....");