Как установить linux на андроид
Перейти к содержимому

Как установить linux на андроид

  • автор:

Linux для Android — установка и запуск Ubuntu на телефоне

Мобильные телефоны под управлением Android сегодня пользуются огромной популярностью. Когда-то их не воспринимали всерьез, но на данный момент эта операционная система стала самой популярной среди портативных девайсов. Несмотря на это, некоторые люди пытаются установить Linux на Android. У каждого из них свои цели: удобство, расширенные возможности и возможность самостоятельного обновления и т. д. Ниже подробно рассмотрено, как происходит установка Linux на планшет вместо Android и нужно ли при этом использовать Emulator.

В чем разница между Linux и Android

Те, кто активно пользуется операционной системой Linux на своем персональном компьютере или ноутбуке, знает, что она довольно сильно отличается от мобильной ОС андроид. Очевидно, что это две разные платформы, одна из которых ориентирована на ПК, а другая — на портативные гаджеты. Android больше ориентирован для сенсорных экранов и взаимодействие с ними, то время как Линукс по большей части способен лишь выполнять операции через мышь и клавиатуру.

Девайсы с Ubuntu for Android

Мало кто знает, но есть у них и много общего. Мобильная платформа создана на ядре Linux и использует собственную реализацию Java Virtual Machine от компании Google. Это их объединяющая черта, которая связывает системы по многих параметрам. Так, например, права суперпользователя на мобильных девайсах появились вследствие создания учетной записи администратора (root) на Unix-подобных системах.

Андроид — очень многофункциональная система, что объясняется наличием поддержки Java-модулей. Чистый линукс можно представить как ОС, которая идеально подходит для устройств с ограниченными функциям: тостеров, холодильников, стиральных машин и т. д. Она позволяет этим приборам использовать всю мощь и оптимизацию Unix, которая может быть дополнена огромным количеством программ и функций для работы с периферией и датчиками.

К сведению! Смартфоны не являются однофункциональными гаджетами и часто искажают традиционные представления о линукс. Однако андроид позволяет производителям и пользователям использовать собственные схемы его использования для обновления, корректировки ОС под себя и т. д.

Поставить линукс на телефон сегодня вполне возможно

Можно ли установить линукс на планшет или телефон вместо андроида

Установить вместо андроид линукс вполне возможно. Обычно это делают на планшетный ПК, так как их экран достаточно большой, чтобы отображать командную строку или графический интерфейс в полном объеме.

Мобильных аппаратов (смартфонов), которые бы поддерживали операционную систему линукс в стоковом состоянии, практически не существует. На сегодня есть всего одна единственная модель смартфона, которая работает на Ubuntu — ОС, также основанной на Linux и Debian GNU. Найти и приобрести такой девайс достаточно сложно, так как есть он в свободном доступе не в каждой стране.

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

Обратите внимание! По данному направлению ведут активные разработки, и многие программисты пытаются создать Linux-Android совместимую прошивку, но реальность такова, что до сих пор приходится изрядно постараться, чтобы запустить даже урезанную версию юникс на своем телефоне или планшете.

Некоторые фирмы уже начинают производить телефоны с предустановленной линукс

Зачем устанавливать линукс на смартфон

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

Другое дело — разработчики программного обеспечения, системные администраторы и другие IT-специалисты. Им данные манипуляции могут понадобиться для тестирования своих продуктов и повышения навыков работы с цифровыми устройствами. Для полноценной работы такой подход будет крайне сомнительным. Однако если смотреть на мобильный линукс с точки зрения некоторого помощника, способного выручить в ситуациях, когда человек находится далеко от компьютера или в дороге, то такой вариант вполне имеет право на жизнь.

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

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

На смартфоны подойдет и Kali Linux

Подготовка к установке Ubuntu на устройство Android

Установка Linux на андроид должна начинаться с проверки системных требований этой операционной системы, а точнее ресурсов, которыми располагает устройство. Для нормальной работы линукса потребуется:

  • 4 гигабайта ОЗУ;
  • наличие поддержки файловой системы типа Ext2;
  • возможность получения привилегий суперпользователя и наличие этих прав;
  • поддержка loop-устройств ядром прошивки;
  • частота процессора более 1 ГГц.

Обратите внимание! Проверить эти данные можно в гарантийном талоне к девайсу или перейдя в соответствующий раздел настроек «Об устройстве».

Получение root-прав

В любом случае потребуется получить рут-права. Лучше всего сделать это с помощью программы KingRoot. Необходимо скачать и установить ее, предварительно отключив блокировку ненадежных источников в настройках безопасности телефона. В процессе скачивания и взлома желательно пользоваться подключением по беспроводной сети Wi-Fi для экономии интернет-трафика. Дальнейшие действия таковы:

  1. Отыскать созданный установленной программой ярлык и перейти по нему в основное окно.
  2. Приложение сразу же определит модель и версию устройства, а также скажет, имеются ли уже у пользователя рут-права. Когда процесс сканирования закончится, следует нажать на кнопку «Try to Root».
  3. Дождаться пока программа проведет взлом и сообщит об удачном или неудачном результате.

Важно! Если ПО не справилось с задачей, то можно воспользоваться и другими приложениями: Root ToolCase, OneClickRoot, Toverloop. Некоторые из них могут работать даже с самыми старыми прошивками андроида версий 1.6.х — 2.3.х.

Рутирование телефона — необходимая процедура для установки линукс

Установка библиотеки BusyBox

Нельзя установить компьютерную систему на андроид-устройство и без Busybox. Это по своей сути специальный набор консольных утилит для линукс-систем, который работает только на рутированных девайсах. Установка его выглядит следующим образом:

  1. Скачать и установить программу на свой телефон или планшет.
  2. Запустить приложение и принять все условия его использования.
  3. Выбрать определенную версию программы и указать путь до нее. Это должен быть «/system/bin».
  4. Установить чекбокс напротив пункта «Clean Mode».
  5. Выбрать параметры «Install» и «Smart install».
  6. Дождаться окончания установки и соответствующего уведомления.
  7. Перезагрузить свой девайс и опять войти в программу.
  8. Дождаться проведения сканирования и нажать на «Replace All».
  9. Выбрать пункты «Install» и «Smart install» еще раз и перезагрузить телефон. Только после этого приложение полностью готово к работе.

Процесс установки

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

Установка эмулятора терминала

Наиболее популярный эмулятор терминала типа Linux on Android можно скачать в официальном магазине Play Market (). Достаточно установить его на планшет и запустить в обычном режиме. После открытия основного рабочего окна необходимо ввести команду «su» и предоставить программе рут-доступ. Сделать это нужно обязательно, так как будут выполняться системные скрипты, которые использует Ubuntu.

Обратите внимание! Проверить работоспособность терминала просто. Достаточно вписать команду «busybox arping —help». Если система выдаст множество параметров, то все нормально. Если нет, то следует проверить гаджет на наличие рут-прав.

Скрипты в BusyBox помогают установиться систему

Загрузка скриптов и системы Ubuntu

Если установка терминала и предоставление ему соответствующих привилегий прошли успешно, то дело за малым, ведь следующие шаги достаточно просты. Необходимо подключить устройство к ПК в режиме USB-накопителя, чтобы SD-карта могла определиться на компьютере.

Далее следует создать на ней папку под названием «Ubuntu» и скачать некоторые файлы. Они содержат скрипты запуска и саму файловую систему ОС. После разархивации два файла перемещаются в созданный каталог.

Запуск Linux

На последнем шаге переходят в приложение с эмулятором терминала и снова вводят «su». Вторая команда выглядит так: «cd /mnt/sdcard». Для проверки работоспособности системы можно написать «ls» и проверить, распознает ли эмулятор папки, включая недавно созданную директорию.

Для запуска операционной системы вводят «cd/ubuntu», а потом — «sh ubuntu.sh». Начнется процесс установки, в конце которого потребуется указать разрешение экрана. Можно установить «1280×720» или меньшее, что повысит производительность.

Ubuntu на андроид должна устанавливаться довольно быстро

Обратите внимание! Теперь ОС работает, но увидеть ее будет нельзя. Для этого можно подключить графический интерфейс на основе любого клиента VNC, скачанного из Play Market. В них необходимо указывать логин (user), пароль (ubuntu) и адрес (localhost).

Какие могут возникнуть проблемы с инсталляцией Linux и как их решить

Наиболее часто появляется ошибка, при которой нельзя получить доступ к файловой системе или выполнить любой скрипт. Для ее решения нужно в первую очередь проверить наличие рут-прав. Некоторые наивно полагают, что сменить ОС можно и без привилегий суперпользователя.

Часто также появляется и сообщение «dd: opening `/storage/sdcard0/linux.img’: Read-only file system». Оно означает, что установленная система использует пространство имен для различных юзеров (SD-карта монтирована для пользователя, а не для root). Рекомендуется открыть программу SuperSU и в параметрах убрать галочку в пункте «Создать поименное разделение пространств».

Для входа в интерфейс пользователя потребуется установить клиент VNC

Теперь вопросов о том, как установить линукс на андроид, быть не должно. Несмотря на все сложности и риски, процесс этот под силу даже не самым опытным людям. Единственный вопрос: зачем им это.

Установка Linux на Android

Linux на Android

В рамках этой статьи мы детально расскажем как установить Linux на Android. Для установки и полноценной работы альтернативной системы вам потребуется: смартфон или планшет, программный эмулятор, права root и несколько гигабайт свободного места.

Установка приложения Complete Linux Installer

Вводим в меню поиска Google Play слово “emulator” и получаем список из нескольких десяткой примерно одинаковых утилит. Все они хороши, но мы остановили внимание на приложении Complete Linux Installer. Оно совершенно бесплатно, прекрасно локализовано и снабжено подробнейшей инструкцией для новичков. Программу можно загрузить из Google Play. Алгоритм установки программы ничем не отличается установки любого другого программного обеспечения, поэтому на этом моменте мы останавливаться не будем.

Price: Free

Работа с приложением Complete Linux Installer

Перед началом работы с программой хотелось бы подчеркнуть еще раз: то, что мы описываем в данной статье, это не установка Linux вместо Android, а эмуляция работы одной системы в другой.

Итак, запускаем приложение и соглашаемся на установку дополнительных программных компонентов. Именно работа с этими модулями впоследствии существенно облегчит вам работу в ОС Linux.

Первый запуск

Как и упоминалось ранее, данное программное обеспечение требует для полноценного функционирования права root, о чем приложение и напомнит вам во всплывающем окне. Предоставляем программе полный доступ к системным функциям мобильного устройства.

Запрос суперпользователя

На этом первоначальная подготовка эмулятора к работе закончена. Перед вами откроется основное меню приложения. Переходим к подпункту “Руководство по установке”.

Руководство по установке

Эмулятор просканирует аппаратную начинку вашего гаджета и выдаст список операционнок, которые гарантированно запустятся на вашем мобильном устройстве. Выбираем для примера Ubuntu 13.10.

Загрузка образа

С этого момента программа начинает “вести” вас по этапам установки операционной системы, сопровождая каждое необходимое действие подробнейшими инструкциями. Например, ознакомившись с требованиями эмулятора на первом шаге, обязательно установите “Терминал” и “VNC Viewer” на втором. Только после этого выбирайте пункт “Скачать образ”.

Загрузка файлов

Прочтите описание различий между дистрибутивами операционной системы Линукс и выберите необходимый именно вам.

Далее укажите приложению предпочтительный метод получения архива с образом системы (прямая загрузка или скачивание с помощью торрент-клиента) и дождитесь окончания загрузки файла. О том, как работать с торрент-файлами на Android-устройствах можно узнать из другой нашей статьи.

Операции с файлами

Создайте в корне внешнего накопителя гаджета папку с именем будущей системы. Это значительно упростит программе поиск необходимых файлов. В нашем случае мы создаем директорию “Ubuntu”. Распакуйте скачанный архив в эту папку.

В итоге в каталоге “Ubuntu” должны появиться два файла. Один из них – с расширением .img. Это и есть образ запускаемой платформы Линукс.

Завершение установки

После выполнения указанных действий перейдите в подпункт “Запуск” основного меню complete Linux Installer и перейдите во вспомогательное меню “Settings” в правом верхнем углу окна. Выбрав опцию “Изменить”, укажите приложению полный путь к исполняемому файлу системы. Подтвердите свой выбор нажатием на кнопку “Сохранить изменения”.

На этом очередной этап установки альтернативной операционной системы в память вашего гаджета закончен. Можете смело выбирать опцию “Запуск Linux”.

Запуск системы

Приложение в фоновом режиме запустит терминал для выполнения тестовых команд и запросит для него root-доступ к системным функциям устройства. Разрешаем.

Запрос системы

Теперь ваш смартфон или планшет сможет работать как эмулятор Linux для Android и вам будут доступны все возможности ОС с пингвином на логотипе – от выполнения простейших команд в терминале до установки полноценного графического окружения.

Рабочий стол Linux

  • Установка кастомной прошивки на Android
  • Установка Ubuntu на Android
  • Установка почтового сервиса Outlook на Android
  • Установка приложения Opera Mini на устройства Android
  • 3D ускорители на Android: виды и установка

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

Любой телефон или планшет, работающий на 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, получаем полноценную консоль. Да, рута нет (если телефон не рутован), но ничего страшного. Следующий шаг — установка образа для дистрибутива Linux.

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

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

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

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

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

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

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

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

Как установить Linux в chroot на любой Android

Как я думаю все знают, Android – операционная система, построенная на базе ядра Linux. Однако от этого самого Linux-а там осталось крайне мало чего. Свой дисплейный сервер, свой HAL, свой SDK для разработки приложений. А что если мы хотим большего? Что если я хочу получить на своём девайсе относительно полноценный Linux-терминал с возможностью ставить любой нужные мне софт?

Зачем? Ну как зачем, просто потому что хочу. Зачем вообще задаваться вопросом “Зачем?”, если ответ очевиден. Возможно, вы уже собрались написать в коментах что-то вроде “Дак есть же Termux”. Вот только далеко не все нативные приложения собраны под него, а попытка их собрать превращается в тот ещё квест. Да и у Termux есть системные требования – Android 7.0 как минимум. А у метода в этом гайде требований по сути нет, не считая рут-прав.

Дисклеймер

Здесь и далее предполагается, что у следующего этому гайду человека есть базовое понимание работы в терминале, а также все бекапы данные с устройства и съёмного диска (если для установки выбран оный). Я не несу никакой ответственности за окирпиченные девайсы, потерянные данные или иные последствия ВАШИХ действий с ВАШИМ девайсом.

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

Далее по статье будут предупреждения о потенциально опасных моментах, так что читать между строк или бежать сразу копи-пастить команды, не читая, не советую.

Ограничения

Тут нужно понимать, что Linux в chroot имеет некоторые особенности, которые могут помешать нормальной работе софта в нём. Если вы работали с Docker, то набор ограничений там примерно такой же.

  • Нет systemd , то есть управление службами через systemctl , просмотр логов через journalctl и прочее, вам недоступно;
  • Вы по-прежнему запущены поверх ядра Android, а в нём имеются далеко не все стандартные функции и модули, да и свои загрузить не выйдет;
  • Ваш процессор не стал x86-совместимым, так что про бинарный софт а-ля Steam можно забыть (хотя если вы достаточно извращенец, можно попробовать поднять qemu, но смысла в этом мало).

Что нам понадобится?

  • Устройство на базе Android. Версия Android значения не имеет, но вот версия ядра – да, об этом позже;
  • ROOT-доступ на этом самом устройства;
  • Какой-нибудь терминал. Если есть возможность использовать ADB, рекомендую его. Если нет, можно взять любое и тысяч приложений для этой задачи, например это (использовать терминалы со своим софтом а-ля Termux не рекомендуется);
  • Какое-то количество свободного места на нём, либо же карта памяти, USB флэшка и т. п.
  • Пара рук, способных набивать команды в упомянутом выше терминале, и немного мозга чтоб адаптироваться под особенности своего девайса

На старых устройствах также имеет смысл установить базовый пакет консольных утилит — BusyBox, хотя на Android 11 я обошёлся без него. Скачиваете приложение, ждёте пока оно что-то-там проверит, нажимаете Install внизу экрана. Ну и всё впринципе.

Далее по гайду предполагается что терминал у вас запущен от имени рута (то есть после запуска вы сделали команду su ), и напоминать о необходимости этого я не намерен.

Подготовка

Для начала, следует определиться со следующими вещами:

Какая у вас архитектура процессора и версия ядра? Точнее даже не архитектура процессора непосредственно, а под какую архитектуру собрано ядро вашего Android. Ответ на оба вопроса можно узнать, выполнив в терминале uname -a .

Эти вводные нам нужны, чтобы определиться с дистрибутивом, который будем разворачивать. Собственно я рекомендую смотреть в сторону ArchLinuxARM, поскольку его можно скачать сразу в виде архива для установки в chroot, что значительно упрощает нам задачу. Но если вы достаточно понимаете тему, можете взять любой другой. Но тут надо оговориться, что этот дистрибутив не запустится на ядре версии ниже, чем 3.2 , и доступен только для arm64 и armv7 . Так что если у вас ядро старее или архитектура armv6 , придётся смотреть в сторону других дистрибутивов (причём в сторону довольно древних версий).

Идём на страницу загрузки и качаем файл под вашу архитектуру процессора. А какой, зависит от архитектуры:

  • Если у вас aarch64 / arm64 / armv8 (это всё одно и то же), то качаем “ARMv8 AArch64 Multi-platform”;
  • Если armv7 , то “ARMv7 Multi-platform”

Скачиваем файл и переносим на устройство, не распаковывая.

Далее, следует определиться, куда мы будем его ставить.

Будем ставить раздел USB/SD-карты

Для начала, нужно разбить этот накопитель на 2 раздела: первый — в файловой системе FAT32 или exFAT для стандартного использования, второй — в ext2 / ext3 / ext4 для нашего недо-linux-а. Второй раздел рекомендую сделать размером хотя бы в 2 ГБ, а лучше — больше.

Как это сделать? Уже не моя проблема =) Тут вариантов куча. Если у вас на устройстве имеется кастомный Recovery (вроде TWRP, OrangeFox, CWM), можете воспользоваться им. Если такого нет, можете использовать любой софт для ПК, на подобии GParted. Файловые системы выбирайте из тех, что сможет прочитать ваш Android, для второго раздела рекомендую ext3 . В моём случае конфигурация была примерно такая (swap-раздел создаём по желанию):

Почему бы не отдать всю флэшку под систему? Потому что Android будет сыпать уведомления об ошибках и слёзно умолять нас переформатировать флэшку. Так что оставить основной раздел стоит.

Далее, нужно найти это блочное устройство в /dev/block . Сделать это можно различными путями, самый тупой из возможных: посмотреть через терминал содержимое этой папки и сориентироваться по названиям и количеству разделов:

ls /dev/block 

Ну или если ваш диск можно подключать и отключать “на горячую”, то можно тупо вывести содержимое папки до и после подключения, и посмотреть какое устройство появилось.

Нашли, в моём случае это /dev/block/mmcblk1p2 . В вашем случае название устройства может отличаться, далее по гайду будет указано куда вставлять этот найденный путь.

Если же вы ну прям совсем не можете сообразить где он, то попробуйте следующий метод.

…или будем ставить в образ диска

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

Для начала создадим образ через dd , сохранять его буду во встроенной памяти телефона по пути /data/linux.img . Если хотите хранить образ где-либо ещё, просто замените этот путь в последующих командах.

dd if=/dev/zero of=/data/linux.img bs=1M count=2048 

После count= указан размер нового образа в мегабайтах, можете изменить по необходимости. Теперь нужно отформатировать этот образ, советую выбрать ext3 :

mkfs.ext3 /data/linux.img 

Далее по гайду вместо пути к блочному устройтсву просто используйте /data/linux.img (или где вы там его создали).

Монтируем наш целевой диск

Собственно тут всё просто, создадим папку, например /data/linux :

mkdir /data/linux 

И смонтируем туда образ или раздел, в который собираемся ставить систему:

mount -t ext3 РАЗДЕЛ_ИЛИ_ОБРАЗ /data/linux 

Строку РАЗДЕЛ_ИЛИ_ОБРАЗ нужно заменить на путь к разделу, который вы создали и нашли выше (например /dev/block/mmcblk1p2 ), либо полный путь к образу (например /data/linux.img ).

Представим, что всё завершилось без ошибок. Проверим содержимое смонтированного тома и его размер:

ls -l /data/linux df -h /data/linux 

Распаковка, первый вход

Для начала, распакуем нашу базовую систему. Переходим в /data/linux и распаковываем туда ранее скачанный пакет:

cd /data/linux tar xzf /sdcard/ArchLinuxARM-aarch64-latest.tar.gz # Имя архива и путь могут отличаться, я-то без понятия куда вы его скачали 

После того, как архив распакуется, остаётся примонтировать основные системные виртуальные папки и войти в chroot.

Примечание: монтировать эти папки нужно один раз после перезагрузки. Повторный вызов этих команд mount —bind. может привести к их размонтированию в основной ОС, что приведёт к аварийному ребуту девайса

# Монтируем ведро папок mount -o bind /dev /data/linux/dev mount -o bind /dev/pts /data/linux/dev/pts mount -o bind /proc /data/linux/proc mount -o bind /sys /data/linux/sys # ПО ЖЕЛАНИЮ, если хотим иметь доступ к встроенной памяти из arch-а mkdir -p /data/linux/sdcard mount -o bind /data/media/0 /data/linux/sdcard/ # Входим в арч. Если команды выше уже выполнялись после ребута, то достаточно сразу выполнить chroot как указано ниже chroot /data/linux /bin/bash 

После вызова последней команды можно заметить, что консоль несколько изменилась =)

Рекомендую сразу выполнить команду . /etc/profile , чтоб не было ошибок “Команда не найдена”. Можно заметить, что теперь корневая директория ведёт на наш раздел/образ, и файлов Adnrdoid-а в ней больше не видать. Значит всё прошло успешно, добро пожаловать в ArchLinux.

Немного донастройки

Этот раздел специфичен для ArchLinux, если вы ставили другой дистрибутив, разбирайтесь сами =)

Для начала глянем, если ли инет:

ping google.com 

Если видимо ошибку а-ля “Could not resolve hostname”, то нужно создать файл /etc/resolv.conf с примерно таким содержимым:

nameserver 8.8.8.8 nameserver 8.8.4.4 

Далее можно настроить пакетный менеджер, удалить ядро арча (оно нам ни к чему, мы работаем на базе ядра андроида), и накатить обновления:

pacman-key --init pacman-key --populate archlinuxarm # Удалим ядро и прошивки, ибо они не нужны, а иначе он их будет обновлять # Минус пол гига занятого места =) pacman -Rc linux-firmware # Обновимся до упора pacman -Suy 

Поднимаем доступ по SSH

Для начала, убедимся, что он установлен (по идее должен):

pacman -S openssh # Видми надпись "Already up to date", можно отменить переустановку на Ctrl-C 

Далее выберем какой-нибудь пароль для ROOT-пользователя командой passwd . Плюс, чтобы мы смогли войти в систему от его имени, нужно в файле /etc/ssh/sshd_config добавить в конец строку:

PermitRootLogin yes 

ВАЖНО: Если ваше устройство является “подвижным”, то есть предполагается его вывод за пределы вашей личной Wi-Fi сети и подключение к иным (особенно общественным), включать доступ по ssh от имени рута будет не лучшей идеей. Лучше будет создать отдельного пользователя, и входить от его имени. Но для гайда и вход от рута пойдёт, указанную донастройку оставлю на ваше усмотрение.

Осталось генерировать ключи хоста и запустим сервер:

ssh-keygen -A /bin/sshd 

После описанных действий вы сможете войти в archlinux на вашем устройстве через ssh root@IP_АДРЕС , в рамках локальной сети понятное дело.

А теперь автоматизация

Остаётся один нюанс: после каждой перезагрузки устройства нужно заново монтировать над раздел/образ, все подразделы, и заново запускать sshd. Автоматизируем это дело пожалуй =)

Для начала создадим скрипт start_linux.sh для Android-а, который будет всё монтировать и запускать SSH-сервер. По сути можно создать его прямо в chroot, затем выйти из него переместить в требуемое место в системе Android. Либо же воспользоваться любым текстовым редактором и проводником в самом Android. Содержание скрипта примерно такое (не забываем делать корректировки под специфику вашей установки):

#!/system/bin/sh mkdir -p /data/linux # Простенькая функция для защиты от повторного монтирования =) bind_if_not()  if grep -qs "$2 " /proc/mounts then echo "$2 already mounted" else mount -o bind $1 $2 fi > # Монтируем раздел/образ # ЗАМЕНИТЕ /dev/block/mmcblk1p2 на свой вариант mount -t ext3 /dev/block/mmcblk1p2 /data/linux # Монтируем системные виртуальные ФС bind_if_not /dev /data/linux/dev bind_if_not /dev/pts /data/linux/dev/pts bind_if_not /proc /data/linux/proc bind_if_not /sys /data/linux/sys # Опционально, пробрасываем встроенную память bind_if_not /data/media/0 /data/linux/sdcard/ # Запускаем sshd внутри арча chroot /data/linux /bin/bash -c ". /etc/profile; /sbin/sshd" 

Далее нужно сделать этот скрипт исполняемым chmod +x start_linux.sh и поместить… куда-то, откуда система сможет его запустить при включении. Само собой нужно выйти из chroot и вернуться в обычный Android, прежде чем проверять, куда его поместить

Этот момент также специфичен для вашего девайса и его настроек, вот пара вариантов:

  • Если рут-права у вас получены через Magisk, то можно поместить его в папку /data/adb/service.d/ , тогда Magisk выполнит его при включении телефона;
  • Если у вас кастомная прошивка с поддержкой init.d, то можно кинуть его в /system/etc/init.d ;
  • Либо же можно найти сторонние приложения для запуска скриптов при включении устройства;
  • Либо же можно поместить его куда-нибудь в /data/ (например по пути /data/start_linux.sh ) и руками запускать после перезапуска устройства через терминал (сначала su , затем /data/start_linux.sh ).

А насколько далеко можно зайти?

В начале было сказано, что данный метод годится для любого Android-а. Но насколько любого?

Пользуясь описанным выше методом, я тупо взял и поднял Debian на Samsung Galaxy Ace, ядро 2.6, Android 2.3.7. Само собой это было не особо просто, поскольку процессор данного девайса работает на архитектуре armv6, и современные дистрибутивы подобное не поддерживают. Да и ядро 2.6 мешало процессу. Но, при желании и дольки безумия, всё возможно.

Пожалуйста, Debian 6 с рабочим SSH на (по нынешним меркам) простой звонилке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *