Arch linux для андроид

Содержание
  1. Android tethering (Русский)
  2. Contents
  3. Точка доступа Wi-Fi
  4. USB модем
  5. Использование systemd-networkd с udev
  6. USB-модем с AziLink
  7. Необходимые инструменты
  8. Настройка соединения с телефоном в Arch Linux
  9. Процедура
  10. USB-модем с EasyTether
  11. Модем через Bluetooth
  12. Подключение через прокси-сервер SOCKS
  13. Необходимые инструменты
  14. Инструкция
  15. Tetherbot
  16. Proxoid
  17. Установка Archlinux на телефон с Android во второй раздел SD или просто подпапку системной карты памяти
  18. Готовим устройство
  19. Собираем минимальный стартовый вариант
  20. Приводим в порядок пакеты
  21. Добавляем автомонтирование и прочие плюшки
  22. Установка ArchLinux ARM рядом с Android без chroot
  23. Нам потребуется
  24. Все действия Вы выполняете на свой страх и риск.
  25. Я использовал
  26. Часть 1: Подготовка
  27. Часть 2: Поиск и решение проблем
  28. Проблема 1: ping не работает
  29. Проблема 2: Не работает DNS
  30. Если Вы запороли PATH
  31. Ставим необходимые пакеты
  32. Проверяем gcc
  33. Часть 3: Подготовка к работе без chroot
  34. Нужно заранее позаботится о Root.
  35. Часть 4: Поехали!
  36. Что дальше
  37. Послесловие

Android tethering (Русский)

Тетеринг — это раздача интернета на компьютер со смартфона с помощью его сетевого подключения. USB-модем и точка доступа Wi-Fi точки доступа поддерживаются изначально с Android Froyo (2.2). В более старых версиях ОС Android большинство неофициальных ПЗУ имеют эту функцию.

Contents

Точка доступа Wi-Fi

Использование телефона Android в качестве точки доступа Wi-Fi (с использованием мобильного интернета 3G/4G) стало доступно с версии Froyo (Android 2.2) без необходимости иметь root права на телефоне.

Включается одним из следующих способов:

  • Настройки > Сеть и Интернет > Точка доступа и модем > Точка доступа Wi-Fi
  • Настройки > Ещё. > Режим модема > Точка доступа Wi-Fi

USB модем

USB-тетеринг доступен с Android 2.2 «Froyo».

  • Подключите телефон к компьютеру с помощью USB кабеля (режим подключения USB — Медиа устройство, Монтирование SD карты или Только зарядка — это не важно, но обратите внимание, что вы не сможете поменять режим подключения USB во время тетеринга)
  • Включите режим USB-модем на телефоне. Обычно эта настройка находится одним из следующих способов:
    • Настройки -> Сеть и Интернет -> Точка доступа и модем
    • Настройки -> Ещё. -> Режим модема -> USB-модем
  • После этого проведите стандартную настройку сети.
  • Если вы используете мобильный интернет и недавно начался новый расчетный период, вам может потребоваться перезагрузить телефон.

Использование systemd-networkd с udev

This article or section needs expansion.

Используя systemd-networkd, вы можете автоматически перенастроить сеть на использование телефона в качестве шлюза при его подключении.

Вам может понадобиться изменить атрибут idVendor под ваш телефон. Можно проверить с помощью udevadm:

Затем создайте соответствующий файл systemd-networkd:

AziLink — это приложение, которое позволяет сделать USB-тетеринг на Android-устройствах без прав root. Это очень полезно для версий Android старее чем 2.2, когда ещё не было встроенной функции USB-тетеринга. Он не требует изменений в вашем браузере. На самом деле, весь сетевой трафик прозрачно обрабатывается для любого приложения ПК (кроме пингов ICMP). Он несколько интенсивно потребляет процессор при высоких нагрузках (скорость передачи данных 500 кбайт/с может занимать более 50% телефонного процессора).

Необходимые инструменты

На Arch установите пакет openvpn . Также необходимо установить android-tools для команды adb и android-udev для установки корректного /usr/lib/udev/rules.d/51-android.rules , чтобы ваш телефон был распознан. На телефоне вам нужно приложение azilink.apk (домашняя страница azilink), которое представляет собой NAT на базе Java, который будет взаимодействовать с OpenVPN на вашем компьютере.

Настройка соединения с телефоном в Arch Linux

После того, как вы установили Android SDK, чтобы использовать предоставленные инструменты, ваш телефон должен быть правильно настроен в udev, и вы должны предоставить пользователю Linux права. В противном случае вам могут потребоваться привилегии root для использования Android SDK, что не рекомендуется. Чтобы выполнить эту настройку, включите отладку USB на телефоне (обычно в меню «Настройки» -> «Приложения -> Разработка -> USB-отладка»), подключите его к ПК с помощью USB-кабеля и выполните команду lsusb . Устройство должно быть в списке. Пример вывода для телефона Acer Liquid:

Читайте также:  Сканер сети под windows

Затем создайте следующий файл, заменив ciri на ваше собственное имя пользователя Linux, и 0502 на Vendor ID вашего телефона:

Как root выполните команду udevadm control —reload (или перезагрузите компьютер), чтобы применить изменения.

Чтобы убедиться, что изменения применились, выполните adb devices , и она должна отобразить device вместо unauthorized .

Также можно попробовать выполнить на вашем Linux-ПК команду adb shell из Android SDK в качестве обычного (не root) пользователя: вы должны получить приглашение unix «на телефоне».

Процедура

Запустите приложение AziLink в телефоне и выберите «О программе» внизу, чтобы получить инструкции, которые в основном:

  1. Вам нужно будет включить отладку USB на телефоне, если она еще не была включена (обычно в меню «Настройки» -> «Приложения» -> «Разработка» -> «Отладка USB»).
  2. Подключите телефон с помощью кабеля USB к ПК.
  3. Запустите AziLink и убедитесь, что в верхней части окна отмечена опция Активная служба.
  4. Выполните на своем ПК Linux следующие команды:

Вам может потребоваться вручную обновить содержимое resolv.conf до

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

USB-модем с EasyTether

Скачайте клиент easytether. Устанавливается так:

Убедитесь, что Android-приложение EasyTether установлено на телефоне, к которому будет производиться приключение. Примечание: Lite-версия приложения отключает некоторые соединения, и вам нужно купить полную версию для полной функциональности. По этой причине рекомендуется использовать AziLink.

Модем через Bluetooth

Android (по крайней мере, начиная с 4.0, возможно, ранее) может предоставить персональную сеть Bluetooth (PAN) в режиме точки доступа.

NetworkManager может выполнить это действие и самостоятельно обработать инициализацию сети; Обратитесь к его документации для получения более подробной информации.

В качестве альтернативы: убедитесь, что вы можете подключить свой компьютер и устройство Android, как описано в Bluetooth (Русский), затем, заменяя адрес устройства (здесь задан как AA_BB_CC_DD_EE_FF ), выполните:

Это создаст сетевой интерфейс bnep0 . В заключение, настройте сетевое соединение на этом интерфейсе; Android по умолчанию предлагает DHCP.

Подключение через прокси-сервер SOCKS

С этим методом привязка достигается путем переадресации порта с телефона на ПК. Это подходит только для браузеров. Для Firefox вам следует установить параметру network.proxy.socks_remote_dns значение true в about:config ( адресная строка )

Необходимые инструменты

  • Пакеты android-tools и android-udev
  • Кабель USB для подключения вашего телефона к ПК
  • Один из двух: Tetherbot или Proxoid

Инструкция

Tetherbot

Tetherbot is an experimental SOCKS proxy and Port Bouncer that should allow you to connect your laptop to the internet using the internet connection (EDGE, 3G or Wifi) of your T-Mobile G1 Cellphone.

Проект закрыт и веб-сайт уже не работает, но его архив доступен в Wayback Machine[1], откуда можно скачать APK.

Чтобы использовать SOCKS-прокси от Tetherbot для подключения браузера к интернету, выполните следующие действия:

  1. На телефоне запустите приложение Tetherbot и нажмите кнопку Start Socks
  2. На компьютере пробросьте порт до SOCKS-прокси следующей командой:
  3. Теперь перейдите в настройки вашего браузера и пропишите ручную настроку прокси с адресом localhost и 1080 , оставив остальные поля пустыми.

Proxoid

Следуйте инструкциям, приведенным в следующих разделах link

Источник

Установка Archlinux на телефон с Android во второй раздел SD или просто подпапку системной карты памяти

Привет всем. Тут уже была статья на тему Botbrew, где в целом описано что это такое и что это дает. Вкратце:

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

As of July 2014, updates to the Emdebian distributions ceased. There will be no further updates and no further stable releases.

Готовим устройство

Первое, что нам понадобится — создать папку, куда будем ставить наш линух. Варианта два — папка на разделе /data или отдельный ext4 раздел карты памяти. Во втором случае раздел надо будет как-то смонтировать в основную ФС телефона. Сделать это можно например с помощью Link2SD. Далее я буду исходить из того, что используется второй раздел SD, смонтированный в /data/sdext2, ставить будем в папку /data/sdext2/arch.
Также надо понять, репозиторий для какой архитектуры процессора будем использовать. У меня Qumo Quest 454 с процессором armv7l и для него подошел http://mirror.archlinuxarm.org/arm/.

Читайте также:  Изменить размеры разделов linux

Подключаем телефон по USB, заходим на него через adb и понеслась.

Собираем минимальный стартовый вариант

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

После того, как все скачалось, распаковываем:

У нас получилось что-то типа минимальной установки Archlinux. Теперь попробуем сделать в нее chroot, предварительно смонтировав системные папки ():

Если все прошло успешно, то запустится bash из нашего минимального окружения и станет доступен pacman. У меня при запуске любого процесса система ругалась, что не может найти libsuc.so, описанный в LD_PRELOAD. В этом случае просто чистим LD_PRELOAD:

Приводим в порядок пакеты

Итак, мы в chroot’е, у нас работает pacman и bash. Первым делом приведем в порядок то, что есть. Пропишем DNS и загрузим репозитории:

Теперь поставим официально то, что просто так распаковали и добавим остальные минимально необходимые для жизни пакеты и еще вернем на место dns, который нам побила установка filesystem:

Если все прошло удачно, то имеем полноценный за вычетом systemd и ядра Archlinux. Выходим из chroot и размонтируем все, что намонтировали:

Добавляем автомонтирование и прочие плюшки

Чтобы пользоваться тем, что получилось легко и просто, прикрутим init от botbrew-basil. Это утилита, которая проверяет, смонтировано ли у нас все, что надо и делает chroot в наше окружение. Я не смог найти, как скачать ее с репозитория botbrew, поэтому пока что просто выложил на Яндекс.Диск, ссылка. Копируем init в /data/sdext2/arch и добавляем атрибут на исполнение.

Заходим в adb shell и набираем:

В результате все, что надо само однократно подмонтируется и мы окажемся в свежепоставленном Arch. В виде бонуса init создаст в корне chroot’а папки /storage, /mnt и /android, куда смонтирует куски оригинальной файловой системы.

Чтобы наслаждаться линухом не через USB провод, а прямо с телефона, можно прописать /data/sdext2/init /bin/bash в качестве шела в любимом терминале. Дальше можно по вкусу создать пользователей, поднять sshd и т.п. Но любой арчевод и так знает, как это сделать, поэтому здесь про это писать не буду.

Спасибо за внимание, дополнения и исправления приветствуются.

UPDATE: небольшой скрипт, который я запускаю один раз после ребута

Источник

Установка ArchLinux ARM рядом с Android без chroot

Нам потребуется

Все действия Вы выполняете на свой страх и риск.

Я использовал

Часть 1: Подготовка

1. Скачаем архив с ArchLinux ARM с зеркала:

Дальнейшие действия необходимо проделывать на Android устройстве

2. Создаем файл для будущего образа с помощью make_ext4fs.

Если у вас есть отдельный раздел на карте памяти — желательно использовать его. В моем случае 16Гб SD карта была забита важными данными и возможности сдвинуть главный FAT раздел не было.

Читайте также:  Gigabyte uefi dualbios как установить windows 10 с флешки через биос

В зависимости от настроек /sdcard может быть как внешней, так и внутренней картой памяти.

3221225472 это 1024*1024*1024*3, следовательно будет создан образ в 3Гб. Размер образа определите для себя по вкусу. Помните что на FAT32 нельзя создать файл больше 4Гб

3. Примонтируем образ и распакуем файлы ArchLinux ARM

4. Несмотря на то, что наша цель — обойтись без chroot, для базовой настройки и проверки работоспособности chroot все же нужно сделать. В противном случае обновлять, доставлять пакеты Вам придется уже на боевой системе.

Часть 2: Поиск и решение проблем

Проблема 1: ping не работает

Вспоминаем, что у Android серьезная система разграничения прав. И в нем существует пермишен на «Полный доступ к сети». Без этого пермишшена пользователи не могут получить полный доступ к сокетам. То что надо.

Вернемся к Android консоли и пропишем комманду id:

У вас вывод может быть другой

Но вот незадача, chroot не обновляет group. Поможет вот такой «хак»:

Пробуем еще раз:

Проблема 2: Не работает DNS

Удаляем симлинк на systemd и запишем нормальные DNS:

Если Вы запороли PATH

Если произошло такое, что простые комманды вида ls,cat,su не работают(не видятся) системой, Вы можете попробывать вызвать их напрямую: /system/bin/ls, /system/bin/cat, /system/xbin/su.
Или перезагрузить устройство.

Ставим необходимые пакеты

Проверяем gcc

Часть 3: Подготовка к работе без chroot

Самое главное, что позволяет ArchLinux работать без chroot рядом с андроидом — тот факт, что папки и файлы ArchLinux и андроид различны и не мешают друг другу.

Если Вы не уверены в том, что файлы не пересекутся, выполните эти команды из Android консоли:

Покажет пересечение файлов. У меня это выглядит так:

Выполним копирование файлов из /etc/ в /arch/etc/ из Android:

Ключ -a обязателен, так как при использовании обычного -R права скопированы не будут.

Нужно заранее позаботится о Root.

Android приложения требуют, что бы комманда su сразу же давала доступ к суперпользователю и не запрашивала пароль.

Часть 4: Поехали!

Создадим нужные каталоги и воспользуемся mount —bind что бы виртуально заменить директорию, не изменяя ее на диске.

Если что-то сделано неправильно, Вы можете перезагрузить устройство и попробовать снова. Порядок монтирования важен. При ошибке с монтированием стандартные команды могут взятся из ArchLinux до того, как все каталоги будут смонтированы.

Что дальше

В итоге мы имеем практически полноценный ArchLinux за исключением systemd с свежими версиями пакетов.

Можно установить http, php, mysql. При правильной настройке на уменьшение потребления памяти даже на моем смартфоне с ОЗУ 512Мб они работали корректно.

Можно установить иксовые библиотеки и с помощью X сервера для Android пользоваться ПО для линукса. xterm заработал корректно.

Можно собирать любые программы (и, о нет, ядра) для Linux без ПК.
Можно установить Java для ARM и использовать Java приложения.

Послесловие

Большой проблемой остается systemd и его привязка к PID 1. Для того, что бы сохранить PID 1 нужно влезть в init андроида и прописать exec после инициализации устройств. Это можно сделать заменив init андроида shell скриптом, но тогда остается вопрос что делать с оригинальным init андроида. Так как место на загрузочном диске ограничено несколькими мегабайтами, нужно будет использовать switch_root в заранее созданный образ. Мне пока не удалось завести systemd таким способом.

Мне 16, и это моя первая публикация. Конструктивная критика приветствуется.

Источник

Оцените статью