Содержание статьи
Есть у меня древний нетбук ASUS Eee PC 1001PXD на Intel Atom и с одним гигом оперативки на борту. Старье, проигрывающее по характеристикам даже смартфонам среднего ценового диапазона. Использую я его большей частью как пишущую машинку в недолгих поездках, благо Arch Linux на таком железе бегает бодро. На большее нетбук вроде бы не способен, и это кажется странным, потому как Android на смартфоне с тем же железом чувствует себя превосходно. Хм... а ведь это мысль.
Настольный Android
Итак, задача — установить Android на нетбук. В голове уже есть сведения, что Android работает на Intel Atom, и многочисленные смартфоны и планшеты от ASUS тому подтверждение. Но это именно смартфоны и планшеты, а не нетбуки и настольные ПК. Что ж, идем в интернет. Великий коллективный разум подсказывает нам три проекта:
- Android-x86 — проект от энтузиастов по портированию Android на устаревшие нетбуки, среди которых есть и мой ASUS (бинго!). Поставляется в комплекте с обычным ядром Linux и всеми драйверами, которые могут понадобиться. В теории должен запуститься везде, где способны работать классические Linux-дистрибутивы, но никто этого не проверял. Есть и недостаток: это «просто Android» без всяких оптимизаций интерфейса и самой системы.
- Android-IA — официальный проект Intel по портированию Android на свои атомы. По идее, должен быть предпочтительнее предыдущего, но в реальности представляет собой всего лишь систему для разработчиков, которую можно запустить на плате MinnowBoard MAX. Нам не подходит, но, с другой стороны, интеловцы коммитят наработки проекта в AOSP, поэтому в теории они должны быть доступны и в Android-x86.
- Remix OS — прямо мечта «настольного андроидовода». Глубоко модифицированный вариант Android с плавающими окнами и панелью задач. Выглядит отлично, работает, наверное, еще лучше. Недавно Remix OS еще была закрыта и доступна только для планшетов Nexus 9/10, Cube i7, Teclast X98 Air3 и устройств компании, ее разработавшей, — это мини-ПК Remix Mini (всего 70 долларов на Amazon, кстати) и планшет Remix Ultra-Tablet. Теперь уже доступна и полноценная версия для PC (однако на момент проведения эксперимента анонса о ее выходе не было).
Хакер #204. Шифровальщик для Android
ОK, раз уж выбора нет, идем на сайт Android-x86 и качаем последнюю сборку системы (тут она одна для всех устройств), то есть ни много ни мало Android 5.1 (а в виде альфы даже 6.0). Неплохо, неплохо (потирая руки). Качаем, вставляем SD-карту в кардридер основного компа и записываем на нее систему одной, знакомой любому линуксоиду командой:
sudo dd if=~/Downloads/android-x86-5.1-rc1.iso of=/dev/sdb bs=1M
По окончании записи вставляем карту в нетбук и включаем его, удерживая кнопку Esc. Android-x86 встречает нас загрузчиком GRUB с несколькими вариантами загрузки: режим Live USB, то же самое с отладкой и установка на жесткий диск. Чтобы убедиться, что «оно работает», выбираем первый пункт, дожидаемся, пока появится рабочий стол, выключаем нетбук и возвращаем карту памяти в основной комп.
Следующая задача: установить полноценную систему, но не на жесткий диск нетбука, а на ту же карту памяти. Сделать это довольно просто: запускаем VirtualBox, создаем новую виртуалку без жесткого диска, в качестве загрузочного диска указываем ISO-образ Android-x86, прокидываем в виртуалку USB, втыкаем в USB кардридер с картой памяти, включаем виртуалку и ставим систему на карту памяти (инсталлятор простейший, достаточно выбрать, куда ставить, и файловую систему). Вуаля, у нас есть версия Android для нетбуков, установленная на карту памяти.
Пробуем загрузиться... Упс, черный экран и мигающий курсор. Такое бывает только в двух случаях: либо сдох жесткий диск или SD-карта, либо на ней нет загрузчика. Карта памяти живая, значит, нас подвел инсталлятор и не установил бутлоадер (хотя в ответ на вопрос об установке GRUB я ответил утвердительно). Но не беда, из Linux установить GRUB проще простого. Подключаем карту памяти:
sudo mount /dev/sdb1 /mnt
Ставим GRUB 2:
sudo grub-install /dev/sdb --boot-directory=/mnt
И создаем простенький конфиг /mnt/grub/grub.conf:
set default='0'
set timeout=6
set root='(hd0,1)'
menuentry 'Android-x86 5.1-rc1' {
linux /android-5.1-rc1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img
}
menuentry 'Android-x86 5.1-rc1 (Debug mode)' {
linux /android-5.1-rc1/kernel root=/dev/ram0 androidboot.hardware=android_x86 DEBUG=2 SRC=/android-5.1-rc1
initrd /android-5.1-rc1/initrd.img
}
Пробуем загрузиться снова, пошла загрузка ядра, надпись ANDROID, рабочий стол. Все отлично.
Оно живое!
Осматриваемся в системе, на первый взгляд — обычный Android в исполнении для планшетов. Проверяем железо: Wi-Fi коннектится, значок батареи отображает корректные значения (правда, детальной статистики по процессам нет), музыка играет, воткнутые флешки распознаются, 3D-ускорение работает (спасибо тебе, Intel, за открытые драйверы!), приложения не крашатся. Проходим аутентификацию, начинают сыпаться письма и уведомления об обновлении встроенного софта. Пробуем установить Super Hexagon, запускается, бегает без лагов. При перемещении пальца по тачпаду на экране появляется указатель в виде круга, символизирующего палец. Круг показывает не только нажатия, но и перетаскивания, причем для нескольких пальцев тоже. Мышь легко распознается без танцев с бубном, и ее указатель уже превращается в обычную стрелочку.
Есть и довольно развитая система стандартных для Android хоткеев, позволяющая по минимуму прикасаться к тачпаду. Есть хоткеи для навигации по рабочему столу (иконки можно выбирать стрелочками и запускать с помощью клавиши Enter) и эмуляции кнопок навигации (Esc — «Назад», <Win + Esc> — «Домой», <Ctrl + Esc> — «Меню»). Хоткеи для переключения между приложениями (стандартные <Alt + Tab> и <Alt + Shift + Tab>) и для смены раскладки клавиатуры (<Ctrl + пробел>). Правда, чтобы переключение заработало, необходимо выбрать предпочтительные раскладки в настройках: «Язык и ввод -> Физическая клавиатура -> AT Translated Set 2 keyboard -> Настроить раскладки клавиатуры». Стандартный браузер и Chrome также поддерживают хоткеи (те самые <Ctrl + L>, <Ctrl + T>, <Ctrl + W> и так далее). По интерфейсу большинства приложений можно «ходить» с помощью клавиши Tab и все тех же стрелок. Работают даже стандартные хоткеи нетбука, доступные по клавише Fn, с их помощью можно включать/выключать Wi-Fi, регулировать яркость и уровень громкости.
Система идет в комплекте с маркетом, Gmail, YouTube, терминалом, файловым менеджером, правами root и предустановленным BusyBox (то есть здесь есть весь набор стандартных команд UNIX/Linux). По сочетанию <Alt + F1>, как и в любом Linux-дистрибутиве, доступна голая консоль, возврат обратно — <Alt + F7>. Для более эффективной работы можно установить двухпанельный файловый менеджер Ghost Commander (отлично управляется с клавиатуры), редактор Vim Touch и даже полноценную среду разработки Android-приложений AIDE.
Вроде бы все работает, единственное замечание — небольшие замирания системы при записи данных на SD-карту. Но это проблема всех операционок, устанавливаемых на флешки (не Live USB, а именно полноценная установка), уверен, что в случае с жестким диском ее не будет (говорю как человек, несколько месяцев просидевший в Linux’е, установленном на флешку).
Проблемы и недостатки
Есть и несколько фундаментальных недостатков. Если не брать в расчет отсутствие удобной панели задач и необходимость вытягивать шторку мышкой (что довольно неудобно), то первое, что бросается в глаза, — это совершенно бесполезная на нетбуке панель навигации внизу экрана. Она не дает ничего, но отнимает далеко не лишнее пространство.
К счастью, панель можно спрятать раз и навсегда с помощью простого и довольно известного трюка: записать строку qemu.hw.mainkeys=1 в файл /system/build.prop
и перезагрузиться. С помощью терминала эта операция производится в три команды:
su
echo qemu.hw.mainkeys=1 >> /system/build.prop
reboot
Вторая проблема: совместимость с приложениями для платформы ARM. Оказывается, разработчиков, предпочитающих использовать в своих приложениях библиотеки на языках C и C++, гораздо больше, чем разработчиков игр. И далеко не все из них подготавливают сборки библиотек для платформ, отличных от ARM. Причем дело касается не только каких-то программистов-одиночек, но и крупных компаний. Тот же Skype в Android-x86 из коробки не работает.
На этот счет у Android-x86 есть козырь: механизм динамической трансляции ARM-кода в x86. Активируется в настройках (пункт Apps Compatibility). После его включения и перезагрузки Skype благополучно запустился. Запустились и многие игры из маркета, но с провалами производительности из-за издержек на трансляцию.
Третья проблема: интерфейс. Современные версии Android рассчитаны на устройства с небольшими экранами, DPI которых выше 300. Это примерно соответствует 5-дюймовому экрану с не менее чем HD-разрешением. Поэтому на 10-дюймовом экране с разрешением 1024 x 600 многие элементы интерфейса выглядят размытыми, особенно иконки и шрифты. Я бы не сказал, что это сильно мешает работе с устройством, но шрифт все-таки лучше поменять на более адекватный. Сделать это можно с помощью любого менеджера шрифтов, например Font Installer.
Еще одна серьезная проблема: баг в механизме управления сном устройства. Нетбук исправно засыпает и просыпается, но после пробуждения просто зависает. Консоль по клавишам <Alt + F1> остается доступна, но толку от нее мало, так как даже убийство zygote (которое приводит к так называемой мягкой перезагрузке) не помогает, нетбук уходит в «бутлуп» с бесконечно переливающейся надписью Android на экране.
Судя по сообщениям на форуме, баг появился именно в сборке на базе Android 5.1, а значит, в скором времени будет исправлен. Пока же это очень серьезное ограничение, мешающее эффективно использовать устройство. Во всем остальном система работает как часы, и я не заметил каких-то серьезных проблем, используя нетбук для переписки по почте, чтения новостей, игры в Super Hexagon и броузинга интернета. Последнее, правда, оказалось довольно извращенным занятием, так как все браузеры изрядно тормозят, но в Linux на этом нетбуке ситуация не намного лучше. Chrome, например, практически неюзабелен.
В сухом остатке
В целом Android на нетбуке действительно неплох, и его вполне можно использовать как основную операционную систему. Главная фишка такого решения — огромное количество легковесного софта, включая клиенты всех сколько-нибудь популярных облачных сервисов. Для пользователей, которые хотят приспособить свой старенький нетбук для сидения в контактах и фейсбуках, это отличный выбор.
С другой стороны, сидеть в контактах и фейсбуках уже давно принято с телефонов, поэтому и нетбук не особо нужен. Я же для себя решил оставить Android-x86 на карте памяти как средство для удобного чтения новостей и общения. На жестком диске остается привычный Arch Linux с минималистичным рабочим столом и полным управлением с клавиатуры.