J'ai un rêve, pouvoir installer Linux sur mon smartphone et virer tous mes ordinateurs.
N'avoir qu'un seul équipement pour tout faire : coder, écrire, jouer, écouter de la musique, regarder des films, etc...
Mais en pratique, c'est compliqué.
Pour installer Linux sur un smartphone, il existe 4 méthodes :
- Distribution (postmarketOS, Ubuntu Touch, Mobian, etc...)
- Conteneurisation (LXC, Chroot, Proot)
- Virtualisation (KVM, pKVM)
- Termux Native
1. Distribution
La première méthode consiste à remplacer Android par une distribution Linux.
Il existe plusieurs distributions Linux pour smartphone :
| OS | Base | Kernel |
|---|---|---|
| Ubuntu Touch | Ubuntu | Android (via Halium) |
| Droidian | Debian | Android (via Halium) |
| Sailfish OS | Mer/Nemo/MeeGo | Android (via Halium) |
| postmarketOS | Alpine Linux | Linux Mainline |
| Mobian | Debian | Linux Mainline |
| PureOS | Debian | Linux Mainline |
| Mobile NixOS | NixOS | Linux Mainline |
Le problème avec cette méthode, c'est qu'elle est actuellement compatible avec très peu de smartphones :
- Fairphone 5 (QCM6490)
- OnePlus 6/6T (SDM845)
- PinePhone Pro (RK3399)
- Librem 5 (i.MX 8M Quad)
Les fabricants de puces (Qualcomm, MediaTek, Samsung, Apple) ne partagent pas le code source de leurs pilotes (drivers) ni la documentation de leurs puces ( datasheets ) pour des raisons de concurrence.
Note
Un pilote (driver) est simplement un programme informatique qui fait le lien entre le matériel (la puce) et le système d'exploitation (Linux).
Un datasheet est un document qui montre en détail comment fonctionne et comment utiliser un composant matériel.
Ce code source étant privé et gardé secrètement par ces entreprises, il n'est pas publié sur le code source public du Kernel Linux.
Les principales puces de smartphone qui supportent nativement Linux sont rares pour plusieurs raisons :
- Volonté d'ouverture du fabricant (ex: Rockchip RK3399 )
- Reverse engineering communautaire (ex: Qualcomm Snapdragon 845 SDM845 )
- Stratégie commerciale de support long terme (ex: Qualcomm Snapdragon QCM6490 )
Et même si vous avez un smartphone avec l'une de ces puces, il reste le problème de compatibilités des autres composants matériels :
- Touch Screen
- Wifi
- Battery
- Audio
- Bluetooth
- Camera
- GPS
- SMS
- Calls
- NFC
- Etc...
Ce qui fait qu'il est aujourd'hui impossible d'avoir un smartphone stable et durable sous Linux avec le support complet de tous les composants matériels.
Il est possible de consulter l'état d'avancement de la compatibilité de chaque smartphone et chaque matériel sur https://wiki.postmarketos.org/wiki/Devices.
Note
Il est quand même possible d'installer des applications Android sur un smartphone avec une distribution Linux via Waydroid.
Waydroid est un conteneur LXC qui fait tourner un système Android complet (basé sur LineageOS).
Note
Halium est une couche de compatibilité qui permet de faire tourner Linux sur un smartphone Android en réutilisant le kernel et les drivers propriétaires d'Android.
- Avantage : compatible avec beaucoup plus de smartphones (puisque la majorité tournent sous Android)
- Inconvénient : dépendance aux blobs propriétaires d'Android, donc pas de vraie liberté logicielle ni de support kernel à long terme
À l'inverse, Linux Mainline désigne un kernel Linux officiel, sans dépendance à Android, mais qui ne fonctionne que sur les rares puces dont les drivers sont libres.
2. Conteneurisation
La deuxième méthode consiste à installer Linux à l'intérieur d'Android sous la forme d'un conteneur.
Cela peut se faire de 3 façons :
- LXC (vrai conteneur avec performances natives, nécessite root)
- Chroot (isolation simple du système de fichiers, nécessite root)
- Proot (simulation de chroot sans nécessiter root, plus lent)
Les méthodes LXC et chroot nécessitent d'avoir les privilèges root de son smartphone avec un outil comme Magisk ou KernelSU.
Pour utiliser ces méthodes, il existe ces outils clés en main :
| Outil | Méthode | Root |
|---|---|---|
| UserLAnd | Proot | Non |
| Proot-distro | Proot | Non |
| Local Desktop | Proot | Non |
| Lindroid | LXC | Oui |
| Linux Deploy | Chroot | Oui |
| Andronix | Proot ou Chroot | Optionnel |
| AnLinux | Proot ou Chroot | Optionnel |
3. Virtualisation
La troisième méthode consiste à installer Linux dans une machine virtuelle à l'intérieur d'Android.
Cela peut se faire de 2 façons :
- KVM (virtualisation native du kernel Linux, performances natives)
- pKVM (virtualisation intégrée à Android, sans GPU)
Pour utiliser KVM sur un smartphone, il faut avoir accès au niveau de privilège EL2 de la puce de votre téléphone.
Note
Il existe plusieurs niveaux de privilèges (Exception Levels) sur un smartphone :
- EL0 : applications utilisateur (YouTube, Signal...)
- EL1 : système d'exploitation (Android, Linux)
- EL2 : hyperviseur (KVM, pKVM)
- EL3 : monde sécurisé (TrustZone, biométrie, DRM)
Ce niveau est verrouillé sur la plupart des smartphones à l'exception de certains modèles spécifiques et des Google Pixel.
De plus, il faut rooter le smartphone et compiler un kernel custom avec CONFIG_KVM=y.
pKVM est une solution intégrée nativement sur les Google Pixel sans devoir rooter son smartphone.
Par contre, il n'y a pas d'accélération GPU et il n'est pas possible d'avoir un OS custom autre que ceux imposés par Google (Debian).
Depuis Android 16, Google propose une fonction "Linux Terminal" dans les options développeur, qui lance directement Debian via pKVM.
4. Termux Native
La quatrième méthode consiste à installer Linux dans l'application Android Termux sans conteneur ni virtualisation.
Termux est une application Android qui contient un terminal et un gestionnaire de paquets (pkg).
Avec Termux, vous pouvez installer des outils en ligne de commande (vim, git, python, node, etc...) mais aussi un environnement de bureau complet (XFCE4), Firefox ou VS Code.
Pour avoir une interface graphique, il faut combiner 3 composants :
- PulseAudio — pour le son
- Termux — le terminal et le gestionnaire de paquets
- Termux:X11 — l'application qui affiche les fenêtres graphiques
L'inconvénient, c'est qu'il ne s'agit pas d'un environnement Linux complet, il n'y a pas systemd ou Docker et on est limité aux paquets de Termux.
Conclusion
Voici un tableau comparatif des 4 méthodes :
| Critère | 1. Distribution | 2. Conteneur | 3. Virtualisation | 4. Termux Native |
|---|---|---|---|---|
| Apps Android conservées | (✓) avec Waydroid | ✓ | ✓ | ✓ |
| Vrai OS Linux | (✓) sans Halium | (✓) | ✓ | x |
| Sans root | ✓ | (✓) | (✓) | ✓ |
| Compatibilité smartphones | x | ✓ | x | ✓ |
| Systemd / Docker | ✓ | x | ✓ | x |
| Custom OS (Arch, etc.) | (✓) | ✓ | ✓ | x |
Actuellement, en mai 2026, je n'ai pas encore trouvé de méthode stable et durable d'installer Linux sur un smartphone.
Pour le moment je reste sur LineageOS en attendant qu'une solution me permette de pouvoir réellement remplacer mon ordinateur.
Dans l'idéal, une distribution Linux basée sur Arch Linux avec un desktop mode et qui fonctionne nativement sur un smartphone haut de gamme.
Je sais j'en demande beaucoup 😄.
Top comments (0)