Installer Linux sur un appareil Android

Publié le 16 janvier 2024

Android est basé sur Linux. Il est donc possible de l’utiliser en ligne de commande. Par exemple, l’application Termux permets de lancer une console Bash. Mais il est possible d’aller beaucoup plus loin en installant un système Linux complet, incluant l’interface graphique.

Voici ma procédure pour installer Arch Linux sur une Pixel Tablet.

Note : cette procédure nécessite d’installer les applications Termux, Termix:Widget (facultatif) et AVNC, disponibles sur F-Droid

Installation du système de base

Ça se passe dans Termux.

Je mets à jour la liste des packages disponibles, et j’installe proot :

pkg update -y
pkg install -y proot proot-distro

La commande proot-distro list affiche la liste des distributions disponibles avec proot. Je vais installer Arch Linux :

proot-distro install archlinux

Ensuite, je peux me connecter en console à Arch Linux avec la commande :

proot-distro login archlinux

Paramétrage de Arch Linux

Maintenant que je suis connecté à un Arch Linux, il faut le paramétrer. Je commence par le mettre à jour et installer les applicatifs de base :

pacman -Syy
pacman -Suy
pacman -S curl wget htop iotop iftop vim

Je passe le système en français. Dans le fichier /etc/locale.gen, je commente la ligne en_US.UTF-8 UTF-8 et je décommente fr_FR.UTF-8 UTF-8. Puis je regénère les locales avec locale-gen. Ensuite, je créé le fichier /etc/vconsole.conf et je mets dedans KEYMAP=fr. Pour terminer, je configure le fuseau horaire : ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime

J’installe XFCE avec les applicatifs de base :

pacman -S xfce4 xfce4-genmon-plugin xfce4-notifyd xfce4-whiskermenu-plugin lightdm tigervnc
pacman -S terminator
pacman -R xfce4-terminal

Jusque là j’étais en root. Je sécurise l’installation en créant un nouvel utilisateur :

useradd -m -U palc

Puis dans /etc/shadow, je supprime tous les mots de passe.

Note sur la sécurité

L’utilisateur palc n’a pas les droits sudo (sudo n’est même pas installé), et il n’y a pas de mot de passe root. Depuis palc, il est donc totalement impossible d’effectuer une opération d’administration. Pour effectuer une opération en root, il faudra le faire directement depuis le proot, en lançant un proot-distro login archlinux depuis Termux.

Configuration de l’interface graphique

L’accès à l’interface graphique se fera via le protocole VNC. Pour des raisons de sécurité, le serveur VNC ne va pas tourner en root. Je me connecte sur l’utilisateur que je viens de créer :

su - palc

Ensuite je créé le fichier de confguration de VNC. Je créé le dossier ~/.vnc, puis dedans je créé le fichier .config, qui contiens geometry=2560x1600.

Note : il s’agit de la définition de l’écran, à adapter suivant votre appareil.

Ensuite il faut créer un mot de passe VNC avec vncpasswd. Il faut répondre n à Would you like to enter a view-only password (y/n)?

Tout est en place. Il ne reste plus qu’à lancer le serveur avec :

vncserver :1

Ensuite, sur Android, il faut lancer l’aplication AVNC, et se connecter avec les paramètres suivants :

Vous devriez arriver sur un bureau XFCE

Tout automatiser avec un widget

L’application Termux:Widget permets d’automatiser le lancement du serveur VNC. Pour ça, il faut retourner dans Termux (en dehors du proot).

D’abord, j’installe Vim :

pkg install vim

Ensuite, je créé le dossier ~/.shortcuts, puis dedans je créeé le script archlinux.sh, qui contiens :

#!/bin/bash

/data/data/com.termux/files/usr/bin/proot-distro login archlinux -- /usr/bin/su - palc -c 'LANG=fr_FR.UTF-8 /usr/bin/vncserver :1'


exit 0

Il ne reste plus qu’à rendre le script exécutable :

chmod +x ~/.shortcuts/archlinux.sh

À partir de maintenant, il est possible de créer un widget qui va lancer directement le serveur VNC. Pour l’instant, je n’ai pas trouvé comment lancer le client VNC dans le même script. Il faut toujours le faire à la main.

Possibilités et limitations

Cette procédure permets d’avoir un vrai environnement Arch Linux. Il ne s’agit pas de virtualisation, ce qui donne de bonnes performances. Ça permets aussi d’installer pratiquement les mêmes logiciels qu’avec un Arch Linux standard. Associée à un clavier et à une souris Bluetooth, une tablette Android peut remplacer un ordinateur portable.

Cependant, il y a quelques limitations :