aboutsummaryrefslogtreecommitdiffstats
path: root/usr/fascinatemtd_initramfs_files/init
diff options
context:
space:
mode:
Diffstat (limited to 'usr/fascinatemtd_initramfs_files/init')
-rwxr-xr-xusr/fascinatemtd_initramfs_files/init72
1 files changed, 72 insertions, 0 deletions
diff --git a/usr/fascinatemtd_initramfs_files/init b/usr/fascinatemtd_initramfs_files/init
new file mode 100755
index 0000000..ae94eab
--- /dev/null
+++ b/usr/fascinatemtd_initramfs_files/init
@@ -0,0 +1,72 @@
+#!/stage1/busybox sh
+export _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
+
+bml_over_mtd dump boot 72 reservoir 2004 /stage1/boot.bin
+
+eval $(busybox grep -m 1 -A 1 BOOT_IMAGE_OFFSETS /stage1/boot.bin | busybox tail -n 1)
+
+load_offset=$boot_offset
+load_len=$boot_len
+
+busybox mount -t yaffs2 /dev/block/mtdblock2 /system
+busybox mount -t yaffs2 /dev/block/mtdblock3 /cache
+
+if busybox test -e /cache/.startrecovery || \
+ busybox grep -q bootmode=2 /proc/cmdline ; then
+ # recovery boot
+ busybox rm -fr /cache/.startrecovery
+
+ load_offset=$recovery_offset
+ load_len=$recovery_len
+
+ # disable lpm
+ busybox echo 0 > /sys/class/power_supply/battery/charging_mode_booting
+elif ! busybox test -e /system/build.prop ; then
+ # emergency boot
+ busybox umount /cache
+ erase_image cache
+ busybox mount -t yaffs2 /dev/block/mtdblock3 /cache
+ busybox mkdir /cache/recovery
+
+ busybox mount -t vfat /dev/block/mmcblk1p1 /sdcard
+
+ UPDATE=$(busybox cat /sdcard/cyanogenmod.cfg)
+
+ if busybox test -e $UPDATE ; then
+ busybox echo "install_zip(\"`echo $UPDATE`\");" > /cache/recovery/extendedcommand
+ fi
+
+ load_offset=$recovery_offset
+ load_len=$recovery_len
+
+ # disable lpm
+ busybox echo 0 > /sys/class/power_supply/battery/charging_mode_booting
+fi
+
+busybox umount /cache
+busybox umount /system
+busybox umount /sdcard
+busybox rmdir /sdcard
+
+busybox dd bs=512 if=/stage1/boot.bin skip=$load_offset count=$load_len | busybox zcat | busybox cpio -i
+
+if busybox grep -q 1 /sys/class/power_supply/battery/charging_mode_booting ; then
+ # low power mode
+ busybox cp lpm.rc init.rc
+ busybox rm init.aries.rc
+fi
+
+busybox umount /sys
+busybox umount /proc
+busybox date >>boot.txt
+busybox rm -fr /stage1 /dev/*
+export PATH="${_PATH}"
+exec /init