Switch android x86 screen resolution

To change the Android-x86 screen resolution on VirtualBox you need to:

  1. Add custom screen resolution:
    Android <6.0:

    VBoxManage setextradata "VM_NAME_HERE" "CustomVideoMode1" "320x480x16"
    

    Android >=6.0:

    VBoxManage setextradata "VM_NAME_HERE" "CustomVideoMode1" "320x480x32"
    
  2. Figure out what is the ‘hex’-value for your VideoMode:
    2.1. Start the VM
    2.2. In GRUB menu enter a (Android >=6.0: e)
    2.3. In the next screen append vga=ask and press Enter
    2.4. Find your resolution and write down/remember the 'hex'-value for Mode column

  3. Translate the value to decimal notation (for example 360 hex is 864 in decimal).

  4. Go to menu.lst and modify it:
    4.1. From the GRUB menu select Debug Mode
    4.2. Input the following:

    mount -o remount,rw /mnt  
    cd /mnt/grub  
    vi menu.lst
    

    4.3. Add vga=864 (if your ‘hex’-value is 360). Now it should look like this:

    kernel /android-2.3-RC1/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode DPI=160 UVESA_MODE=320x480 SRC=/android-2.3-RC1 SDCARD=/data/sdcard.img vga=864

    4.4. Save it:

    :wq
    
  5. Unmount and reboot:

    cd /
    umount /mnt
    reboot -f
    

Hope this helps.


Based on my experience, it's enough to use the following additional boot options:

UVESA_MODE=320x480 DPI=160

No need to add vga definition. Watch out for DPI value! As bigger one makes your icons bigger.

To add the previous boot options, go to debug mode (during grub menu selection)

mount -o remount,rw /mnt
vi /mnt/grub/menu.lst

Now edit on this line:

kernel /android-2.3-RC1/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-2.3-RC1 SDCARD=/data/sdcard.img UVESA_MODE=320x480 DPI=160

Reboot