2 # By Chih-Wei Huang <cwhuang@linux.org.tw>
3 # Last updated 2009/08/14
5 # License: GNU Public License
6 # We explicitely grant the right to use the scripts
7 # with Android-x86 project.
15 dialog --title " Rebooting... " --nocancel --pause "" 8 41 1
23 dialog --clear --title " $1 " \
24 --menu "$2" 20 71 13 --file $menufile 2> $tempfile
27 choice=`cat $tempfile`
32 fdisk -l | grep ^/dev | cut -b6-12,55- | awk '{
33 if (!match($2, "Extended")) {
35 system("echo -n `cat /sys/block/*/"$1"/../device/model`")
39 printf("\"Create/Modify partitions\" \"\"\n\"Detect devices\" \"\"")
41 choose "Choose Partition" "Please select a partition to install Android-x86:"
47 dialog --clear --title " $1 " --gauge "\n $2" 8 70
53 echo -e '"Do not format" ""\next3 ""\next2 ""\nntfs ""\nfat32 ""' > $menufile
54 choose "Choose filesystem" "Please select a filesystem to format $1:"
71 if [ -n "$cmd" ]; then
72 dialog --title " Confirm " --no-label Skip --yesno \
73 "\n You chose to format $1 to $choice.\n All data in that partition will LOSE.\n\n Are you sure to format the partition $1?" 10 51
74 [ $? -ne 0 ] && return 1
75 $cmd Android-x86 /dev/$1 | awk '{
76 # FIXME: very imprecise progress
77 if (match($0, "done"))
79 }' | progress_bar "Formatting" "Formatting partition $1..."
87 echo -e "title $title\n\tkernel /$asrc/kernel$vga $@ SRC=/$asrc\n\tinitrd /$asrc/initrd.img\n" >> $menulst
92 menulst=/hd/grub/menu.lst
93 [ -n "$VESA" ] && vga=" vga=788"
94 echo -e "default=0\ntimeout=6\nroot (hd0,$1)\nsplashimage=/grub/android-x86.xpm.gz\n" > $menulst
95 cmdline=`cat /proc/cmdline | sed "s|\(initrd.*img *\)||; s|quiet *||; s|\(vga=[0-9].. *\)||; s|\(INSTALL=$INSTALL *\)||; s|\(SRC=$SRC *\)||; s|\(DEBUG=$DEBUG *\)||; s|\(BOOT_IMAGE.*\)||"`
97 create_entry "Android-x86 $VER" quiet $cmdline
98 create_entry "Android-x86 $VER (Debug mode)" $cmdline DEBUG=1
103 mountpoint -q /hd && umount /hd
106 try_mount rw /dev/$1 /hd && break
107 dialog --clear --title " Error " --defaultno --yesno \
108 "\n Cannot mount /dev/$1\n Do you want to format it?" 8 37
109 [ $? -ne 0 ] && return 255
112 fs=`cat /proc/mounts | grep /dev/$1 | awk '{ print $3 }'`
113 if [ "$fs" = "vfat" ]; then
114 dialog --title " Warning " --yesno \
115 "\nYou are going to install Android-x86 to a fat32 partition. Though this is possible, android cannot save user data to that partition. So data will be save to a RAMDISK(tmpfs), and lose after power off.\n\nAre you sure to continue?" 12 63
116 [ $? -ne 0 ] && return 1
120 dialog --title " Confirm " --no-label Skip --yesno \
121 "\n Do you want to install boot loader GRUB?" 7 47
122 if [ $? -eq 0 ]; then
126 h=`echo $d | awk '{ printf("%c", $1+97) }'`
127 [ -d /sys/block/[sh]d$h/$1 ] && break
130 p=$((`echo $1 | sed "s/sd$h//"`-1))
132 rm -f /hd/boot/grub/stage1
133 echo "setup (hd$d) (hd$d,$p)" | grub > /dev/tty5
134 [ $? -ne 0 ] && return 255
138 files="kernel initrd.img ramdisk.img system.*"
140 for s in `ls -ks $files | awk '{print $1}'`; do
144 ( ls $files | cpio -H newc -o | pv -ns ${size}k | ( cd /hd/$asrc; cpio -iud > /dev/null; echo $? > /tmp/result )) 2>&1 \
145 | progress_bar "Installing Android-x86" "Expect to write $size KB..."
147 chmod 644 /hd/$asrc/*
148 chown 0.0 /hd/$asrc/*
149 [ "$fs" != "vfat" ] && mkdir /hd/$asrc/data
152 return $((`cat /tmp/result`*255))
158 select_dev || rebooting
169 dialog --title " Detecting... " --nocancel --pause "" 8 41 1
178 if [ $retval -eq 255 ]; then
179 dialog --title ' Error! ' --yes-label Retry --no-label Reboot \
180 --yesno '\n Installation failed!' 7 35
181 [ $? -eq 1 ] && rebooting
185 [ -n "$VESA" ] || runit="Run Android-x86"
186 dialog --clear --title ' Congratulations! ' \
187 --menu "\n Android-x86 is installed successfully.\n " 11 51 13 \
188 "$runit" "" "Reboot" "" 2> $tempfile
189 case "`cat $tempfile`" in
193 if mountpoint -q /sfs; then
195 mount -o loop /hd/$asrc/system.sfs /sfs
196 mount -o loop /sfs/system.img system
198 mount -o loop /hd/$asrc/system.img system
200 [ -d /hd/$asrc/data ] && mount --bind /hd/$asrc/data data