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