#Energy updater script

ui_print("Starting Energy installation... Please Wait! ");

format("MTD", "boot");
format("MTD", "system");
format("MTD", "cache");


if
    file_getprop("/tmp/aroma/wipe.prop","selected.0") == "2"
then
    ui_print("Performing full wipe...");
    format("MTD", "userdata"); 
endif;


mount("MTD", "system", "/system");
mount("MTD", "userdata", "/data");
delete_recursive("/data/dalvik-cache");

show_progress(0.1,0);

ui_print("Detecting whether you have CLK or MAGLDR installed");
package_extract_file("assets/checkboot.sh","/tmp/checkboot.sh");
set_perm(0,0, 0777, "/tmp/checkboot.sh");
run_program("/tmp/checkboot.sh");


if file_getprop("/tmp/boot.prop","clk") == "true"
then
    ui_print("Writing CLK kernel...");
    assert(package_extract_file("kernels/boot.img", "/tmp/boot.img"),
    write_raw_image("/tmp/boot.img", "boot"),
    delete("/tmp/boot.img"));
    package_extract_dir("clk", "/system");

else
    ui_print("Writing MAGLDR kernel...");
    format("MTD", "boot");
    mount("MTD", "boot", "/boot");
    package_extract_dir("kernels/boot", "/boot");
    unmount("/boot");
endif;

show_progress(0.2,0);

if
    file_getprop("/tmp/aroma/install.prop","mode") == "nand"
then
    ui_print("Installing in NAND mode...");
    run_program("/sbin/mkdir", "/system/app");
    run_program("/sbin/mkdir", "/system/framework");
    run_program("/sbin/mkdir", "/data/weather");
    show_progress(0.3,0);
    package_extract_dir("system", "/system");
    package_extract_dir("data", "/data");
    package_extract_dir("sysparts/app_s", "/system/app");
    package_extract_dir("sysparts/framework", "/system/framework");
    package_extract_dir("sysparts/weather", "/data/weather");
    show_progress(0.6,0);
    set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
    set_perm_recursive(1000, 1000, 0771, 0644, "/system/framework");
    set_perm_recursive(1000, 1000, 0771, 0644, "/data/weather");
    symlink("/data/weather","/system/media/weather");
else
    ui_print("Installing in EXT mode...");
    show_progress(0.3,0);
    run_program("/sbin/mkdir", "/sd-ext");
    run_program("/sbin/mount", "-t", "auto", "/dev/block/mmcblk0p2", "/sd-ext");
    delete_recursive("/sd-ext/apps_s");
    delete_recursive("/sd-ext/framework");
    package_extract_dir("system", "/system");
    package_extract_dir("data", "/data");
    package_extract_dir("sysparts", "/sd-ext");
    package_extract_dir("eu", "/system/etc/init.d");
    show_progress(0.6,0);
    set_perm_recursive(1000, 1000, 0771, 0644, "/sd-ext/app_s");
    set_perm_recursive(1000, 1000, 0771, 0644, "/sd-ext/framework");
    set_perm_recursive(1000, 1000, 0771, 0644, "/sd-ext/weather");
    symlink("/sd-ext/app_s","/system/app");
    symlink("/sd-ext/framework","/system/framework");
    symlink("/sd-ext/weather","/system/media/weather");
endif;
     
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
symlink("/proc/calibration", "/system/etc/calibration");

symlink("dumpstate", "/system/bin/dumpcrash");
symlink("/system/bin/bash", "/system/bin/sh");
 
show_progress(0.3,0);
        
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluz");
set_perm(0, 3003, 0755, "/system/bin/ip");
set_perm(0, 3003, 0755, "/system/bin/ipd");
set_perm(0, 3003, 02755, "/system/bin/netcfg");
set_perm(0, 3003, 06755, "/system/bin/netd");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06755, "/system/bin/reboot");
set_perm(0, 2000, 06755, "/system/bin/run-as");
set_perm(0, 0, 0777, "/system/bin/sysrw");
set_perm(0, 0, 0777, "/system/bin/sysro");
set_perm(0, 0, 04755, "/system/bin/bash");

set_perm (0, 2000, 04755, "/system/bin/pppd");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");

set_perm(0, 0, 04755, "/system/etc/ppp/ip-up-vpn");
set_perm(0, 0, 0755, "/system/etc/bluetooth");

set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/input.conf");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/main.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(0, 0, 0644, "/system/etc/bluetooth/a2dp_avrcp.conf");
set_perm(1002, 1002, 0440, "/system/etc/bluetooth/audio.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 0, 0777, 0777, "/system/etc/ppp");

symlink("/system/xbin/su","/system/bin/su");

show_progress(0.2,0);

set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 04755, "/system/xbin/openvpn");

set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");

set_perm(0, 0, 04755, "/system/xbin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/su");

show_progress(0.1,0);
unmount("/system");
unmount("/data");

ui_print("ROM Installation Complete! "); 
