aboutsummaryrefslogtreecommitdiffstats
path: root/usr/galaxys2_initramfs_files/init
diff options
context:
space:
mode:
Diffstat (limited to 'usr/galaxys2_initramfs_files/init')
-rwxr-xr-xusr/galaxys2_initramfs_files/init42
1 files changed, 42 insertions, 0 deletions
diff --git a/usr/galaxys2_initramfs_files/init b/usr/galaxys2_initramfs_files/init
new file mode 100755
index 0000000..cb3da8e
--- /dev/null
+++ b/usr/galaxys2_initramfs_files/init
@@ -0,0 +1,42 @@
+#!/stage1/busybox sh
+_PATH="$PATH"
+export PATH=/stage1
+
+busybox cd /
+busybox date >>boot.txt
+exec >>boot.txt 2>&1
+busybox rm init
+busybox mount -t proc proc /proc
+busybox mount -t sysfs sysfs /sys
+
+load_image=/stage1/boot.cpio
+
+if busybox grep -q bootmode=2 /proc/cmdline ; then
+
+ # recovery boot
+
+ # default to recovery ramdisk bundled with kernel
+ load_image=/stage1/recovery.cpio
+
+ # attempt isorec (isolated recovery) boot
+
+ # if the raw /dev/block/platform/dw_mmc/by-name/RECOVERY
+ # partition contains valid lzop-compressed data
+ if busybox lzop -dc /dev/block/mmcblk0p6 > /stage1/isorec.cpio ; then
+ # and if said data is a valid cpio archive
+ if busybox cpio -t < /stage1/isorec.cpio ; then
+ # then use it as the recovery ramdisk
+ load_image=/stage1/isorec.cpio
+ fi
+ fi
+
+fi
+
+busybox cpio -i < ${load_image}
+
+busybox umount /sys
+busybox umount /proc
+busybox date >>boot.txt
+busybox rm -fr /stage1 /dev/*
+export PATH="${_PATH}"
+exec /init