company_banner

AnLinux: простой способ установить Linux-окружение на Android-телефон без рута

Автор оригинала: Al Williams
  • Перевод


Любой телефон или планшет, работающий на Android, — это устройство, которое управляется ОС Linux. Да, очень модифицированной ОС, но все же основа Android — ядро Linux. Но, к сожалению, для большинства телефонов опция «снести Android и поставить дистрибутив по своему вкусу» недоступна.

Поэтому, если хочется Linux на телефоне, приходится покупать специализированные гаджеты вроде PinePhone, о котором мы уже писали в одной из статей. Но есть еще один способ получить Linux-окружение практически на любом смартфоне, причем без root-доступа. Поможет в этом инсталлятор, который называется AnLinux.

Что такое AnLinux?


Это специализированное ПО, которое дает возможность использовать Linux на телефоне при помощи монтирования образа, содержащего root-файловую систему любого из дистрибутивов, включая Ubuntu, Kali, Fedora, CentOS, OpenSuse, Arch, Alpine и многих других. Инсталлятор использует PRoot для эмуляции root-доступа.

PRoot перехватывает все выполняемые пользователем вызовы, которые требуют в обычной ситуации root-доступа, и обеспечивает их работоспособность в обычных условиях. В PRoot используется системный вызов ptrace для отладки ПО, который помогает достичь цели. С PRoot все это можно сделать как с chroot, но без root-прав. Кроме того, PRoot предоставляет фейковый доступ пользователю для пседвофайловой системы.

AnLinux — небольшая программа. Но этого достаточно, ведь единственное ее предназначение — установка образов систем и запуск скриптов, поднимающих пользовательское окружение. Когда все сделано, пользователь получает вместо смартфона Linux-ПК, причем Android продолжает работать на фоне. Подключаемся к устройству при помощи VNC-вьювера или терминала, и можно работать.

Конечно, это не идеальный вариант «завести» Linux на смартфоне, но он вполне рабочий.

С чего начать?


Основное — Android-смартфон с версией ОС не ниже Lollipop. Кроме того, пойдет и 32-битное или 64-битное ARM или x86-устройство. Кроме того, потребуется солидный объем свободного файлового пространства. Для этого можно использовать карту памяти или просто устройство с большим объемом внутренней памяти.

Кроме того, потребуется:

  • AnLinux (вот ссылка на Google Play).
  • Termux (снова понадобится Google Play).
  • VNC Client (VNC Viewer — хороший вариант).
  • Bluetooth-клавиатура (опционально).
  • Bluetooth-мышь (опционально).
  • HDMI кабель для мобильного телефона (опционально).

Termux и VNC нужны для получения доступа к своему «компьютеру на Linux». Последние три элемента требуются лишь для того, чтобы обеспечить комфортную работу с телефоном и установщиком. HDMI-кабель нужен только в том случае, если пользователю удобнее работать с большим экраном, а не вглядываться в дисплей телефона.

Что же, приступим




Как только установлен Termux, получаем полноценную консоль. Да, рута нет (если телефон не рутован), но ничего страшного. Следующий шаг — установка образа для дистрибутива Linux.

Теперь нужно открыть AnLinux и затем — выбрать Dashboard из меню. Всего есть три кнопки, но выбрать можно лишь одну, первую. После этого появляется меню выбора дистрибутива. Можно выбрать даже не один, а несколько, но в этом случае понадобится большой объем свободного файлового пространства.

После выбора дистрибутива активируются две другие кнопки. Вторая позволяет загрузить в буфер обмена команды, необходимые для загрузки и установки Linux. Обычно это pkg, wget команды и скрипт для их выполнения.



Третья кнопка запускает Termux, так что команды можно вставлять в консоль. Как только все сделано, запускается скрипт, позволяющий загрузить окружение дистрибутива. Для вызова дистрибутива нужно каждый раз запускать скрипт, но установку проводим только один раз.

А что с графической оболочкой?


Если она нужна, то следует лишь выбрать меню для десктопного окружения и использовать больше кнопок — появится не три, а больше. Кроме самого дистрибутива, нужно выбрать еще и оболочку, например, Xfce4, Mate, LXQt или LXDE. В целом, ничего сложного.

Потом кроме скрипта, который запускает дистрибутив, потребуется еще один — он активирует сервер VNC. В целом, весь процесс простой и понятный, он вряд ли способен вызвать затруднения.

После запуска сервера VNC подключаемся со стороны клиента, воспользовавшись вьювером. Требуется знать порт и localhost. Все это сообщает скрипт. Если все сделано правильно, то пользователь получает доступ к своей виртуальной Linux-системе. Производительность современных телефонов на высоте, так что особых проблем не будет. Конечно, вряд ли смартфон сможет полностью заменить десктоп, но, в целом, все это работает.

Этот способ может пригодиться, если вдруг нужно срочно подключиться к серверу, а вы в машине, без ноутбука (конечно, в этом случае все описанные выше операции с AnLinux уже должны быть выполнены). Виртуальная Linux-машина позволяет подключиться к рабочему или домашнему серверу. А если в автомобиле по какой-то причине оказался дисплей и беспроводная клавиатура, то за считанные секунды в салоне можно организовать рабочий кабинет.

Selectel
ИТ-инфраструктура для бизнеса

Комментарии 30

    +3
    Пример использования не очень: если надо «срочно подключиться к серверу» – проще поставить на смартфон ssh и/или vnc клиент. Впрочем, другие применения найдутся.
      +4
      Все эти линуксы на телефоне — не более чем игрушка на вечер (я сам такое люблю, если вдруг что), а применение их формируется на пустом месте чтобы избежать комментов из разряда зачем это все надо. А остальные и так понимают зачем)
        0

        А ведь у меня было что он мне реально нужен был. Писал даже об этом https://m.habr.com/ru/post/275595/
        Ну а так вы правы, это больше игрушка без реального применения.

      +2
      Осталось поставить Wine и Windows.
      +5

      Упомянутый Termux — сам по себе неплохой "линукс". Есть ряд базовых утилит, а также даже свой пакетный менеджер, позволяющий много чего установить дополнительно.

        0

        Причём в сочетании с PRoot можно устанавливать другие дистрибутивы, чтобы уже собранные бинарники работали. Например code-server заводится под «убунтой» для PRoot, хотя и от убунты там почти ничего нет.

        +2

        Какие реальные кейсы у подобных инсталляций?

          0

          В теории, возможность работать за одним и тем же устройством, которое можно всегда взять с собой и носить в кармане, мне лично очень нравится. На практике, как мне кажется, так пока что не работает, хотя и вычислительной мощности современных смартфонов для реализации подобного в целом должно быть достаточно.

            0
            Лично я использую Termux, когда надо что-то именно с Андроида потестить. В этом смысле незаменимая штука.
              +1
              Что-то поделать руками и поглубже покопаться в телефоне чтобы отдохнуть от другой работы? На самом деле самый реальный кейс из всех.
                0

                Под Андроид нет нормальных редакторов кода или сред разработки. И если человек и так таскает с собой планшет, то взять ещё и компактную клаву и получить возможность нормально покодить где-то в дороге — бесценно. Я для этих целей ноут с собой таскаю..

                  +1

                  Я например так обновляю конфиги на ФФ, так как их у меня несколько установлено. Не надо вручную в about:config заходить.
                  Еще загружаю видаки с помощью youtube-dl

                    0
                    Для youtube-dl достаточно только Termux. А вот для первого нужен рут, а так тоже Termux достаточно.
                      0

                      Да, я пользуюсь только Termux, не вижу необходимости в AnLinux

                  0

                  Есть ещё «XServer XSDL». Я его использую вместо VNC и так получается заметно шустрее.

                    0
                    К сожалению, на сегодняшний день нет замены ноуту с нормальным линуксом.
                      0
                      Смотря для чего.
                      0
                      Подскажите, пожалуйста, что за клавиатура изображена на фото к посту?
                        0

                        AVATTO B033 с али.

                        +1
                        Запуск привычных программ под Линукс, для которых нет порта для Андроид.
                        Вполне оправдывает.
                          0
                          Если что, это перевод статьи hackaday.com/2020/10/07/linux-fu-the-linux-android-convergence
                            0

                            Сам по себе AnLinux ничего не делает, это просто ланчер, который говорит Termux какие пакеты поставить. Termux неплохо много чего умеет, но он использует какие-то свои репозитарии и чуть более сложные программы в нём не работают или работают плохо, также там есть отсавание по версиям.
                            Есть замечательный проект, который решает все эти проблемы: https://userland.tech/
                            Он позволяет запустить в Proot контейнере несколько полноценных версий линукса: Ubuntu, Debian, Alpine. Конечно ограчения контейнера всё равно где-то заметны, но количество софта, которое нормально работает гораздо больше, чем под Termux. Например я могу выкачать свой репозитарий с Angular 10 фронтом и .net core 3.1 backend, собрать всё и запустить прямо на телефоне. Причём работает всё вполне с разумной скоростью, долго только пакеты выкачиваются первый раз. Также успешно запускается MariaDB, Mongo вроде пробовал, но не помню результат. Есть доступ по SSH из сети, то есть вы можете сделать свой реальный сервер на телефоне, только придётся поковыряться в настройках экономии энергии, чтобы телефон не убивал контейнер.
                            Вопрос "зачем?" задавать не вижу смысла, любому гику понравится идея запустить полноценный веб хостинг прямо на телефоне — это же весело :)

                              +2

                              PS Чтобы удобнее было ковыряться в терминале стоит установить Hacker's keyboard, там есть все обычные кнопки от настольной физической клавиатуры

                                0
                                Аж олдскулы свело )
                                нашел папку с гугл нексуса 2012 года, она там родная
                                0
                                Сам на себе хостил демо бота для телеграма)
                                0
                                Сode server или Jupiter notebook нормально работают. Можно что-то мелкое кодить в метро с планшета с клавиатурой.
                                  0

                                  Я как то ставил имидж, через другую прогу. Работает, хоть и неудобно. Даже netbeans поставил туда потом что бы код править. Но на таком экране это сложно, да еще и с экранной клавой.


                                  Хочу себе купить gpd win 2 или что то подобное.

                                    0
                                    Прекратите уже переводить «storage» как «память» — не надо плодить безграмотность.
                                      0
                                      Чего только не придумают, лишь-бы шишкофон не покупать. ;-)

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое