ui_print(" ");
ui_print("Installing Besonder ROM V1");
ui_print(" ");
ui_print(" - formatting /system");
unmount("/system");
format("ext4", "EMMC", "/dev/block/mmcblk0p9", "0", "/system");
run_program("/sbin/mount", "/system");
ui_print(" - extracting installation files");
package_extract_dir("setup", "/tmp");
set_perm(0, 0, 0755, "/tmp/setfacl");
set_perm(0, 0, 0644, "/tmp/permissions.acl");
ui_print(" - extracting ROM files");
package_extract_dir("system", "/system");
ui_print(" - symlinking files");
symlink("mksh", "/system/bin/sh");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("toolbox", "/system/bin/cat", "/system/bin/chcon", "/system/bin/chmod", "/system/bin/chown", "/system/bin/clear", "/system/bin/cmp", "/system/bin/cp", "/system/bin/date", "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg", "/system/bin/du", "/system/bin/freshsebool", "/system/bin/getenforce", "/system/bin/getevent", "/system/bin/getprop", "/system/bin/getsebool", "/system/bin/grep", "/system/bin/hd", "/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop", "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice", "/system/bin/kill", "/system/bin/ln", "/system/bin/load_policy", "/system/bin/log", "/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof", "/system/bin/md5", "/system/bin/mkdir", "/system/bin/mkswap", "/system/bin/mount", "/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat", "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv", "/system/bin/ps", "/system/bin/readlink", "/system/bin/renice", "/system/bin/restorecon", "/system/bin/rm", "/system/bin/rmdir", "/system/bin/rmmod", "/system/bin/route", "/system/bin/runcon", "/system/bin/schedtop", "/system/bin/sendevent", "/system/bin/setconsole", "/system/bin/setenforce", "/system/bin/setprop", "/system/bin/setsebool", "/system/bin/sleep", "/system/bin/smd", "/system/bin/start", "/system/bin/stop", "/system/bin/swapoff", "/system/bin/swapon", "/system/bin/sync", "/system/bin/top", "/system/bin/touch", "/system/bin/umount", "/system/bin/uptime", "/system/bin/vmstat", "/system/bin/watchprops", "/system/bin/wipe");
symlink("libGLESv2.so", "/system/lib/libGLESv3.so");
ui_print(" - fixing permissions");
run_program("/sbin/sh", "-c", "cd /system && /tmp/setfacl --restore=/tmp/permissions.acl");
ui_print(" - updating status");
run_program("/sbin/sh", "-c", "cd /system && find . -exec touch {} \;");
ui_print(" - tuning file systems");
run_program("/sbin/mount", "/data");
run_program("/sbin/mount", "/cache");
run_program("/sbin/fstrim", "-v", "/system");
run_program("/sbin/fstrim", "-v", "/data");
run_program("/sbin/fstrim", "-v", "/cache");
unmount("/data");
unmount("/cache");
unmount("/system");
ui_print(" ");
ui_print("finished");
run_program("/sbin/busybox", "sync");
