[Windows 8 Development and Hacking] cert_:
everthing is working with vol+ / vol- hard buttons if you choose this solution for Acer W700 with 120GB SSD

clear hard drive

install win 8.1 with 70GB partition

install Ubuntu 14.04 with 30GB partition

copy Android x86 4.4-r2 to 20GB partition

modify grub to boot Android-x86

get grub source, edit menu.c and compile, reinstall grub

without 6. grub boot menu is not working. i tried to solve this problem by changing keyboard layouts, but maybe there is a bug in grub 2.02 because keyboard layouts can't be loaded.

you can compile grub2_2.02~beta2 yourself and modify grub-core/normal/menu.c to get the menu working. unmodified grub2_2.02~beta2 is attached to this post.

edit grub-core/normal/menu.c:

case GRUB_TERM_KEY_HOME:
case GRUB_TERM_CTRL | 'a':
current_entry = 0;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_KEY_END:
case GRUB_TERM_CTRL | 'e':
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_KEY_UP:
case GRUB_TERM_CTRL | 'p':
case '^':
if (current_entry > 0)
current_entry--;
menu_set_chosen_entry (current_entry);
break;
case GRUB_TERM_CTRL | 'n':
case GRUB_TERM_KEY_DOWN:
case 'v':
if (current_entry < menu->size - 1)
current_entry++;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_CTRL | 'g':
case GRUB_TERM_KEY_PPAGE:
if (current_entry < GRUB_MENU_PAGE_SIZE)
current_entry = 0;
else
current_entry -= GRUB_MENU_PAGE_SIZE;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_CTRL | 'c':
case GRUB_TERM_KEY_NPAGE:
if (current_entry + GRUB_MENU_PAGE_SIZE < menu->size)
current_entry += GRUB_MENU_PAGE_SIZE;
else
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;

case '\n':
case '\r':
case GRUB_TERM_KEY_RIGHT:
case GRUB_TERM_CTRL | 'f':
menu_fini ();
*auto_boot = 0;
return current_entry;

case '\e':
if (nested)
{
menu_fini ();
return -1;
}
break;

case 'c':
menu_fini ();
grub_cmdline_run (1);
goto refresh;

change to

[COLOR="red"]/* case GRUB_TERM_KEY_HOME: */[/COLOR]
case GRUB_TERM_CTRL | 'a':
current_entry = 0;
menu_set_chosen_entry (current_entry);
break;

[COLOR="Red"]/* case GRUB_TERM_KEY_END: */[/COLOR]
case GRUB_TERM_CTRL | 'e':
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_KEY_UP:
case GRUB_TERM_CTRL | 'p':
case '^':
if (current_entry > 0)
current_entry--;
menu_set_chosen_entry (current_entry);
break;

[COLOR="red"]case 'c':[/COLOR]
[COLOR="Red"]case GRUB_TERM_KEY_END:[/COLOR]
case GRUB_TERM_CTRL | 'n':
case GRUB_TERM_KEY_DOWN:
case 'v':
if (current_entry < menu->size - 1)
current_entry++;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_CTRL | 'g':
case GRUB_TERM_KEY_PPAGE:
if (current_entry < GRUB_MENU_PAGE_SIZE)
current_entry = 0;
else
current_entry -= GRUB_MENU_PAGE_SIZE;
menu_set_chosen_entry (current_entry);
break;

case GRUB_TERM_CTRL | 'c':
case GRUB_TERM_KEY_NPAGE:
if (current_entry + GRUB_MENU_PAGE_SIZE < menu->size)
current_entry += GRUB_MENU_PAGE_SIZE;
else
current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry);
break;

[COLOR="Red"]case 'b':[/COLOR]
[COLOR="Red"]case GRUB_TERM_KEY_HOME:[/COLOR]
case '\n':
case '\r':
case GRUB_TERM_KEY_RIGHT:
case GRUB_TERM_CTRL | 'f':
menu_fini ();
*auto_boot = 0;
return current_entry;

case '\e':
if (nested)
{
menu_fini ();
return -1;
}
break;

[COLOR="Red"] case 'd':[/COLOR]
menu_fini ();
grub_cmdline_run (1);
goto refresh;

compile and install, everything is working fine. be careful and choose grub2_2.02~beta2, grub2.00 did not work for me.

how to compile and install grub:

- download source grub2_2.02~beta2.orig.zip and extract, modify menu.c

- cd grub2_2.02~beta2

- ./configure --prefix=/usr --with-platform=efi --target=x86_64

- make

- sudo make install

- sudo grub-install