Думаю, большинство разработчиков и просто продвинутых пользователей уже слышало про порт ОС Android под x86 процессоры, который позволил запускать Андроид на компьютере через виртуальную машину, что намного производительнее, чем родной гугловский эмулятор. Для тех, кто не знаком с этим замечательным проектом, отправляю читать Тему на 4pda.
Итак, после того, как виртуальная машина настроена и работает, может возникнуть одно затруднение: не все приложения поддерживают альбомный режим, в котором по умолчанию работает Android x86. В этом случае они отображаются повёрнутыми на 90°, что, конечно, помогает размять шею, но едва ли удобно :). К тому же мышь при этом не разворачивается, что приводит к отличному разрыву шаблона.
Процесс добавления портретной ориентации несложен, но содержит несколько граблей, по которым я потоптался и которые изложу ниже.
Основная идея в добавлении портретного режима — это добавление собственного экранного разрешения виртуальной машины с другим (обратным) соотношением сторон. Т.е. если разрешение для альбомного режима 800*640, в портретном оно будет 640*800. К сожалению, менять ориентацию можно будет только через ребут виртуальной машины: на лету такой возможности нет.
Что ж, приступим к шаманствам.
Сперва добавим нужное разрешение в список опций VirtualBox. Закрываем виртуалку, открываем командную строку в директории, где установлена VirtualBox, и выполняем команду
VBoxManage setextradata "<And86_VM_Code>" "CustomVideoMode1" "400x600x16"
где <And86_VM_Code> — название вашей виртуалки с Андроидом (перечень всех виртуалок можно посмотреть командой VBoxManage list vms), а цифры 400x600 можно изменить на другие по вкусу. Главное — не менять название CustomVideoMode, т.к. оно фиксировано. Можно добавлять несколько разрешений под другими номерами (CustomVideoMode2, CustomVideoMode3, ...), но базовое название должно оставаться.
Запускаем виртуальный Андроид и дожидаемся "голубого экрана" с выбором вариантов загрузки.
Не мешкая (у нас несколько секунд, после чего начнётся загрузка первого варианта), выбираем Debug mode. Будет выдано энное количество строк, и последними должны идти такие:
Теперь всё готово к редактированию списка вариантов загрузок. Вводим команду
vi /mnt/grub/menu.lst
Указанный файл будет открыт в редакторе (на самом деле, редактором его может назвать лишь стойкий духом, неподготовленного человека он ввергнет в пучину ужаса. Но что есть, то есть, будем иметь дело с ним). Как видно, в файле содержатся данные тех трёх вариантов загрузки, которые были нам предложены на "голубом экране". Нам надо добавить новый пункт. Для этого копируем строки имеющегося пункта по следующей схеме:
1. Перевести курсор в конец последней непустой строки, нажать a, затем Enter и Escape. Это мы вставили новую пустую строку в конец файла.
2. Подвести курсор к любой строке, начинающейся с title.
3. Ввести команду yy, что скопирует текущую строку в буфер обмена.
4. Подвести курсор к пустой строке в конце файла.
5. Ввести команду p.
6. Повторить пп. 2-5 со строками kernel... и initrd...
Теперь у нас должно быть два одинаковых варианта загрузки. Переходим к редактированию командой i. Изменяем свежедобавленные строки следующим образом: в строке title... переименовать название варианта загрузки (между скобок), в строке kernel... добавить текст DPI=160 vga=ask после слова s3_mode. То есть итоговые строки будут выглядеть примерно так (цветом выделены добавляемые части):
title Android-x86 2.3-RC1 (Custom video mode)
kernel /android-2.3-RC1/kernel_root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode DPI=160 vga=ask SRC=/android-2.3-RC1 SDCARD=/data/sdcard.img
Строку initrd... менять не нужно.
Жмём Escape, cохраняем изменения командой :w, выходим из редактора командой :q.
Проверяем, что всё правильно, введя команду
cat /mnt/grub/menu.lst
Вводим команду exit, потом, через некоторое время, ещё раз exit. Это перестраховка на всякий случай, т.к. у меня пару раз изменения не сохранились, когда я после редактирования сразу делал сброс виртуалки.
Перегружаем виртуалку через меню VirtualBox (Машина - Сброс). В списке вариантов на "голубом экране" должен появиться наш:
Пробуем загрузится в нём, должен появиться запрос на вывод списка доступных разрешений и собственно сам список:
Ура! Последним в списке идёт то, что нам нужно. Для запуска ОС с этим разрешением достаточно ввести его код (в моём случае — 360).
Вуаля!
P.S. Для внеклассного чтения: Перечень команд vi (англ.)
Спасибо тебе, чувак. Только ты смог так разжевать,и только благодаря тебе я смог повернуть экран. Спасибо огромное заэту статью
ОтветитьУдалитьПривет! не надо запускать androidx86 через виртуалку, это прога ставится точно так же как и винда только на комп и занимает копеечное место, единственно нужно выделить (создать) диск на 10ГБ и вставлять ОС туда, а при загрузке компа уже выбирать какую ОСь будешь запускать винду,юбунту или андроид))
УдалитьРебутать комп для того, чтобы поиграться с Андроидом, не кажется мне разумным
Удалитьпри вводе
ОтветитьУдалитьD:\Games\Virtualbox>VBoxManage setextradata "" "CustomVideoMode1" "40
0x600x16" выдает следующие
VBoxManage.exe: error: Could not find a registered machine named ''
VBoxManage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), compo
nent VirtualBox, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: "FindMachine(Bstr(a->argv[0]).raw(), machine.asO
utParam())" at line 804 of file VBoxManageMisc.cpp
D:\Games\Virtualbox>
т.е. привводе VBoxManage setextradata "" "CustomVideoMode1" "400x600x16"
ОтветитьУдалитьназвание виртуалки здесь в комментах почему то скрывается
ОтветитьУдалитьА чего "VBoxManage list vms" говорит?
УдалитьАвтор, огромное тебе спасибо! Пытался по другим способам описанным в инете пробовать, но не получалось. Правда копировать строки не получилось, но ввести заново копию строки труда не составило ^^" Благодарю от всей души)
ОтветитьУдалитьРад, что помогло :)
УдалитьНа маркете ищете rotate и выбираете на свой вкус и цвет
ОтветитьУдалитьПриложение Rotate не меняет разрешение экрана, а дает возможность в альбомном режиме запускать приложения книжного формата, но это сильно не меняет ситуацию, т.к. нижняя часть картинки или меню тупо обрезается, что делает приложение не удобным или вообще не функциональным.
ОтветитьУдалитьПопробовал сделать это для Андроид 4.4 - не получилось. Там нет s3_mode. Вставил DPI=160 vga=ask перед SRC=, но не помогло. Нет нужного видеорежима в списке. Может vesa вместо vga писать надо?
ОтветитьУдалитьИ если выбрать имеющийся в списке видеорежим, то размеры окна соответственно изменяются, но в нем вместо загрузки Андроид постоянно выводятся какие-то сообщения об ошибках.
ОтветитьУдалитьЭтот комментарий был удален автором.
УдалитьУ меня запускаются разрешения только с 16 битным цветом, если выбрать 32 бита ситуация такая же как Вы описали!
УдалитьУ меня стоит Xubuntu и найти для редактирования файл с таблицей разрешений мне к сожалению не удалось((
УдалитьЭтот комментарий был удален автором.
Удалить"У меня стоит Xubuntu и найти для редактирования файл с таблицей разрешений мне к сожалению не удалось(("
УдалитьНе понял. Редактирование списка доступных разрешений делается через VBoxManage. А menu.lst находится внутри виртуалки с Андроидом. Причем тут Хубунту?
Этот комментарий был удален автором.
ОтветитьУдалитьВсем привет!Сейчас fndroidx86 может становиться как самостоятельная ОС на ПК, ненужно запускать через виртуальные машины (если у вас конечно не 32 гектара памяти)я опробовал её через неделю после её выхода, работает нормально, удалил потому что ставил для игры, но она идет только в горизонтальном положении, а так экран на всём остальном автоматом устанавливается так как положено,единственно нужно выделить (создать) диск на 10ГБ и вставлять ОС туда, а при загрузке компа уже выбирать какую ОСь будешь запускать винду,юбунту или андроид))
ОтветитьУдалитьПочему 32 гектара? Виртуалка пойдет, если есть хотя бы полгига свободной оперативы. Да и ребутаться в андроид едва ли многим понравится.
УдалитьCTRL+F9 CTRL+F10 CTRL+F11 CTRL+F12 в зависимости от нужной ориентации в уже запущенном эмуляторе VirtualBox и ненадо никаких заумных настроек делать
ОтветитьУдалитьПоставил Androidx86 на обычный ПК. Запускаю приложение для портретной ориентации. В итоге сам экран не поворачивается, а само приложение просто по середине экрана.
ОтветитьУдалитьМожет в самом образе Androidx86 нужно что-то править?