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
Ç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
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.
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.
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 :
localhost
1
Vous devriez arriver sur un bureau XFCE
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.
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 :