Запускаем 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-2017
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.
«Партнер Рамблера» Почта защищена сервером "СПАМОРЕЗ" Хостинг "Fornex"