Android-x86

Run Android on your PC


VirtualBox How To

The following are instructions on how to run Android-x86 inside VirtualBox.
Note: For optimal performance, make sure you have enabled either VT-x or AMD-V in your host operating system's BIOS.

Android-x86 versions tested against Virtualbox versions.

Date Tested Virtualbox Host OS Android-x86 Result
?? 2.2.4 Windows XP ?? Good
?? 3.0.2 Fedora 11 ?? Good
Nov. 2 2017 5.2.0 Windows 10 6.0-r3 32/64 bit Good

Downloading

Download an ISO of Android-x86 from here.

Caution
If you are using Android-x86 for debugging purposes, some binaries (gdb for example) are built for 32-bit architectures and will not support debugging 64-bit binaries such as the Android app host. Download a 32-bit distribution instead.

Create a new VM

If you have not already created a VirtualBox virtual machine for Android-x86 yet, do so as follows:

  1. Click the "New" button, and name your new virtual machine however you like. Set Type to Linux, and Version to Linux 2.6 / 3.x / 4.x. Note that you should choose the appropriate bit type for the version of Android-x86 that you downloaded.
  2. Specify how much RAM will be allocated to your virtual machine when you run it. Android doesn't specify a bare-minimum requirement for memory, just keep in mind what apps you plan on running. 2GB (2048MB) is a good place to start, and you can change this later if you need to.
  3. Create a new Hard disk image which will act as your machine's storage. The recommended starting size of 8GB is enough. Click through the rest of the options for creating your Hard disk.
Your virtual machine has now been created. It still needs to be initially installed at this point.

Settings

Tested on VirtualBox 64-bit for Windows, version 5.2.0. Android-x86 version 6.0-r3, both 32-bit and 64-bit.

Select your machine, then click the Settings button and refer to the below recommended configuration to make sure your settings match.

Install

Click the green Start arrow to power-on your virtual machine. You'll be presented with a list of options. Use the arrow keys to pick which one you want, then press Enter once the one you want is selected.

  1. If you don't want to install Android-x86 yet and just want to test it, pick one of the Live CD options (except for Debug mode).
  2. Pick the Installation option if you want your system to be installed to the virtual hard drive.
If you want to use higher resolution, you can edit the boot option by pressing TAB, change vga=788 (800x600) to vga=791 (1024x768) or vga=794 (1280x1024), and press Enter. You can also use vga=ask to see all available modes. But please note Android will only work under 16-bit mode.

Partition

When you are prompted to Choose a partition:

  1. If you upgrade Android-x86 from a previous version, just select the existing partition. Agree to overwrite it when prompted.
  2. If this is a new VM, choose to Create/Modify partitions. Use Bootable but not GPT! This will cause the GRUB installation to fail later.
You may partition your disk however you see fit. If you just want a simple installation, create one partition taking up the entire disk and format it as ext4.


Continue through the installation. You should install GRUB when it prompts you to. You may also leave /system as read and write when prompted.
Once the installation is complete, force close/shut down the virtual machine and remove the ISO from the virtual CD drive.
Finaly, start Android-x86. If it's a new machine, once loaded you can perform the Android setup to begin using your machine.

Advanced

Custom partitions, SDCard

When booting Android-x86, you may specify which partitions represent the data and sdcard. On the boot menu, select an entry you would like to boot from, press TAB, then add the following as it suits your needs:

DATA=sda1 SDCARD=sda2 Press Enter to boot. These options specify user data (your setting, your uploaded applications, ...) go into /dev/sda1, and data saved in sdcard go into /dev/sda2.

If you build the ISO from source, you can add these options to bootable/newinstaller/boot/isolinux/isolinux.cfg.

Here is a note from David when using fdisk:
  1. Create a new virtual machine with a hard disk.
  2. Launch the Live ISO in Debug mode (I used android-x86-2.2-generic.iso) to get the command prompt.
  3. "fdisk /dev/sda", then type:
    1. "n" (new partition)
    2. "p" (primary partition)
    3. "1" (1st partition)
    4. "1" (first cylinder)
    5. "xx" (choose the last cylinder, leaving room for a 2nd partition)
    6. "w" (write the partition)
  4. Repeat #3, but call it partition 2, and use the remaining cylinders.
  5. "mdev -s"
  6. "mke2fs -j -L DATA /dev/sda1"
  7. "mke2fs -j -L SDCARD /dev/sda2"
  8. Reboot ("reboot -f")
  9. At the boot menu, choose VESA, then hit TAB and type so that the end of the line reads: "DATA=sda1 SDCARD=sda2". (Only need for the generic target images, for VM target images, this is not needed)
  10. After booting (and of course disabling mouse integration via the machine menu), the SD card is read as unformatted, but you can format it by going to Settings > SD card & phone settings > Format SD Card, then Mount SD card.
  11. The SD card should now work!
Note: for the step 7, if you want to format to vfat only, then you can do :
newfs_msdos /dev/sda2
Also remember the partition type has to be fat32 (b or c). By using vfat, the step 10 is not needed.

DevTools application has a MediaScanner which (re)indexes your SD card for cases where you manually copied media over. This ensures that you see new images and/or music in the apps without having to reboot.

If you downloaded it from within android, the application asks the relevant service to index new files.

Playing music

This section describes two ways to upload music files into Android running on a vbox so you can play them by the Music app. Of course, you can save the files to the virtual disk mounted at /sdcard, as described above.

Upload files by adb

Adb is Android Debug Bridge, a tool to debug Android system. If you compile from source, it is located in out/host/linux-x86/bin/adb. Otherwise you can get it from Android SDK. Suppose the network of your vbox is OK, you can upload a file from your host by

ADBHOST=<ip of vbox> out/host/linux-x86/bin/adb push <a music file> /sdcard
You need to know the ip of your vbox. You can get it by Alt-F1 and netcfg. You may also need to reboot Android to see the uploaded files. Of course in this way you have to mount /sdcard to a virtual disk partion.

For complex network settings of the VirtualBox VM, you should refer to Debug How To on how to connect adb to the VM.

Upload files by wget

You can also upload files by wget in the debug mode. In the debug mode shell, before entering Android,

# cd /android/sdcard
# netcfg eth0 dhcp
# wget <url of a music file>
Then type exit to enter Android.

Debug with adb

This section describes the way to debug Android with adb via network.

If we want to debug with adb via network, we should ensure the ip of vbox can be accessed by host machine. So we should change the Network Adapter type of vbox to Bridged Adapter. After starting the android-x86, we should follow the above Settings/[Network] section to ensure the network of android-x86 is enabled, and enable USB debugging in Settings/System/Developer Options. Then we can get the device ip from Settings/System/About tablet/IP address. For example, if we see the ip address is 192.168.0.116, then we can use following command to connect android-x86 in vbox from host machine.

adb connect 192.168.0.116
Then you can use adb command to debug android-x86 such as get log, and dump system information.

References

  1. ^ a b VirtualBox currently has no Guest Additions for Android.
  2. ^ VirtualBox v6.1.0 states: "old style 3D support (with VBoxVGA) has been completely removed"
  3. ^ VirtualBox states: "Note that you must install the Guest Additions on the guest VM to specify the VBoxSVGA or VMSVGA graphics controller."