Arch linux install android

ArchPKGs

How to Install android-x86-pie (Step-by-Step Tutorial) on Arch Linux/Manjaro/Parabola

android-x86-pie is «This is a project to port Android open source project to x86 platform.» referring to its own description. To install or uninstall this package ( android-x86-pie ) from AUR (Arch User Repository) on Arch Linux, Manjaro, EndeavourOS, Artix, ArcoLinux and Parabola is rather simple. This guide will taught you how to install/update/uninstall the package with either the built-in package manager pacman or an AUR helper (e.g. yay ).

Table of Contents

Two common ways are used to install android-x86-pie from AUR. pacman is what you are looking for if you are an experienced Linux user and understand the concept of how packages are built. Otherwise, yay is a common alternative to install packages without the trouble to review PKGBUILD and build packages with makepkg yourself.

sudo pacman -S --needed git && git clone https://aur.archlinux.org/android-x86-pie.git && cd android-x86-pie && makepkg -si
  1. Install git if required (not installed before).
  2. clone the package’s git repository from source.
  3. cd into the folder that we just cloned.
  4. Use makepkg to build the package, then install it with pacman .
yay -S android-x86-pie

Just like installing AUR packages, updating them is fairly the same. Simply pull it from AUR then re-build it. However, it is still recommended to upgrade your whole system first with sudo pacman -Syu before updating any packages to avoid breaking your system, since Arch is a rolling-release Linux distribution.

git pull && makepkg -si
  1. pull from the package’s git repository.
  2. Build the package with makepkg . Also, it will automatically be updated with pacman if built successfully.

Compared to installing and updating packages, removing is the simplest of these three,just choose whether to purge the unused dependencies and the configuration files used by the package.

Читайте также:  Linux grep exclude dir
sudo pacman -R android-x86-pie
sudo pacman -Rs android-x86-pie
sudo pacman -Rns android-x86-pie
yay -R android-x86-pie
yay -Rs android-x86-pie
yay -Rns android-x86-pie

For more details about installing/updating AUR packages on Arch Linux, please refer to Two Ways to Install Packages from AUR from NoCache.

vilearn Install (Update, Remove) Guide on Arch-Based Linux (Manjaro, EndeavourOS)

«An interactive vi tutorial.» is the developer’s description of vilearn. To get this package (vilearn) from AUR (Arch User Repository) on Arch Linux and Arch-based Linux distributions (e.g. Manjaro, EndeavourOS, Parabola) is comparatively simple. This guide will cover how to install/update/remove the package with either the default package manager pacman or an AUR helper like yay.

Step-by-Step Tutorial on Installing python-pyvidia on Arch Linux, Manjaro and EndeavourOS

python-pyvidia is «NVIDIA driver version detector for Linux» referring to its own gist. To install and update this package (python-pyvidia) from AUR (Arch User Repository) on Arch Linux, Manjaro, EndeavourOS and Garuda is fairly straightforward. This tutorial will taught you how to install, update and uninstall the package with either the built-in package manager pacman or an AUR helper (e.g. yay).

Full Guide on Installing kak-snippets-git on Arch Linux, Manjaro and EndeavourOS

«Expand typed text to snippets in Kakoune» is the maintainer’s outline of kak-snippets-git. To get this package (kak-snippets-git) from AUR (Arch User Repository) on Arch Linux and Arch-based Linux distributions (e.g. Manjaro, EndeavourOS, BlackArch) is comparatively straightforward. This tutorial will taught you how to install, update and remove the package with either the default package manager pacman or an AUR helper like yay.

The Simplest Guide on Installing attractorr on Arch Linux/Manjaro/Anarchy

According to attractorr’s own description, it is «CLI to search for torrent magnet links». To install this package (attractorr) from AUR (Arch User Repository) on Arch Linux and Arch-based Linux distributions (e.g. Manjaro, EndeavourOS, Anarchy, Garuda, Artix, Parabola) is fairly easy. This tutorial will cover how to install/update/remove the package with either the built-in package manager pacman or an AUR helper like yay.

How to Install python-aiortc with Command Line on Arch-Based Linux (Manjaro/BlackArch)

python-aiortc is «WebRTC and ORTC implementation for Python using asyncio» based on its profile. To get python-aiortc from AUR (Arch User Repository) on Arch Linux and Arch-based Linux distros (e.g. Manjaro, EndeavourOS, Artix, BlackArch) is quite straightforward. This guide will be covering how to install/update/remove the package with either the built-in package manager pacman or an AUR helper (e.g. yay).

autoportforward-git Install/Update/Remove Guide on Arch-Based Linux (Manjaro, Artix)

autoportforward-git is «Bidirectional port-forwarding for docker and kubernetes» according to its outline. To install autoportforward-git from AUR (Arch User Repository) on Arch Linux and Arch-based Linux distros (e.g. Manjaro, EndeavourOS, RebornOS, BlackArch, Garuda, Artix) is relatively simple. This tutorial will show you step-by-step how to install, update and remove the package with either the built-in package manager pacman or an AUR helper (e.g. yay).

Читайте также:  Linux log output to file

More guides… copyright 2023 ArchPKGs. All Rights Reserved.

Источник

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

Я испробовал множество средств для установки Linux на свое Android устройство, но все они или не работали вовсе, или были слишком глючные. К счастью я использую на ПК ArchLinux и узнав о проекте ArchLinux ARM решил попробовать его в деле. И не просто установить в chroot, а заставить его работать и без него.

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

  • Прямые руки
  • Android устройство
  • Root доступ
  • Busybox
  • Эмулятор терминала
  • Свободное место
  • ADB(для удобства)

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

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

  • Устройство Android 4.2 с 512Мб ОЗУ, ядро Linux 3.4.5 armv7l
  • Эмулятор терминала ConnectBot
  • Управление суперпольпользователем SuperSU
  • BusyBox v1.20.0

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

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

wget http://mirror.yandex.ru/archlinux-arm/os/ArchLinuxARM-armv7-latest.tar.gz mv ArchLinuxARM-armv7-latest.tar.gz ArchLinuxARM.tar.gz adb push ArchLinuxARM.tar.gz /sdcard/ 

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

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

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

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

cd sdcard make_ext4fs -l 3221225472 arch.img

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

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

mount -o rw,remount / mkdir /arch busybox mount /sdcard/arch.img /arch tar -xvf ArchLinuxARM.tar.gz -C /arch/

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

busybox mount -t proc none /arch/proc busybox mount -o rbind /dev /arch/dev busybox mount -t tmpfs none /arch/tmp busybox mount -o size=10%,mode=0755 -t tmpfs none /arch/run chroot /arch /bin/bash

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

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

ping 8.8.8.8 socket: Permission denied 

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

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

uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)

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

groupadd -g 3003 inet usermod -a -G inet root 

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

ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=89.6 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=88.6 ms 

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

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

rm /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf

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

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

Читайте также:  Linux vnc server fedora

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

pacman -S gcc htop iotop sudo openssh

Проверяем gcc

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

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

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

ls /etc/ > /sdcard/ls.txt ls /arch/etc/ > /sdcard/ls2.txt busybox grep -F -f /sdcard/ls.txt /sdcard/ls2.txt

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

dhcpcd.conf hosts security

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

cp -Ra /etc/* /arch/etc/ cp -a /sbin/adbd /arch/usr/bin/

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

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

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

passwd mv /usr/bin/su /usr/bin/su.r

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

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

mkdir /lib mkdir /bin mkdir /xbin mkdir /opt mkdir /usr mkdir /home mkdir /run mkdir /srv mkdir /tmp mkdir /var busybox mount --bind /arch/etc /etc busybox mount --bind /arch/opt /opt busybox mount --bind /arch/home /home busybox mount -o size=10%,mode=0755 -t tmpfs none /run busybox mount --bind /arch/srv /srv busybox mount -t tmpfs none /tmp busybox mount --bind /arch/sbin /sbin busybox mount --bind /arch/usr/ /usr busybox mount --bind /arch/var/ /var busybox mount --bind /arch/lib/ /lib busybox mount --bind /arch/usr/bin/ /bin /bin/bash 

Если что-то сделано неправильно, Вы можете перезагрузить устройство и попробовать снова. Порядок монтирования важен. При ошибке с монтированием стандартные команды могут взятся из 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, и это моя первая публикация. Конструктивная критика приветствуется.

Источник

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