Запускаем Linux-сервер на смартфоне

Устаревший смартфон часто оставляют на всякий случай или продают за бесценок. Между тем, его можно использовать для разных экспериментов, а полученные навыки затем перенести на актуальную модель, уже зная все подводные камни. На прежнем смартфоне можно даже поднять Linux-сервер с управлением по SSH и VNC, который будет работает поверх любой версии Android, начиная с 2.1. Выбор дистрибутивов с поддержкой архитектуры ARM и ARM64 уже достаточно большой – от пушистой Убунты до зубастой Кали. Смартфоном при этом можно пользоваться как обычно. Приложения, данные – всё остаётся как было и работает параллельно.

Kali Linux 2.0 ARM на смартфоне Samsung GT-I9250 с удалённым управлением через VNC.
Kali Linux 2.0 ARM на смартфоне Samsung GT-I9250 с удалённым управлением через VNC.

Поскольку доступ к системному разделу во внутренней памяти смартфона с ОС Android изначально закрыт, сперва мы получим права root. Как именно рутировать – зависит от конкретной модели. В альтернативных прошивках (например, CyanogenMod) рут уже может быть изначально, а в стоковые он добавляется множеством способов, которые можно разделить на два принципиально разных подхода.

Первый основан на ручной замене загрузчика и оболочки восстановления (recovery), а второй – на внесении изменений в системный раздел смартфона с помощью рутирующей программы для Windows. При подключении его к компьютеру она использует функцию отладки по USB и часто может выполнять все действия автоматически.

Настройки утилиты KingRoot.
Настройки утилиты KingRoot.

Первый вариант подходит любителям полного контроля и олдскульных пошаговых стратегий. Сначала надо сделать полный бэкап, потом установить кастомный вариант рекавери, сделать из неё очистку кэша, инсталлировать SuperUser.apk (или другую программу, раздающую права суперпользователя по запросу) и пару раз перезагрузиться в процессе.

Второй вариант допускает однокликовые решения. Просто подключаете смартфон к компьютеру, запускаете одну из китайских программ для Windows (Root Genius, King Root или подобную) и ждёте пару минут.

KingRoot поддерживает свыше ста тысяч моделей смартфонов, планшетов и прочих гаджетов с Android.
KingRoot поддерживает свыше ста тысяч моделей смартфонов, планшетов и прочих гаджетов с Android.

Последний способ получил интересное развитие: вслед за троянами для Android появились полулегальные мобильные приложения, выполняющие рутирование по заимствованной у вирусов технологии. После разрешения устанавливать софт из сторонних источников и включения отладки по USB, они запускаются со смартфона и выполняют все те же действия, что и программа для Windows. В большинстве случаев даже не требуется перезагрузка.

Поскольку любое рутирование смартфона – непредусмотренная производителем процедура, утилиты для её выполнения часто опознаются как потенциально опасные приложения (PUA/PUP) многими антивирусами.

Антивирусы опознают утилиты рутирования как потенциально опасные программы.
Антивирусы опознают утилиты рутирования как потенциально опасные программы.

В моём эксперименте на Samsung Galaxy Nexus (модель 2011 года) рут был получен через минуту после запуска KingRoot v.4.1. Плюс в том, что все процедуры прошли автоматически и без перезагрузки. Приложения и настройки остались на своих местах. Минус – помимо SuperUser.apk были установлены бесполезные «оптимизаторы системы», рекламирующие приложения от того же разработчика. Выкорчевать их довольно сложно –понадобится мощная утилита вроде Titanium Backup и детальный анализ внесённых изменений. Ленивые могут не запускать этот мелкий мусор и игнорировать его в общем списке.

Чтобы запустить на смартфоне Linux, нам также понадобится набор консольных утилит для подключения сторонних модулей ядра – BusyBox и приложение для автоматического развёртывания выбранного дистрибутива – Linux Deploy.

BusyBox устанавливается как обычное приложение, а в кастомных прошивках он часто уже интегрирован. Программа Linux Deploy по принципу работы похожа на утилиту UNetbootin – она скачивает указанный дистрибутив Linux с официального зеркала и выполняет его установку. В данном случае – на образ диска, который монтируется из файла или отдельного раздела на карте памяти.

Настройка Linux и выбор графической среды.
Настройка Linux и выбор графической среды.

Перед установкой можно задать множество настроек, включая выбор графической среды, размер образа и его расположение. По умолчанию предлагается сохранить образ на microSD, в связи с чем могут возникнуть затруднения. Во-первых, при её форматировании в FAT32 предельный размер одного файла должен быть меньше 4096 МБ. Во-вторых, некоторые аппараты не поддерживают карты памяти. В частности, мой третий «Нексус» эмулирует её символической ссылкой, а Linux Deploy наотрез отказывается работать с каталогом /emulated/.

Поэтому приходится обходить указанные ограничения. Если у смартфона есть картридер (а таких большинство), то можно переформатировать карту памяти в ext3 или ext4. Тогда снимается ограничение на максимальный размер файла, но её уже не смогут прочесть устройства без поддержки этих файловых систем (в частности – компьютер с Windows). Поэтому удобнее создать на ней два логических раздела: первый – с FAT32, а второй – с ext3/4.

Создание двух разделов на microSD(HC) в Windows.
Создание двух разделов на microSD(HC) в Windows.

При невозможности использовать карту памяти можно выбрать запись образа в файл, а в пути его размещения указать системный раздел во внутренней памяти смартфона. В любом случае? после развёртывания Linux будет запускаться в окружении chroot и работать параллельно с Android. Любые изменения произойдут в виртуализированной среде и могут быть полностью отменены. По умолчанию для повышения безопасности у Linux даже нет доступа к ресурсам Android.

Настройки параметров окружения и удалённого доступа в Linux на смартфоне.
Настройки параметров окружения и удалённого доступа в Linux на смартфоне.

По нажатию одной кнопки программа Linux Deploy автоматически настраивает рабочее окружение, запускает (по желанию пользователя) серверы и графическую среду (выбирается при установке). В консольном режиме управление выполняется по SSH, а в графическом – через VNC, X Server или Framebuffer. IP-адрес для подключения указывается в заголовке запущенного профиля, порты используются стандартные, а логин и пароль задаются в настройках.

Установка Slackware ARM 14.2 на виртуальный диск в смартфоне.
Установка Slackware ARM 14.2 на виртуальный диск в смартфоне.

С помощью Linux Deploy можно выполнить установку нескольких дистрибутивов и переключаться между ними через менеджер профилей. Управлять любым из них можно как с самого смартфона (VNC Viewer, SSH-клиент), так и удалённо. Когда вы подключаетесь к одному из запущенных Linux-серверов, смартфон продолжает работать в обычном режиме и никак не выдаёт свою тайную миссию.



Андрей Васильков, Компьютерра





Последние новости

Подгружаем последние новости