2 # By Chih-Wei Huang <cwhuang@linux.org.tw>
3 # Last updated 2010/10/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*\)||; s|quiet\s*||; s|\(vga=\w\+\?\s*\)||; s|\(.DPI=\w\+\?\s*\)||; s|\(INSTALL=\w\+\?\s*\)||; s|\(SRC=\S\+\?\s*\)||; s|\(DEBUG=\w\+\?\s*\)||; s|\(BOOT_IMAGE.*\)||"`
97 create_entry "Android-x86 $VER (HDPI)" quiet $cmdline HDPI=1
98 create_entry "Android-x86 $VER (MDPI)" quiet $cmdline MDPI=1
99 create_entry "Android-x86 $VER (Debug mode)" $cmdline DEBUG=1
104 win=`fdisk -l /dev/$(echo $1 | cut -b-3) | grep ^/dev | cut -b6-12,55- | awk '{
105 if (match($2, "NTFS"))
108 if [ -n "$win" ]; then
109 dialog --title " Confirm " --yesno \
110 "\nThe installer found a Windows partition in /dev/$win.\n\nDo you want to create a boot item for Windows?" 9 59
111 [ $? -ne 0 ] && return 1
112 p=$((`echo $win | cut -b4-`-1))
113 echo -e "title Windows\n\trootnoverify (hd$d,$p)\n\tchainloader +1\n" >> $menulst
119 mountpoint -q /hd && umount /hd
122 try_mount rw /dev/$1 /hd && break
123 dialog --clear --title " Error " --defaultno --yesno \
124 "\n Cannot mount /dev/$1\n Do you want to format it?" 8 37
125 [ $? -ne 0 ] && return 255
128 fs=`cat /proc/mounts | grep /dev/$1 | awk '{ print $3 }'`
129 if [ "$fs" = "vfat" ]; then
130 dialog --title " Warning " --yesno \
131 "\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
132 [ $? -ne 0 ] && return 1
133 elif [ "$fs" = "fuseblk" ]; then
134 dialog --title " Warning " --yesno \
135 "\nYou are going to install Android-x86 to an NTFS partition. Though this is possible, some user data cannot be saved properly to that partition and will lose after power off.\n\nAre you sure to continue?" 11 63
136 [ $? -ne 0 ] && return 1
140 dialog --title " Confirm " --no-label Skip --yesno \
141 "\n Do you want to install boot loader GRUB?" 7 47
142 if [ $? -eq 0 ]; then
146 h=`echo $d | awk '{ printf("%c", $1+97) }'`
147 [ -d /sys/block/[sh]d$h/$1 ] && break
150 p=$((`echo $1 | cut -b4-`-1))
153 rm -f /hd/boot/grub/stage1
154 echo "setup (hd$d) (hd$d,$p)" | grub > /dev/tty5
155 [ $? -ne 0 ] && return 255
159 files="kernel initrd.img ramdisk.img system.*"
161 for s in `ls -ks $files | awk '{print $1}'`; do
165 ( ls $files | cpio -H newc -o | pv -ns ${size}k | ( cd /hd/$asrc; cpio -iud > /dev/null; echo $? > /tmp/result )) 2>&1 \
166 | progress_bar "Installing Android-x86" "Expect to write $size KB..."
168 chmod 644 /hd/$asrc/*
169 chown 0.0 /hd/$asrc/*
170 [ "$fs" != "vfat" ] && mkdir /hd/$asrc/data
173 return $((`cat /tmp/result`*255))
179 select_dev || rebooting
190 dialog --title " Detecting... " --nocancel --pause "" 8 41 1
199 if [ $retval -eq 255 ]; then
200 dialog --title ' Error! ' --yes-label Retry --no-label Reboot \
201 --yesno '\n Installation failed!' 7 35
202 [ $? -eq 1 ] && rebooting
206 [ -n "$VESA" ] || runit="Run Android-x86"
207 dialog --clear --title ' Congratulations! ' \
208 --menu "\n Android-x86 is installed successfully.\n " 11 51 13 \
209 "$runit" "" "Reboot" "" 2> $tempfile
210 case "`cat $tempfile`" in
214 if mountpoint -q /sfs; then
216 mount -o loop /hd/$asrc/system.sfs /sfs
217 mount -o loop /sfs/system.img system
219 mount -o loop /hd/$asrc/system.img system
221 [ -d /hd/$asrc/data ] && mount --bind /hd/$asrc/data data