Initially burnt it to a dvd and booted that (seems to be a Hybrid so you can also dd if=.... of=/dev/sdb ... or whatever to a usb). Worked really well, booted (albeit slowly) and connected to the net using my laptops wifi OK (had to enter the ssid and password), and I installed vnc and ssh from google play and vnc'd into my fatdog desktop system and that all worked fine. One problem was I couldn't figure out how to right-click within a rox-filer window for the right click context menu. ssh into the same box also worked fine. Another thing that initially caught me out was how to close apps/windows, where its a matter of selecting the square icon at the bottom of the screen, scroll (two finger drag across touchpad) to the relevant window, then click and flip the window off the top - as though you're throwing it away gesture). Another thing that took some figuring was how to shut down, which is a case of using Alt-F1 to drop to cli and then running poweroff or reboot ... type commands (or alt-F7 returns you to the gui desktop)
I did have the idea of running the android system on my desktop system (that is rarely used nowadays other than being a file server/accessed 'remotely' from my laptop) so I could boot fatdog on my laptop and then vnc into the android (desktop), so for example on the laptop have fatdog on desktop 1 and android (via vnc) on desktop 2. However the touchpad controls work better/easier when the laptop is running android and I vnc into fatdog.
Love the ability to scroll around and zoom using pinch motions (more so given my ageing eyesight); Dislike how the touchpad becomes sensitive to being touched such as when typing; Dislike how when playing a youtube music video in one chrome window, that stops when you open another chrome tab.
Decided to have a look around at how their live-boot is set up, and made the following notes (those familiar with puppy/fatdog initrd's init content will see similarities in how android x86 are doing things.
Code: Select all
Files extracted out of the iso ... initrd.img kernel ramdisk.img
and system.sfs (which has inside it a system.img file, which is
a actual image file i.e. can mount it using ...
mkdir m;mount system.img m)
grub4dos menu.lst entry with files on my sda3 ext4 partition ...
title android
root (hd0,2)
kernel /kernel root=/dev/ram0 androidboot.selinux=permissive quiet DATA=
initrd /initrd.img
Note when booted, to shutdown its Alt-F1 to drop to a cli and then
you can run poweroff or reboot ...etc.
To extract the initrd ...
mkdir initrd
cd initrd
cat ../initrd.img | gunzip | cpio -vid
Modify the ramdisk accordingly (e.g. you modify init.rc or
add another additional files) Then repack accordingly
cd initrd
find . | cpio --create --format='newc' | gzip > ../myinitrd.img
inside initrd.img the init contains the following code
#!/bin/busybox sh
#
# By Chih-Wei Huang <cwhuang@linux.org.tw>
# and Thorsten Glaser <tg@mirbsd.org>
#
# Last updated 2018/01/26
#
# License: GNU Public License
# We explicitely grant the right to use the scripts
# with Android-x86 project.
#
PATH=/sbin:/bin:/system/bin:/system/xbin; export PATH
# auto installation
[ -n "$AUTO_INSTALL" ] && INSTALL=1
# configure debugging output
if [ -n "$DEBUG" -o -n "$INSTALL" ]; then
LOG=/tmp/log
set -x
else
LOG=/dev/null
test -e "$LOG" || busybox mknod $LOG c 1 3
fi
exec 2>> $LOG
# early boot
if test x"$HAS_CTTY" != x"Yes"; then
# initialise /proc and /sys
busybox mount -t proc proc /proc
busybox mount -t sysfs sys /sys
# let busybox install all applets as symlinks
busybox --install -s
# spawn shells on tty 2 and 3 if debug or installer
if test -n "$DEBUG" || test -n "$INSTALL"; then
# ensure they can open a controlling tty
mknod /dev/tty c 5 0
# create device nodes then spawn on them
mknod /dev/tty2 c 4 2 && openvt
mknod /dev/tty3 c 4 3 && openvt
fi
if test -z "$DEBUG" || test -n "$INSTALL"; then
echo 0 0 0 0 > /proc/sys/kernel/printk
fi
# initialise /dev (first time)
mkdir -p /dev/block
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
# re-run this script with a controlling tty
exec env HAS_CTTY=Yes setsid cttyhack /bin/sh "$0" "$@"
fi
# now running under a controlling tty; debug output from stderr into log file
# boot up Android
error()
{
echo $*
return 1
}
try_mount()
{
RW=$1; shift
if [ "${ROOT#*:/}" != "$ROOT" ]; then
# for NFS roots, use nolock to avoid dependency to portmapper
mount -o $RW,noatime,nolock $@
return $?
fi
case $(blkid $1) in
*TYPE=*ntfs*)
mount.ntfs-3g -o rw,force $@
;;
*TYPE=*)
mount -o $RW,noatime $@
;;
*)
return 1
;;
esac
}
check_root()
{
if [ "`dirname $1`" = "/dev" ]; then
[ -e $1 ] || return 1
blk=`basename $1`
[ ! -e /dev/block/$blk ] && ln $1 /dev/block
dev=/dev/block/$blk
else
dev=$1
fi
try_mount ro $dev /mnt || return 1
if [ -n "$iso" -a -e /mnt/$iso ]; then
mount --move /mnt /iso
mkdir /mnt/iso
mount -o loop /iso/$iso /mnt/iso
fi
if [ -e /mnt/$SRC/$RAMDISK ]; then
zcat /mnt/$SRC/$RAMDISK | cpio -id > /dev/null
elif [ -b /dev/$RAMDISK ]; then
zcat /dev/$RAMDISK | cpio -id > /dev/null
else
return 1
fi
if [ -e /mnt/$SRC/system.sfs ]; then
mount -o loop,noatime /mnt/$SRC/system.sfs system
if [ -e system/system.img ]; then
mount --move system /sfs
mount -o loop,noatime /sfs/system.img system
fi
elif [ -e /mnt/$SRC/system.img ]; then
remount_rw
mount -o loop,noatime /mnt/$SRC/system.img system
elif [ -s /mnt/$SRC/system/build.prop ]; then
remount_rw
mount --bind /mnt/$SRC/system system
elif [ -z "$SRC" -a -s /mnt/build.prop ]; then
mount --bind /mnt system
else
rm -rf *
return 1
fi
mkdir -p mnt
echo " found at $1"
rm /sbin/mke2fs
hash -r
}
remount_rw()
{
# "foo" as mount source is given to workaround a Busybox bug with NFS
# - as it's ignored anyways it shouldn't harm for other filesystems.
mount -o remount,rw foo /mnt
}
debug_shell()
{
if [ -x system/bin/sh ]; then
echo Running MirBSD Korn Shell...
USER="($1)" system/bin/sh -l 2>&1
else
echo Running busybox ash...
sh 2>&1
fi
}
echo -n Detecting Android-x86...
[ -z "$SRC" -a -n "$BOOT_IMAGE" ] && SRC=`dirname $BOOT_IMAGE`
[ -z "$RAMDISK" ] && RAMDISK=ramdisk.img || RAMDISK=${RAMDISK##/dev/}
for c in `cat /proc/cmdline`; do
case $c in
iso-scan/filename=*)
SRC=iso
eval `echo $c | cut -b1-3,18-`
;;
*)
;;
esac
done
mount -t tmpfs tmpfs /android
cd /android
while :; do
for device in ${ROOT:-/dev/[hmnsv][dmrv][0-9a-z]*}; do
check_root $device && break 2
mountpoint -q /mnt && umount /mnt
done
sleep 1
echo -n .
done
ln -s mnt/$SRC /src
ln -s android/system /
ln -s ../system/lib/firmware ../system/lib/modules /lib
if [ -n "$INSTALL" ]; then
zcat /src/install.img | ( cd /; cpio -iud > /dev/null )
fi
if [ -x system/bin/ln -a \( -n "$DEBUG" -o -n "$BUSYBOX" \) ]; then
mv -f /bin /lib .
sed -i 's|\( PATH.*\)|\1:/bin|' init.environ.rc
rm /sbin/modprobe
busybox mv /sbin/* sbin
rmdir /sbin
ln -s android/bin android/lib android/sbin /
hash -r
fi
# load scripts
for s in `ls /scripts/* /src/scripts/*`; do
test -e "$s" && source $s
done
# ensure keyboard driver is loaded
if [ -n "$INSTALL" -o -n "$DEBUG" ]; then
busybox modprobe -a atkbd hid-apple
auto_detect &
fi
if [ 0$DEBUG -gt 0 ]; then
echo -e "\nType 'exit' to continue booting...\n"
debug_shell debug-found
fi
# A target should provide its detect_hardware function.
# On success, return 0 with the following values set.
# return 1 if it wants to use auto_detect
[ "$AUTO" != "1" ] && detect_hardware && FOUND=1
[ -n "$INSTALL" ] && do_install
load_modules
mount_data
mount_sdcard
setup_tslib
setup_dpi
post_detect
if [ 0$DEBUG -gt 1 ]; then
echo -e "\nUse Alt-F1/F2/F3 to switch between virtual consoles"
echo -e "Type 'exit' to enter Android...\n"
debug_shell debug-late
SETUPWIZARD=${SETUPWIZARD:-0}
fi
[ "$SETUPWIZARD" = "0" ] && echo "ro.setupwizard.mode=DISABLED" >> default.prop
[ -n "$DEBUG" ] && SWITCH=${SWITCH:-chroot}
# We must disable mdev before switching to Android
# since it conflicts with Android's init
echo > /proc/sys/kernel/hotplug
export ANDROID_ROOT=/system
exec ${SWITCH:-switch_root} /android /init
# avoid kernel panic
while :; do
echo
echo ' Android-x86 console shell. Use only in emergencies.'
echo
debug_shell fatal-err
done
Version of kernel and busybox running ...
Press PrintScreen grabs a screen shot, I scp'd that over to my fatdog box