[HD2 Android Q&A, Help & Troubleshooting and Genera] HypoTurtle:
Attached is a zip that should do all the rest.

It needs to be flashed directly following a ROM with the modifications in #1

It makes us of /system/build.prop and /boot_dir, as well as /boot (and sboot if clk booting Native/DirectSD).

Contents of nativesd.sh if you're curious (was contemplating whether to make this (or a derivative thereof) into a binary and bundle it with a recovery):

#!/sbin/sh

## Bootloader check (copy of checksys.sh)
echo "bootloader=MAGLDR" > /tmp/nfo.prop

output=`grep -i "clk" /proc/cmdline`
if [ -n "$output" ]; then
echo "bootloader=cLK" > /tmp/nfo.prop
fi

[COLOR="Red"]###Should remove this haret stuff and treat it as if it's magldr...[/COLOR]
output=`grep -i "haret" /proc/cmdline`
if [ -n "$output" ]; then
echo "bootloader=HaRet" > /tmp/nfo.prop
fi

## Exporting variables
ROM_NAME=` cat /system/build.prop | grep ro.build.display.id | awk '{print $(NF-1)}' | sed 's/\(\[\|\]\)//g' `
type=` cat /system/build.prop | grep ro.build.display.id | awk '{print $(NF)}' | sed 's/\(\[\|\]\)//g' `
bootloader=` cat '/tmp/nfo.prop' | sed 's/bootloader=//g' `

## Ending if bootloader is haret
if $bootloader='HaRet' then
echo 'This does not currently work with HaRet (for now)'
exit 0
fi

## Changing install_type to numbered value
if $type='NAND' then
install_type='1'
fi
if $type='DataOnExt' then
install_type='2'
fi
if $type='NativeSD' then
install_type='3'
fi
if $type='DirectSD' then
install_type='4'
fi

## Copying zImage from /boot_dir if one wasn't added to zip
if [ ! -f "/tmp/zImage" ]; then
cp /boot_dir/zImage/ /tmp/zImage
fi
if [ ! -f "/tmp/zImage" ]; then
cp /boot_dir/initrd.gz/ /tmp/initrd.gz
fi

## Checking if zImage is for 3.0.x
if [ "md5sum /tmp/zImage | cut -d ' ' -f '1'" != "1cb7bcf80845f0178b99f7b9a5f80669" ]
then
rm /tmp/6MB
fi

## Setting up working directory
cp /tmp/initrd.gz /tmp/initrd-$ROM_NAME.gz
mkdir -p /tmp/work
cd /tmp/work

## Unzipping nand kernel
gzip -d -c ../initrd-$ROM_NAME.gz | cpio -i -d
mkdir bin
cp /tmp/busybox bin/busybox
cp /tmp/e2fsck bin/e2fsck
cp /tmp/mountfs-${install}.sh mountfs-${install}.sh
chmod 0777 mountfs${install}.sh
chmod 0777 bin/busybox
chmod 0777 bin/e2fsck

## Modifying ramdisk to not use yaffs, and use sd partitions instead.
if [ "${install_type}" -gt 2 ]; then
sed -i '/mtd@misc/s/^/#/' ueventd.htcleo.rc
sed -i '/mount yaffs2/s/^/#/
s/# #/# /g' init.rc
sed -i "s/rOm/$ROM_NAME/g" mountfs-${install}.sh
fi

## Checking if anything other than nand is to be installed
if [ "${install_type}" -gt 1 ]; then
sed -i '/on fs/ a exec /mountfs-'${install}'.sh' init.rc
sed -i "s/rOm/$ROM_NAME/g" mountfs-${install}.sh
chmod 0750 init.rc
chmod 0644 ueventd.htcleo.rc
fi

# Building new ramdisk
find .| cpio -o -H newc | gzip -9 > ../initrd-done.gz
cd ..

# Checking bootloader
if [ "${bootloader}" != "cLK" ]; then
cat initrd-done.gz >> 6MB
cp 6MB /boot/initrd.gz
cp /tmp/zImage /boot/zImage
#Checking if nand install
if [ "${install_type}" -gt 2 ]; then
cp 6MB /boot_dir/initrd.gz
cp /tmp/zImage /boot_dir/zImage
fi
else
cp initrd-done.gz /tmp/initrd.gz
chmod 0755 /tmp/mkbootimg
chmod 0755 /tmp/mkbootimg.sh
exec /tmp/mkbootimg.sh
if [ "${install_type}" -lt 3 ]; then
flash_image boot /tmp/boot.img else
flash_image sboot /tmp/boot.img
fi
fi

cp /tmp/initrd-$ROM_NAME.gz /tmp/initrd.gz
rm -r /tmp/work/*

There are likely some issues. Feel free to report back.

A few things (more of use for devs I suppose): adding an initrd.gz or zImage into the zip will overwrite the one used by the previously installed ROM.

Also the only way I could come up for checking if the kernel is 3.0.x or not (and thus need the 6MB magldr offset) is using md5sum, obviously this means that this md5sum check will need to be changed for every kernel (I suppose unless there's isn't any other option I could make a whitelisted md5sum file for 3.0.x kernels and/or have devs post md5sums with there kernels).

As it is the zip attached should work with all 2.x kernels and the kernel with md5sum of 1cb7bcf80845f0178b99f7b9a5f80669.

(NB. Device died again before testing - could anyone post/PM the outcome of md5sum for any file i.e. 'md5sum /system/build.prop' - as I'm not sure if just the md5sum is outputted of if the filename is as well.)

For the moment this should work as is with cLK/magldr for DirectSD and NativeSD (need to fix for NAND/DataOnExt).

If you want use NAND/DataOnExt then add the NAND initrd.gz from desired ROM into the install folder of the zip.

NB NAND install on magldr will need a boot partion of 7.5MB (8 to be safe) - when the script is fixed that is.

Legacy

Updater-script

###
#
# AROMA Installer
# (C) 2011-2012 by Ahmad Amarullah
# amarullz - xda-developers
#
###
#
# AROMA Installer Script for
# (C) 2012-2013 by tytung - xda-developers (tytung @ gmail.com)
#
###

ui_print("------------------------------------------------");
ui_print(" ");
ui_print(" ");
ui_print("------------------------------------------------");

################
# NAND Install #
################

if file_getprop("/tmp/aroma/installtype.prop", "selected.1") == "1" then

ui_print("@ Installing to NAND...");
ui_print(" Mounting NAND partitions...");

format("yaffs2", "MTD", "system");

mount("yaffs2", "MTD", "system", "/system");
mount("yaffs2", "MTD", "userdata", "/data");

# Wipe Dalvik-Cache
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "1" then
delete_recursive("/data/dalvik-cache");
ui_print(" Dalvik-Cache wiped.");
endif;

# Wipe Data/Factory Reset
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "2" then
unmount("/data");
format("yaffs2", "MTD", "userdata");
mount("yaffs2", "MTD", "userdata", "/data");
delete_recursive("/sdcard/.android_secure");
ui_print(" Data wiped.");
endif;

show_progress(0.9, 1400);
ui_print(" Copying files...");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_dir("mods/nand", "/sdcard");
show_progress(0.1, 5);

endif;

#####################
# DataOnEXT Install #
#####################

if file_getprop("/tmp/aroma/installtype.prop", "selected.1") == "2" then

ui_print("@ Installing to NAND and SD-EXT...");
ui_print(" Mounting NAND and SD-EXT partitions...");

package_extract_file("kernel/mount_DataOnEXT.sh", "/tmp/mount_DataOnEXT.sh");
set_perm(0, 0, 0777, "/tmp/mount_DataOnEXT.sh");
run_program("/tmp/mount_DataOnEXT.sh");

if file_getprop("/tmp/nfo.prop", "DataOnEXT") == "true" then

format("yaffs2", "MTD", "system");

mount("yaffs2", "MTD", "system", "/system");

# Wipe Dalvik-Cache
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "1" then
delete_recursive("/data/dalvik-cache");
ui_print(" Dalvik-Cache wiped.");
endif;

# Wipe Data/Factory Reset
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "2" then
delete_recursive("/data");
delete_recursive("/sdcard/.android_secure");
ui_print(" Data wiped.");
endif;

show_progress(0.9, 1400);
ui_print(" Copying files...");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_dir("mods/data2ext", "/sdcard");
show_progress(0.1, 5);

# Append " [DataOnEXT]" to the ROM name
package_extract_file("mods/set_build_prop_DataOnEXT.sh", "/tmp/set_build_prop_DataOnEXT.sh");
set_perm(0, 0, 0777, "/tmp/set_build_prop_DataOnEXT.sh");
run_program("/tmp/set_build_prop_DataOnEXT.sh");

endif;

endif;

#####################################
# NAND MAGLDR or cLK Kernel install #
#####################################

if file_getprop("/tmp/aroma/kernel.prop", "NAND") == "yes" then

# check bootloader
package_extract_file("kernel/checksys.sh", "/tmp/checksys.sh");
set_perm(0, 0, 755, "/tmp/checksys.sh");
run_program("/tmp/checksys.sh");

if file_getprop("/tmp/nfo.prop", "bootloader") == "cLK" then

ui_print("@ cLK Bootloader found.");
ui_print(" Flashing cLK kernel...");

# not mounted but just in case :)
unmount("/boot");

assert(
package_extract_file("kernel/zImage", "/tmp/zImage"),
package_extract_file("kernel/mkbootimg", "/tmp/mkbootimg"),
package_extract_file("kernel/mkbootimg.sh", "/tmp/mkbootimg.sh"));
set_perm(0, 0, 0755, "/tmp/mkbootimg");
set_perm(0, 0, 0755, "/tmp/mkbootimg.sh");
assert(
run_program("/tmp/mkbootimg.sh"),
write_raw_image("/tmp/boot.img", "boot"),
delete("/tmp/boot.img"));

else

ui_print("@ MAGLDR Bootloader found.");
ui_print(" Flashing MAGLDR kernel...");

# prepare boot partition
format("yaffs2", "MTD", "boot");
mount("yaffs2", "MTD", "boot", "/boot");

package_extract_file("kernel/zImage", "/boot/zImage");

endif;

endif;

####################
# NativeSD Install #
####################

if file_getprop("/tmp/aroma/installtype.prop", "selected.1") == "3" then

ui_print("@ Installing to SD-EXT (NativeSD)...");
ui_print(" Checking & Mounting SD-EXT Partition...");

package_extract_file("kernel/mount_NativeSD.sh", "/tmp/mount_NativeSD.sh");
set_perm(0, 0, 0777, "/tmp/mount_NativeSD.sh");
run_program("/tmp/mount_NativeSD.sh");

if file_getprop("/tmp/nfo.prop", "NativeSD") == "true" then

# Wipe Dalvik-Cache
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "1" then
delete_recursive("/data/dalvik-cache");
ui_print(" Dalvik-Cache wiped.");
endif; # Wipe Dalvik-Cache

# Wipe Data/Factory Reset
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "2" then
delete_recursive("/data");
ui_print(" Data wiped.");
endif; # Wipe Data/Factory Reset

show_progress(0.9, 1400);
ui_print(" Copying files...");
package_extract_file("kernel/zImage", "/boot/zImage");
package_extract_file("kernel/zImage", "/boot_dir/zImage");
package_extract_dir("sdcard", "/sdcard");
package_extract_dir("mods/nativesd", "/sdcard");

package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_file("mods/app/NativeSDBoot.apk", "/system/app/NativeSDBoot.apk");
show_progress(0.1, 5);

# Append " [NativeSD]" to the ROM name
package_extract_file("mods/set_build_prop_NativeSD.sh", "/tmp/set_build_prop_NativeSD.sh");
set_perm(0, 0, 0777, "/tmp/set_build_prop_NativeSD.sh");
run_program("/tmp/set_build_prop_NativeSD.sh");

endif;

endif;

####################
# DirectSD Install #
####################

if file_getprop("/tmp/aroma/installtype.prop", "selected.1") == "4" || file_getprop("/tmp/aroma/installtype.prop", "selected.1") == "5" then

ui_print("@ Installing to SD-EXT (DirectSD)...");
ui_print(" Checking & Mounting SD-EXT Partition...");

package_extract_file("kernel/mount_DirectSD.sh", "/tmp/mount_DirectSD.sh");
set_perm(0, 0, 0777, "/tmp/mount_DirectSD.sh");
run_program("/tmp/mount_DirectSD.sh");

if file_getprop("/tmp/nfo.prop", "DirectSD") == "true" then

# Wipe Dalvik-Cache
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "1" then
delete_recursive("/data/dalvik-cache");
ui_print(" Dalvik-Cache wiped.");
endif; # Wipe Dalvik-Cache

# Wipe Data/Factory Reset
if file_getprop("/tmp/aroma/mods.prop", "selected.4") == "2" then
delete_recursive("/data");
ui_print(" Data wiped.");
endif; # Wipe Data/Factory Reset

show_progress(0.9, 1400);
ui_print(" Copying files...");
package_extract_file("kernel/zImage", "/boot/zImage");
package_extract_file("kernel/zImage", "/boot_dir/zImage");
package_extract_dir("sdcard", "/sdcard");
package_extract_dir("mods/DirectSD", "/sdcard");

package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_file("mods/app/DirectSDBoot.apk", "/system/app/DirectSDBoot.apk");
show_progress(0.1, 5);

# Append " [DirectSD]" to the ROM name
package_extract_file("mods/set_build_prop_DirectSD.sh", "/tmp/set_build_prop_DirectSD.sh");
set_perm(0, 0, 0777, "/tmp/set_build_prop_DirectSD.sh");
run_program("/tmp/set_build_prop_DirectSD.sh");

endif;

endif;

########################
# Connection Selection #
########################
set_progress(0.65);
if file_getprop("/tmp/aroma/mods.prop", "selected.1") == "1" then
delete("/system/ppp");
delete("/system/default.prop");
delete("/system/etc/init.d/97ppp");
ui_print("@ RMNET installed.");
endif;

if file_getprop("/tmp/aroma/mods.prop", "selected.1") == "2" then

package_extract_dir("mods/clk-ppp-patch", "/system");
ui_print("@ PPP installed.");

endif;

######################
# Softkeys Selection #
######################

ui_print("@ Setting Softkeys...");
if file_getprop("/tmp/aroma/mods.prop", "selected.2") == "1" then

package_extract_file("mods/enable_softkeys.sh", "/tmp/enable_softkeys.sh");
set_perm(0, 0, 755, "/tmp/enable_softkeys.sh");
run_program("/tmp/enable_softkeys.sh");
ui_print(" Softkeys enabled.");

endif;

if file_getprop("/tmp/aroma/mods.prop", "selected.2") == "2" then

package_extract_file("mods/disable_softkeys.sh", "/tmp/disable_softkeys.sh");
set_perm(0, 0, 755, "/tmp/disable_softkeys.sh");
run_program("/tmp/disable_softkeys.sh");
ui_print(" Softkeys disabled.");

endif;

########################
# SWAPPING Selection #
########################
if file_getprop("/tmp/aroma/mods.prop","selected.3") == "1" then
ui_print("@ Configuring Ram Pages Swapping...");

package_extract_file("mods/swap-partition-activator/install/installswap.sh", "/tmp/installswap.sh");
set_perm(0, 0, 0777, "/tmp/installswap.sh");
run_program("/tmp/installswap.sh");

if ( file_getprop("/tmp/hardswap.prop", "swap.present") == "yes" )
then
if ( file_getprop("/tmp/hardswap.prop", "swap.formatted") == "yes" ) then
ui_print(" Swap partition formatted.");
else
ui_print(" Error: Can't format existing swap partition!");
abort(" Aborting...");
endif;

else
ui_print(" Error: No swap partition found on SDcard!");
abort(" Aborting...");
endif;

# We're ready for the startup script to do ./swapon

package_extract_dir("mods/swap-partition-activator/etc", "/system/etc");
set_perm(0, 0, 0755, "/system/etc/init.d/99swap");
ui_print(" Swap-on script copied to /etc/init.d.");

endif;

if file_getprop("/tmp/aroma/mods.prop", "selected.3") == "2" then
ui_print(" Removing swap...");
delete("/system/etc/init.d/99swap");
ui_print(" Swap startup script deleted.");
endif;

###################
# Data apps check #
###################
set_progress(0.85);
package_extract_file("mods/check_data_apps.sh", "/tmp/check_data_apps.sh");
set_perm(0, 0, 0777, "/tmp/check_data_apps.sh");
run_program("/tmp/check_data_apps.sh");

################################
# ROM Symlinks and Permissions #
################################

ui_print("@ Setting symlinks and permissions...");
ui_print(" Setting symlinks...");

symlink("../xbin/su", "/system/bin/su");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
"/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
"/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
"/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
"/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
"/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
"/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
"/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
"/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
"/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
"/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
"/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
"/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
"/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
"/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
"/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
"/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
"/system/xbin/fbsplash", "/system/xbin/fdisk", "/system/xbin/fgrep",
"/system/xbin/find", "/system/xbin/flash_lock",
"/system/xbin/flash_unlock", "/system/xbin/flashcp",
"/system/xbin/flock", "/system/xbin/fold", "/system/xbin/free",
"/system/xbin/freeramdisk", "/system/xbin/fstrim", "/system/xbin/fsync",
"/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
"/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
"/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
"/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
"/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
"/system/xbin/install", "/system/xbin/ionice", "/system/xbin/iostat",
"/system/xbin/ip", "/system/xbin/kill", "/system/xbin/killall",
"/system/xbin/killall5", "/system/xbin/less", "/system/xbin/ln",
"/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
"/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
"/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
"/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
"/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
"/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
"/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
"/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
"/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
"/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
"/system/xbin/nbd-client", "/system/xbin/netstat", "/system/xbin/nice",
"/system/xbin/nohup", "/system/xbin/nslookup", "/system/xbin/ntpd",
"/system/xbin/od", "/system/xbin/patch", "/system/xbin/pgrep",
"/system/xbin/pidof", "/system/xbin/ping", "/system/xbin/pipe_progress",
"/system/xbin/pkill", "/system/xbin/pmap", "/system/xbin/poweroff",
"/system/xbin/printenv", "/system/xbin/printf", "/system/xbin/ps",
"/system/xbin/pstree", "/system/xbin/pwd", "/system/xbin/pwdx",
"/system/xbin/rdev", "/system/xbin/readlink", "/system/xbin/realpath",
"/system/xbin/renice", "/system/xbin/reset", "/system/xbin/resize",
"/system/xbin/rev", "/system/xbin/rm", "/system/xbin/rmdir",
"/system/xbin/rmmod", "/system/xbin/route", "/system/xbin/run-parts",
"/system/xbin/rx", "/system/xbin/sed", "/system/xbin/seq",
"/system/xbin/setconsole", "/system/xbin/setserial",
"/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
"/system/xbin/sha256sum", "/system/xbin/sha3sum",
"/system/xbin/sha512sum", "/system/xbin/sleep", "/system/xbin/sort",
"/system/xbin/split", "/system/xbin/stat", "/system/xbin/strings",
"/system/xbin/stty", "/system/xbin/sum", "/system/xbin/swapoff",
"/system/xbin/swapon", "/system/xbin/sync", "/system/xbin/sysctl",
"/system/xbin/tac", "/system/xbin/tail", "/system/xbin/tar",
"/system/xbin/taskset", "/system/xbin/tee", "/system/xbin/telnet",
"/system/xbin/telnetd", "/system/xbin/test", "/system/xbin/tftp",
"/system/xbin/tftpd", "/system/xbin/time", "/system/xbin/timeout",
"/system/xbin/top", "/system/xbin/touch", "/system/xbin/tr",
"/system/xbin/traceroute", "/system/xbin/true", "/system/xbin/ttysize",
"/system/xbin/tune2fs", "/system/xbin/umount", "/system/xbin/uname",
"/system/xbin/uncompress", "/system/xbin/unexpand", "/system/xbin/uniq",
"/system/xbin/unix2dos", "/system/xbin/unlzma", "/system/xbin/unlzop",
"/system/xbin/unxz", "/system/xbin/unzip", "/system/xbin/uptime",
"/system/xbin/usleep", "/system/xbin/uudecode", "/system/xbin/uuencode",
"/system/xbin/vi", "/system/xbin/watch", "/system/xbin/wc",
"/system/xbin/wget", "/system/xbin/which", "/system/xbin/whoami",
"/system/xbin/xargs", "/system/xbin/xz", "/system/xbin/xzcat",
"/system/xbin/yes",
"/system/xbin/zcat");
symlink("libGLESv2.so", "/system/lib/libGLESv3.so");
symlink("mksh", "/system/bin/sh");
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/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/r", "/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");
ui_print(" Setting permissions...");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0755, 0755, "/system/addon.d");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 0, 0755, "/system/bin/ping");
set_perm(0, 2000, 0750, "/system/bin/run-as");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm(0, 0, 0644, "/system/vendor/etc/audio_effects.conf");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 0, 0644, "/system/vendor/lib/libbt-vendor.so");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
symlink("/system/vendor/firmware/fw_bcm4329.bin", "/system/etc/firmware/fw_bcm4329.bin");
symlink("/system/vendor/firmware/fw_bcm4329_apsta.bin", "/system/etc/firmware/fw_bcm4329_apsta.bin");
set_perm_recursive(0, 1001, 0755, 0775, "/system/etc/ppp");
set_perm(0, 0, 04755, "/system/bin/pppd");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
ui_print(" Symlinks and permissions done.");

###############
# Cleaning up #
###############

set_progress(0.95);
ui_print("@ Cleaning up...");
delete("/tmp");
ui_print(" Unmounting...");
unmount("/boot");
unmount("/system");
unmount("/data");
unmount("/DirectSD");
ui_print(" Done.");

set_progress(1.0);
ui_print("@ Installation Complete");[/hide]

mountfs2.sh

#!/bin/busybox sh

# wait for 2nd partition ready
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p2

# check the ext4 fs
/bin/e2fsck -p /dev/block/mmcblk0p2 > /e2fsck.log

# mount the 1st (NativeSD) SD-EXT partition
/bin/busybox mkdir -p /NativeSD
/bin/busybox mount -t auto -o ro,noatime,nodiratime,barrier=0 /dev/block/mmcblk0p2 /NativeSD

# mount the system data app dir
/bin/busybox mount --bind /NativeSD/rOm/data /data

# cleanup
# delete /bin to free ram
/bin/busybox rm -rf /bin[/hide]

mountfs5.sh

#!/bin/busybox sh

# wait for 2nd partition ready
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p2
wait /dev/block/mmcblk0p3
wait /dev/block/mmcblk0p3
wait /dev/block/mmcblk0p3
wait /dev/block/mmcblk0p3
wait /dev/block/mmcblk0p3
wait /dev/block/mmcblk0p3

# check the ext4 fs
/bin/e2fsck -p /dev/block/mmcblk0p2 > /e2fsck.log

# mount the 1st (NativeSD) SD-EXT partition
/bin/busybox mkdir -p /DirectSystem
/bin/busybox mkdir -p /DirectData
/bin/busybox mount -t auto -o ro,noatime,nodiratime,barrier=0 /dev/block/mmcblk0p2 /DirectSystem
/bin/busybox mount -t f2fs -o noatime,nodiratime,nosuid,nodev,discard /dev/block/mmcblk0p3 /DirectData

# mount the system data app dir
/bin/busybox mount --bind /DirectSystem/rOm/system /system
/bin/busybox mount --bind /DirectData/rOm/data /data

# cleanup
# delete /bin to free ram
/bin/busybox rm -rf /bin
[/hide]