diff options
Diffstat (limited to 'usr/galaxys2_initramfs_files/init')
-rwxr-xr-x | usr/galaxys2_initramfs_files/init | 42 |
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 |