ui_print("CWM Recovery built by xda member : vampirefo");

ui_print("extracting dir /etc...");
package_extract_dir("etc", "/etc");

ui_print("extracting dir /res...");
package_extract_dir("res", "/res");

ui_print("extracting dir /sbin...");
package_extract_dir("sbin", "/sbin");

symlink("recovery", "/sbin/busybox", "/sbin/dedupe", 
        "/sbin/dump_image", "/sbin/edify", "/sbin/erase_image",
        "/sbin/flash_image", "/sbin/minizip", "/sbin/mkyaffs2image", 
        "/sbin/nandroid", "/sbin/reboot", "/sbin/rmount",
        "/sbin/setprop", "/sbin/unyaffs", "/sbin/volume");

symlink("busybox", "/sbin/[", "/sbin/[[",
        "/sbin/ash", "/sbin/awk", "/sbin/base64",
        "/sbin/basename", "/sbin/bbconfig", "/sbin/blkid",
        "/sbin/blockdev", "/sbin/bunzip2", "/sbin/bzcat",
        "/sbin/bzip2", "/sbin/cal", "/sbin/cat",
        "/sbin/catv", "/sbin/chattr", "/sbin/chgrp",
        "/sbin/chmod", "/sbin/chown", "/sbin/chroot",
        "/sbin/cksum", "/sbin/clear", "/sbin/cmp",
        "/sbin/cp", "/sbin/cpio", "/sbin/crond",
        "/sbin/crontab", "/sbin/cut", "/sbin/date",
        "/sbin/dc", "/sbin/dd", "/sbin/depmod",
        "/sbin/devmem", "/sbin/df", "/sbin/diff",
        "/sbin/dirname", "/sbin/dmesg", "/sbin/dos2unix",
        "/sbin/du", "/sbin/echo", "/sbin/egrep",
        "/sbin/env", "/sbin/envdir", "/sbin/expand",
        "/sbin/expr", "/sbin/FALSE", "/sbin/fdisk",
        "/sbin/fgrep", "/sbin/find", "/sbin/fold",
        "/sbin/free", "/sbin/freeramdisk", "/sbin/fsck",
        "/sbin/fuser", "/sbin/getopt", "/sbin/grep",
        "/sbin/groups", "/sbin/gunzip", "/sbin/gzip",
        "/sbin/head", "/sbin/hexdump", "/sbin/id",
        "/sbin/insmod", "/sbin/install", "/sbin/kill",
        "/sbin/killall", "/sbin/killall5", "/sbin/length",
        "/sbin/less", "/sbin/ln", "/sbin/losetup",
        "/sbin/ls", "/sbin/lsattr", "/sbin/lsmod",
        "/sbin/lspci", "/sbin/lsusb", "/sbin/lzcat",
        "/sbin/lzop", "/sbin/lzopcat", "/sbin/makedevs",
        "/sbin/md5sum", "/sbin/mkdir", "/sbin/mkfifo",
        "/sbin/mkfs.ext2", "/sbin/mknod", "/sbin/mkswap",
        "/sbin/mktemp", "/sbin/modinfo", "/sbin/modprobe",
        "/sbin/more", "/sbin/mount", "/sbin/mountpoint",
        "/sbin/mv", "/sbin/nanddump", "/sbin/nandwrite",
        "/sbin/nice", "/sbin/nohup", "/sbin/od",
        "/sbin/patch", "/sbin/pgrep", "/sbin/pidof",
        "/sbin/pkill", "/sbin/powertop", "/sbin/printenv",
        "/sbin/printf", "/sbin/ps", "/sbin/pstree",
        "/sbin/pwd", "/sbin/rdev", "/sbin/readlink",
        "/sbin/realpath", "/sbin/renice", "/sbin/reset",
        "/sbin/resize", "/sbin/rev", "/sbin/rm",
        "/sbin/rmdir", "/sbin/rmmod", "/sbin/run-parts",
        "/sbin/sed", "/sbin/seq", "/sbin/setconsole",
        "/sbin/setserial", "/sbin/setsid","/sbin/sha1sum",
        "/sbin/sha256sum", "/sbin/sha512sum", "/sbin/sleep",
        "/sbin/sort", "/sbin/split", "/sbin/stat", 
        "/sbin/strings", "/sbin/stty", "/sbin/swapoff",
        "/sbin/swapon", "/sbin/sync", "/sbin/sysctl",
        "/sbin/tac", "/sbin/tail","/sbin/tar",
        "/sbin/tee", "/sbin/test", "/sbin/time",
        "/sbin/timeout", "/sbin/top", "/sbin/touch", 
        "/sbin/tr", "/sbin/TRUE", "/sbin/ttysize",
        "/sbin/umount", "/sbin/uname", "/sbin/unexpand",
        "/sbin/uniq", "/sbin/unix2dos", "/sbin/unlzma",
        "/sbin/unlzop", "/sbin/unxz", "/sbin/unzip",
        "/sbin/uptime", "/sbin/usleep", "/sbin/uudecode",
        "/sbin/uuencode", "/sbin/watch", "/sbin/wc",
        "/sbin/which", "/sbin/whoami", "/sbin/xargs",
        "/sbin/xzcat", "/sbin/yes", "/sbin/zcat",
        "/sbin/sh");

ui_print("fixing permissions...");
set_perm_recursive(0, 0, 0755, 0644, "/res");
set_perm_recursive(0, 2000, 0755, 0755, "/sbin");
set_perm(0, 0, 06755, "/sbin/recovery");
set_perm(0, 0, 0644, "/etc/recovery.fstab");

ui_print("complete...");
