
Ejecuta distribuciones Linux desde tu dispositivo Android con el modulo Magisk chroot distro.
Obten una amplia selección de distribuciones con entornos de escritorio.
Distribuciones chroot
¿Alguna vez pensaste en probar nuevas distribuciones? Obten una gran variedad de distribución para elegir:

Kali Linux
Fedora


Debian
ArchLinux


Manjaro
Alpine Linux


Void Linux
Ubuntu

Requisitos de instalación
Razonablemente nueva versión del módulo Busybox para Android NDK Magisk instalada (se sabe que 1.36.1 funciona, se sabe que 1.32.1 no funciona).
Si no se instala una versión lo suficientemente nueva, puede provocar problemas, por ejemplo, al descargar rootfs.
El uso de Busybox proporcionado por Magisk/KernelSU/APatch (es decir, sin el módulo Busybox para Android NDK Magisk) es compatible con la comunidad y puede provocar errores durante el uso.
Rutas de Android en distribuciones:
- /dev
- /sys
- /proc
- /dev/pts
- /sdcard
- /sistema (NOTA: no se utiliza por defecto)
- /almacenamiento
- /datos (NOTA: no se utiliza por defecto)
Uso de root
Ten en cuenta que como el chroot-distro debe ejecutarse como root para funcionar, existe la posibilidad de que se haya perdido algún seguro donde es posible eliminar accidentalmente más archivos de los previstos.
Los desarrolladores se esfuerzan por garantizar que esto no suceda, pero antes de usar el software, debe hacer una copia de seguridad de sus archivos firmware por si acaso.
Ten en cuenta también que esto debe usarse con precaución general como cuando se usa un dispositivo rooteado.
Comandos disponibles
- ayuda
chroot-distro help
- información de depuración de salida sobre el entorno
chroot-distro env
- lista de distribuciones linux disponibles
chroot-distro list
- descargar rootfs
chroot-distro download <distro>
- volver a descargar rootfs
chroot-distro redownload <distro>
- eliminar rootfs
chroot-distro delete <distro>
- instalar distro
- Por defecto no se monta
/data
o/system
carpeta, uso-a
o--android
para montarlo
- Por defecto no se monta
chroot-distro install [-a|--android] <distro>
- reinstalar distro
- Por defecto no se monta
/data
o/system
carpeta, uso-a
o--android
para montarlo
- Por defecto no se monta
chroot-distro reinstall [-a|--android] <distro>
- desinstalar distro
chroot-distro uninstall <distro>
- distro de respaldo
- Si se da la ruta, entonces se guarda la copia de seguridad en esa ruta
chroot-distro backup <distro> [<path>]
- eliminar copia de seguridad predeterminada
chroot-distro unbackup <distro>
- restaurar distro
- Por defecto restaura tal como está, use
-d
o--default
para restablecer la configuración predeterminada (nota: solo los establecidos durante la instalación) - Si se da la ruta, se restaura la copia de seguridad desde esa ruta
- Si usas copias de seguridad de formato antiguo, es posible que debas usar
--force
para restaurar la copia de seguridad, pero ten en cuenta que debes revisar la copia de seguridad antes de restaurar dicha copia, ya que podría haber efectos secundarios no deseados (por ejemplo, el sistema monta los archivos restaurados o el almacenamiento interno se está agotando)
- Por defecto restaura tal como está, use
chroot-distro restore [-d|--default] [--force] <distro> [<path>]
- desmontar puntos de montaje del sistema
chroot-distro unmount <distro>
- ejecutar comando
- Si se cita el comando, entonces puede pasar parámetros al comando, por ejemplo
"ping 127.0.0.1"
- Si se cita el comando, entonces puede pasar parámetros al comando, por ejemplo
chroot-distro command <distro> <command>
- iniciar sesión en distro
chroot-distro login <distro>
Ejemplo
chroot-distro download ubuntu
chroot-distro install ubuntu
chroot-distro login ubuntu
Distribuciones compatibles
Nota: el lado derecho se usa como identificador de distribución, y debe estar en minúsculas para que se identifique correctamente.
- Kali Linux : kali
- Parrot OS : parrot
- Alpine Linux : alpine
- Arch Linux : archlinux
- BackBox : backbox
- Centos : centos
- Centos Stream : centos_stream
- Artix Linux : artix
- Debian : debian
- Deepin : deepin
- Fedora 39 : fedora
- Manjaro : manjaro
- OpenKylin : openkylin
- OpenSUSE : opensuse
- Pardus : pardus
- Ubuntu : ubuntu
- Void Linux : void
Entornos compatibles
Puedes utilizar chroot-distro en cualquier terminal, por ejemplo MT Manager, Termux, TWRP o emulador de terminal Android (ADB Shell).
Habilitar distribuciones
VNC
Puedes utilizar cualquier aplicación vnc (probado en ubuntu y debian)
apt update
apt upgrade
apt install tightvncserver nano dbus-x11 xfce4 xfce4-goodies xfce4-terminal
update-alternatives --config x-terminal-emulator
vncserver
vncserver -kill :1
echo 'startxfce4 &' >> ~/.vnc/xstartup
iniciar servidor :
vncserver
detener servidor :
vncserver -kill :1
sudo
Ser predeterminado Android evita el uso de suid en /data
carpeta.
Esto evitará el uso sudo
dentro de los rootfs.
Hay algunas alternativas de cómo esto se puede resolver:
- remontar
/data
para el proceso actual con las capacidades necesarias (necesita ejecutarse una vez para cada sesión)
su -c mount -o remount,dev,suid /data
- cree una imagen para montar
/data/local/chroot-distro
# use whatever size you want su -c truncate -S 15G /data/local/distros.img su -c mke2fs -t ext4 /data/local/distros.img # following command needs to be run every time device is rebooted su -c mount /data/local/distros.img /data/local/chroot-distro
- Formato de tarjeta SD con ext4
- Siga las instrucciones en cómo montar la tarjeta SD ext4
- El punto de montaje debe ser
/data/local/chroot-distro
en lugar de/storage/sdcard1
mencionado en el post - El montaje deberá realizarse cada vez que se reinicie el dispositivo
Desde la perspectiva de la seguridad, el segundo y el tercero son mejores, ya que hay menos posibilidades de ejecutar accidentalmente algo que no tenía la intención.
El tercero (y el segundo si la imagen se crea en la tarjeta SD) ayuda a evitar que el almacenamiento interno se agote y también ayuda a disminuir la cantidad de escrituras realizadas en el almacenamiento interno (prolongando así el uso del dispositivo).
Tenga en cuenta que al usar la tercera alternativa no puede usarla para cosas de Android (al menos de forma predeterminada).
Instalar chroot-distro
Hacking
Si desea ayudar con el desarrollo, o si los desarrolladores le han pedido que compruebe un informe de error contra la última versión de desarrollo, puede crear una versión de desarrollo con la ayuda de este comando:
zip chroot-distro.zip config.sh module.prop META-INF/com/google/android/* system/bin/chroot-distro
Una forma alternativa de hacer el desarrollo es habilitar ssh con una de las distribuciones y luego actualizar remotamente el script a una ubicación separada, y luego invocar el script de desarrollo contra alguna otra distribución.
De esta manera no hay necesidad de reiniciar el dispositivo, lo que hace que el desarrollo sea más rápido.
O incluso, hacer el desarrollo directamente en el dispositivo (ya sea físicamente o por conexión remota), si esa es su forma preferida.
Para cualquier cambio no trivial, debe verificar que el cambio funcione, no solo desde Termux (o algunos otros terminales en el dispositivo) sino también con el emulador de terminal Android (ADB Shell).
Esto se debe a que ADB Shell solo tendrá los comandos de Busybox y Android Toybox disponibles, y es posible que no se comporten de la misma manera que las contrapartes más completas disponibles, por ejemplo, en Termux.
Durante el desarrollo debe usar shellcheck
para garantizar que los cambios que realice en el script cumplan con POSIX y que no introduzcan nuevos shellcheck
advertencias (ya sea arreglar el código o documentar por qué la advertencia está bien # shellcheck disable=SCXXXX
y comentario acompañado).
Y si no está familiarizado con los scripts de shell (o incluso si está familiarizado), debe leer detenidamente tutorial hecho por Grymoire mientras explica los conceptos básicos de la carcasa POSIX (y algunas cosas no tan básicas) muy bien.
Versionado
chroot-distro
utiliza el control de versiones semántico para los números de versión.
El versionado utiliza tres niveles: mayor, menor y parche. La versión principal cambiará si hay cambios de ruptura en la API.
La versión menor cambiará para nuevas características (o cambios significativos que no rompan la compatibilidad con versiones anteriores).
La versión de parche está reservada solo para correcciones de errores o cambios realmente pequeños (nota: sin cambios de ruptura).
Licencia

Compartir: