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

Mobile Технологии
автор : Андрей Васильков  15 сентября  2015

Устаревший смартфон часто оставляют на всякий случай или продают за бесценок. Между тем, его можно использовать для разных экспериментов, а полученные навыки затем перенести на актуальную модель, уже зная все подводные камни. На прежнем смартфоне можно даже поднять 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-серверов, смартфон продолжает работать в обычном режиме и никак не выдаёт свою тайную миссию.

Поделиться
Поделиться
Tweet
Google
 
Читайте также
  • Vitalie Bureanu

    Отличная статья! Большое спасибо!!!

  • Алексей Семёнов

    плохо, что нет доступа к андроиду. а было бы очень интересно. при полном доступе к железу.

    • Андрей Васильков

      Доступ к ресурсам Android задаётся в настройках. Просто этот флажок снят по умолчанию.

  • Lifeless Shade

    Я подозреваю, что бедный смартфон придётся постоянно держать на зарядке от таких процедур.

    • Андрей Васильков

      Он стал чуть притормаживать, когда запущен Linux-сервер, но разряжается не больше чем при активном использовании. Особенно если выключить экран и рулить удалённо. За четыре года батарея села, смартфон в любом случае утром и вечером заряжается.

  • Евгений Остапенко

    Я рутовал свой смартфон с помощью Framaroot. Это как раз «полулегальное мобильные приложения, выполняющее рутирование по заимствованной у вирусов технологии». Плюс — всё делается «в один клик» и не ставит никакого мусора, минус — поддерживает не все модели.

    • Андрей Васильков

      Таких утилит больше десятка. Ощущение, что Root Genius их прародитель.

  • Карим Мусаев

    Андрей, а есть ли вариант чтоб Линукс был не в «песочнице» Андроида, а вообще установить начисто вместо Андроида??

    • Андрей Васильков

      Да, поддержка архитектуры ARM есть во многих версиях Linux, но возможности использовать USB-OTG и сетевые интерфейсы зависит от наличия драйверов и вспомогательных компонентов. Для Nexus с четвёртого по десятый (смартфоны и планшеты) есть готовые образы Kali Linux NetHunter.
      https://www.offensive-security.com/kali-linux-nethunter-download/
      Большинство других ставится руками в несколько этапов.
      Здесь описано, как поставить на смартфон Archlinux http://habrahabr.ru/post/221543/
      Тут интересен пункт про установку Gentoo на выделенный раздел ext2 https://xakep.ru/2012/10/22/android-tablet-linux-install/. Статья немного устарела, но базовые принципы остались. Сейчас многое делать стало гораздо проще. Лучше железо, больше готового софта.

  • Aleksey Kazban

    Объясните, пожалуйста, старому, для чего сия чудеса. Разобраться хочу. Да и смартфон лежит без дела.

    • Андрей Васильков

      На этот вопрос за меня в ветке редакционных анонсов ответил читатель с ником Gray KS:
      «… вообще на телефон можно поставить Kali и снифферить трафик, чтобы
      передать «большому брату» для подбора ключа. Можно превратить старенький
      телефончик в «домашний недосервачек — сидбокс», или вообще развернуть
      сайт))) Можно даже «недороутер» из этой штуки сделать или прокси-сервер
      для дома. Короче лишь воображение вам будет ограничением) Все что можно с Raspberry Pi — можно сделать и тут».

Хостинг "ИТ-ГРАД"
© ООО "Компьютерра-Онлайн", 1997-2018
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.
--> --> --> --> --> --> --> --> --> -->