Нативный Debian используя Android

Нативный Debian используя Android

Артемий Судаков
Вот так вот, да


И так, значит сидишь ты такой и думаешь как запустить debian на своем ведре нативно. Обходя всякие Linux Deploy, ведь мы же хакеры, правильно? Нам не нужна нажимать на одну кнопку и всё будет работать. Нам нужно по хардкору. Значит первое, для того что бы всё это чудо запустить, надо скачать termux, а также установить любую утиллиту для доступа к суперпользователю. Например magisk, так как систему(базовую) нужно ставить с помощью debootstrap. А андроид (даже если на него кинуть бинарник) не имеет возможности запуска pkgconfig для просмотра списка пакетов. Так вот, ставим термукс из плей маркета, затем пишет там:

apt update

apt install debootstrap proot

А вот дальше будет весело. Теперь нам надо создать папку где будут все данные нашего дебиана, только осторожно, не накосячте и не засуньте всё это дело в /storage/emulated/0 так как там из за SELinux вы вообще ничего запустить не сможете, или в /, так как там ограниченное место(введи команду mount что бы посмотреть где больше всего доступного места). У меня в папке /data как раз оказалось столько место, сколько нужно(а дебианчик будет занимать примерно гигов 5-6, не меньше.). По этому делаем в термуксе том же

pkg install tsu

tsu

mkdir /data/debian

Дальше думаю можно начать ставить систему.

debootstrap --arch=arm64 --include=nano,resolvconf,dnsmasq,net-tools,bash,perl,busybox buster /data/debian http://deb.debian.org/debian

Дальше ждем. Он скачает список всех пакетов, а также начнет установку. Если он не смог найти пакет из --include, удаляем его из этой строки и запускаем процесс ещё разок. Так, надеюсь вышло, после успешной установки вас должно перенести на новую строку, где вы можете что то вводить(для тех кто знает, приглашение)

Теперь нам нужно сделать в / несколько папок, а потом в каждую из них монтировать штуки из /data/debian.

Выходим из tsu

exit

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

su

Теперь вам необходимо поставить busybox для телефона. Перейдите в плей маркет и выберете тот что понравится, затем установите его. 

Зайдите в термукс обратно, наберите 

busybox и убедитесь то он нашёлся, если нет, найдите способ его заработать.

Создайте файл в /etc с помощью команды

touch /etc/deb1

Откройте его в каком нибудь файловом менеджере для андроида, которые поддерживает рут права. Напишите в нем:

#!/bin/sh

busybox mount --bind /data/debian/etc /etc

busybox mount --bind /data/debian/opt /opt

busybox mount --bind /data/debian/home /home

busybox mount -o size=10%,mode=0755 -t tmpfs none /run

busybox mount --bind /data/debian/srv /srv

busybox mount -t tmpfs none /tmp

busybox mount --bind /data/debian/sbin /sbin

busybox mount --bind /data/debian/usr /usr

busybox mount --bind /data/debian/var /var

busybox mount --bind /data/debian/lib /lib

busybox mount --bind /data/debian/bin /bin

/bin/bash


Дальше закройте файл и сохраните.

Вернитесь в термукс и напишите chmod a+x /etc/deb1.

Дальше сделайте в / следующие папки с помощью mkdir /opt /home /srv /tmp(если нету) /sbin(тоже если нету) /usr /var /lib

После этого мы готовы. Введите mount -o re,remount / для того что бы можно было изменять данные в /

 А затем запустите сам скрипт /etc/deb1

После запуска... Вы тут! Вам должно вывестить root@localhost. Это значит что вы все правильно сделали.

Но вот не задача, при попытке сделать ping 8.8.8.8 мы получаем ошибки, потому что сокет не доступен. Это особенность андроида, и его фишка безопасности. Что бы все работало сделаем следующее действие.

nano /etc/group

В конец файла добавьте

inet:x:3003:root,_apt


Затем сохраните файл(Ctrl X, Y, Enter)

Далее.

Несколько раз делайте 

su

su root

ping 8.8.8.8 до того момента как пинг не заработает, как только он появится, пропишем правильные DNS сервера.

rm /etc/resolv.conf

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

Дальше делаем ping google.com

Видим что с сетью всё ок.

Дальше, что бы заработал apt, делаем nano /etc/passwd

В конец строки пишем 

_apt:x:105:3003:apt:/nonexistent:/bin/false


Сохраняем, пробуем делать apt update.

Ну вот и всё. Если хотеть вернуть андроид в нормальное состояние с каталогами, просто сделайте ребут, и всё вернуться на круги своя. Теперь можно ставить ffmpeg, X11, chromium, image magick и другие нативные утиллиты что бы можно было творить чудеса, но теперь нативно, на вашем телефоне. (Если не работает chmod или chown, попробуйте сделать busybox chmod / chown)


P.S. Статья основана на https://m.habr.com/ru/post/219307/ , только в ней присутствует дебиан, а также исправления ошибок, основанных на опыте. Всем спасибо кто прочитал до конца.

:3

Report Page