Add init.d stuff.
diff --git a/prebuilt/common/etc/init.d/00banner b/prebuilt/common/etc/init.d/00banner
new file mode 100755
index 0000000..70b8a9f
--- /dev/null
+++ b/prebuilt/common/etc/init.d/00banner
@@ -0,0 +1,12 @@
+#!/system/bin/sh
+#
+# Print startup info
+#
+L="log -p i -t cm"
+
+$L "Welcome to Android `getprop ro.build.version.release` / `getprop ro.modversion`";
+$L "                                                _ ";
+$L " __ __ _ ___  _ _  __  ___  __ _ _  _  _  __  __))";
+$L "((_ \\(/'((_( ((\\( ((_)((_( (('((\\( ((\`1( ((_)((_( ";
+$L "     ))                 _))";
+$L " ";
diff --git a/prebuilt/common/etc/init.d/01sysctl b/prebuilt/common/etc/init.d/01sysctl
new file mode 100755
index 0000000..bba6a83
--- /dev/null
+++ b/prebuilt/common/etc/init.d/01sysctl
@@ -0,0 +1,2 @@
+#!/system/bin/sh
+sysctl -p
diff --git a/prebuilt/common/etc/init.d/03firstboot b/prebuilt/common/etc/init.d/03firstboot
new file mode 100755
index 0000000..bd084a0
--- /dev/null
+++ b/prebuilt/common/etc/init.d/03firstboot
@@ -0,0 +1,9 @@
+#!/system/bin/sh
+# execute any postinstall script then kill it
+if [ -e /data/firstboot.sh ];
+then
+   log -p i -t boot "Executing firstboot.sh..";
+   logwrapper /system/bin/sh /data/firstboot.sh;
+   rm -f /data/firstboot.sh;
+fi;
+
diff --git a/prebuilt/common/etc/init.d/04modules b/prebuilt/common/etc/init.d/04modules
new file mode 100755
index 0000000..db18c71
--- /dev/null
+++ b/prebuilt/common/etc/init.d/04modules
@@ -0,0 +1,14 @@
+#!/system/bin/sh
+#
+# Load any extra modules
+
+MODULES=""
+
+if [ "`getprop persist.net.ipv6`" = "1" ]; then
+	MODULES="$MODULES ipv6"
+fi
+
+for i in $MODULES;
+do
+    modprobe $i;
+done
diff --git a/prebuilt/common/etc/init.d/05mountsd b/prebuilt/common/etc/init.d/05mountsd
new file mode 100755
index 0000000..f53645f
--- /dev/null
+++ b/prebuilt/common/etc/init.d/05mountsd
@@ -0,0 +1,54 @@
+#!/system/bin/sh
+#
+# mount ext[234] partition from sd card
+
+BB="logwrapper busybox";
+
+if [ "$SD_EXT_DIRECTORY" = "" ];
+then
+    SD_EXT_DIRECTORY=/sd-ext;
+fi;
+
+# find first linux partition on SD card
+MMC=/dev/block/mmcblk0
+
+# wait for the device to settle
+COUNT=6;
+until [ -b "$MMC" ] || [ $COUNT -lt 1 ];
+do
+    sleep 1;
+    COUNT=$((COUNT-1));
+done;
+
+if [ -b "$MMC" ];
+then
+    FDISK="busybox fdisk"
+    PARTITION=`$FDISK -l $MMC | awk '/^\// && $5 == 83 {print $1;exit;}'`
+
+    if [ -b "$PARTITION" ];
+    then
+        log -p i -t mountsd "Checking filesystems..";
+   
+        # fsck the sdcard filesystem first
+        logwrapper e2fsck -y $PARTITION;
+   
+        # set property with exit code in case an error occurs
+        setprop cm.e2fsck.errors $?;
+        if [ "$?" = 0 ];
+        then
+   
+            # mount and set perms
+            $BB mount -o noatime,nodiratime -t auto $PARTITION $SD_EXT_DIRECTORY;
+            if [ "$?" = 0 ];
+            then
+                $BB chown 1000:1000 $SD_EXT_DIRECTORY;
+                $BB chmod 771 $SD_EXT_DIRECTORY;
+                log -p i -t mountsd "$SD_EXT_DIRECTORY successfully mounted";
+            else
+                log -p e -t mountsd "Unable to mount filesystem for $SD_EXT_DIRECTORY!";
+            fi
+        else
+            log -p e -t mountsd "Unable to repair filesystem, disabling apps2sd";
+        fi
+    fi
+fi
diff --git a/prebuilt/common/etc/init.d/10apps2sd b/prebuilt/common/etc/init.d/10apps2sd
new file mode 100755
index 0000000..b4d0192
--- /dev/null
+++ b/prebuilt/common/etc/init.d/10apps2sd
@@ -0,0 +1,24 @@
+#!/system/bin/sh
+# Make sure the Apps2SD structure exists.
+
+if [ "$SD_EXT_DIRECTORY" = "" ];
+then
+    SD_EXT_DIRECTORY=/sd-ext;
+fi;
+
+if ! awk -vDIR="$SD_EXT_DIRECTORY" '$2 == DIR { exit 1; }' /proc/mounts ;
+then
+    # create directories if necessary.
+    for i in app app-private dalvik-cache;
+    do
+        if [ ! -d $SD_EXT_DIRECTORY/$i ];
+        then
+            mkdir $SD_EXT_DIRECTORY/$i;
+            busybox chown 1000:1000 $SD_EXT_DIRECTORY/$i;
+            busybox chmod 771 $SD_EXT_DIRECTORY/$i;
+            log -p i -t a2sd "$SD_EXT_DIRECTORY/$i created"
+        fi;
+    done
+    setprop cm.a2sd.active 1
+    log -p i -t a2sd "Apps2SD successfully activated";
+fi;
diff --git a/prebuilt/common/etc/init.d/20userinit b/prebuilt/common/etc/init.d/20userinit
new file mode 100755
index 0000000..ca88f83
--- /dev/null
+++ b/prebuilt/common/etc/init.d/20userinit
@@ -0,0 +1,21 @@
+#!/system/bin/sh
+# call a userinit.sh script if it's present on the sdcard
+
+if [ "$SD_EXT_DIRECTORY" = "" ];
+then
+    SD_EXT_DIRECTORY=/sd-ext;
+fi;
+
+if [ -e $SD_EXT_DIRECTORY/userinit.sh ];
+then
+   log -p i -t userinit "Executing $SD_EXT_DIRECTORY/userinit.sh";
+   busybox chmod +x $SD_EXT_DIRECTORY/userinit.sh;
+   logwrapper /system/bin/sh $SD_EXT_DIRECTORY/userinit.sh;
+   setprop cm.userinit.active 1;
+fi;
+
+if [ -d $SD_EXT_DIRECTORY/userinit.d ];
+then
+   logwrapper busybox run-parts $SD_EXT_DIRECTORY/userinit.d;
+   setprop cm.userinit.active 1;
+fi;
diff --git a/prebuilt/dream_sapphire/etc/init.d/02audio_profile b/prebuilt/dream_sapphire/etc/init.d/02audio_profile
new file mode 100755
index 0000000..39b03bc
--- /dev/null
+++ b/prebuilt/dream_sapphire/etc/init.d/02audio_profile
@@ -0,0 +1,13 @@
+#!/system/bin/sh
+
+if [ ! -e /system/etc/AudioPara4.csv ];
+then
+	mount -o remount,rw /system
+	if [ `getprop ro.product.device` = "dream" ];
+	then
+		ln -s /system/etc/AudioPara_dream.csv /system/etc/AudioPara4.csv
+	else
+		ln -s /system/etc/AudioPara_sapphire.csv /system/etc/AudioPara4.csv
+	fi
+	mount -o remount,ro /system
+fi	
diff --git a/products/common.mk b/products/common.mk
index ce4ab46..930c88a 100644
--- a/products/common.mk
+++ b/products/common.mk
@@ -60,6 +60,11 @@
     vendor/cyanogen/prebuilt/common/etc/terminfo/l/linux:system/etc/terminfo/l/linux \
     vendor/cyanogen/prebuilt/common/etc/terminfo/u/unknown:system/etc/terminfo/u/unknown \
     vendor/cyanogen/prebuilt/common/etc/profile:system/etc/profile \
+    vendor/cyanogen/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
+    vendor/cyanogen/prebuilt/common/etc/init.d/01sysctl:system/etc/init.d/01sysctl \
+    vendor/cyanogen/prebuilt/common/etc/init.d/03firstboot:system/etc/init.d/03firstboot \
+    vendor/cyanogen/prebuilt/common/etc/init.d/04modules:system/etc/init.d/04modules \
+    vendor/cyanogen/prebuilt/common/etc/init.d/20userinit:system/etc/init.d/20userinit \
     vendor/cyanogen/prebuilt/common/xbin/bash:system/xbin/bash \
     vendor/cyanogen/prebuilt/common/xbin/htop:system/xbin/htop \
     vendor/cyanogen/prebuilt/common/xbin/irssi:system/xbin/irssi \
@@ -68,6 +73,10 @@
     vendor/cyanogen/prebuilt/common/xbin/powertop:system/xbin/powertop \
     vendor/cyanogen/prebuilt/common/xbin/openvpn-up.sh:system/xbin/openvpn-up.sh
 
+#PRODUCT_COPY_FILES += \
+#    vendor/cyanogen/prebuilt/common/etc/init.d/05mountsd:system/etc/init.d/05mountsd \
+#    vendor/cyanogen/prebuilt/common/etc/init.d/10apps2sd:system/etc/init.d/10apps2sd
+ 
 PRODUCT_COPY_FILES +=  \
     vendor/cyanogen/proprietary/RomManager.apk:system/app/RomManager.apk \
 
diff --git a/products/cyanogen_dream_sapphire.mk b/products/cyanogen_dream_sapphire.mk
index 9421f5c..238c2b6 100644
--- a/products/cyanogen_dream_sapphire.mk
+++ b/products/cyanogen_dream_sapphire.mk
@@ -25,6 +25,9 @@
 PRODUCT_SPECIFIC_DEFINES += TARGET_KERNEL_DIR=kernel-msm
 PRODUCT_SPECIFIC_DEFINES += TARGET_KERNEL_CONFIG=cyanogen_msm_defconfig
 
+PRODUCT_COPY_FILES += \
+    vendor/cyanogen/prebuilt/dream_sapphire/etc/init.d/02audio_profile:system/etc/init.d/02audio_profile
+
 #
 # Set ro.modversion
 #