# PostmarketOS

postmarketOS (abrégé pmOS), est un système d'exploitation libre et open-source initié en 2017, principalement orienté vers les smartphones, basé sur la distribution légère Alpine Linux. Il fait partie des rares systèmes mobiles indépendants d'Android, pour pallier la fin de support logicielle des fabricants au bout de quelques années, les rendant perméables aux vulnérabilités.
Celui-ci est capable d'exécuter différentes interfaces utilisateur pour X et Wayland, telles que Plasma Mobile, Phosh, Hildon, LuneOS UI, MATE, GNOME 3 et XFCE.
Le projet vise à fournir un cycle de vie de dix ans pour les smartphones afin de leur assurer une durée d'utilisation au-delà du support constructeur habituellement limité à quelques années. L'utilisation de la branche principale de Linux permet à postmarketOS de garantir des mises à jour régulières pour obtenir les nouvelles fonctionnalités ainsi que maintenir la sécurité.

## Architecture

postmarketOS se différencie de nombreux autres projets de distributions Linux sur téléphones portables en se passant du système de compilation Android ainsi que de son espace utilisateur. Chaque téléphone dispose du même espace utilisateur, ainsi que d'un unique paquet contenant les outils et configurations spécifiques au dispositif. Le projet souhaite permettre aux utilisateurs l'utilisation directe du noyau Linux officiel, plutôt que la version modifiée, et souvent obsolète habituellement utilisée par les constructeurs. Cet objectif a déjà été atteint pour plusieurs téléphones.

## État du développement
### Fonctionnalités

Le projet est actuellement en développement. Depuis mai 2020, les appels téléphoniques sont possibles depuis quelques modèles (PinePhone, certains mobiles à base de Qualcomm Snapdragon 410).
Différents outils sont développés de manière publique:
* pmbootstrap, un outil permettant de faciliter le processus de développement, dont la compilation croisée;
* osk-sdl, un clavier virtuel léger permettant notamment l'entrée d'un mot de passe de déchiffrement lors du démarrage;
* charging-sdl, une application légère contenue dans l'initramfs permettant d'afficher une animation lorsque le téléphone se recharge en étant éteint.

### Appareils compatibles
#### Appareils supportés par la communauté ("Community")

Les appareils bénéficiant de ce niveau de support sont régulièrement suivis et mis à jour par les développeurs.
S'il s'agit de téléphones ils peuvent envoyer des SMS et généralement passer des appels en audio.
Ils fonctionnent sur la branche principale de Linux et à ce titre peuvent bénéficier de toutes les plus récentes améliorations et mises à jour.
À la fin du premier semestre 2020, 11 appareils sont supportés par la communauté, dont les récents PinePhone et Librem 5

#### Appareils en test ("Testing")

Début 2020, près de 200 appareils étaient capables de démarrer postmarketOS, dont 70 pour lesquels le Wi-Fi fonctionne. Cela inclut une grande variété de dispositifs fonctionnant sous Android, dont des smartphones, tablettes, ou vêtements connectés tels que les lunettes Google Glass, mais aussi d'autres dispositifs fonctionnant sous Linux tels que Les Nokia N9 et N900. La communauté postmarketOS ne cesse de rendre de nouveaux appareils compatibles, et documente la progression sur son wiki.

### Ajout d'un nouvel appareil

Le processus de développement afin de rendre un nouvel appareil compatible consiste à créer un paquet spécifique au téléphone à l'aide de l'outil pmbootstrap. Pour cela, l'utilisation du noyau Linux du constructeur est souvent nécessaire. Le code source de celui-ci est souvent rendu disponible par conformité aux obligations de la licence GPLv2, mais certains logiciels nécessaires au fonctionnement de l'appareil peuvent ne pas être disponibles, et doivent donc être recréés.

### Ressources pour le développement

Le projet publie le code source sur GitLab, et se coordonne via Matrix et IRC. Un wiki est également disponible pour la documentation du projet.

### Appareils supportant la VoLTE

* OnePlus 6T

### Appareils supportant la caméra/APN

* Pinephone

## Méthodes d'installation

Il faut obtenir une image d'installation, pour ensuite flasher l'appareil (en mode lk2nd ou via twrp)
* soit méthode .img : le site officiel propose des images .img compressées en .tar.xz, au téléchargement ; une fois le .img extrait, flasher le fichier .img via lk2nd avec l'utilitaire fastboot.
* soit méthode zip : l'utilitaire logiciel pmbootstrap permet de crééer des images, exportables (via commandes --export-android-zip et export) en .zip, pour faciliter l'installation sur TWRP, via adb-sideload par exemple
Pour créer une image, un ordinateur sous Linux est requis, avec une connexion Internet. Seules quelques appareils sont officiellement proposés au téléchargement (fichier .tar.xz pour image .img) sur le site officiel, la plus grande quantité d'appareils supportés nécessite pmboostrap.
Différentes méthodes peuvent être utilisées pour flasher postmarketos sur un appareil. Souvent, seule une est permise en fonction du modèle :
* flashage de l'image .img via lk2nd, après avoir installé ce dernier via heimdall en mode Download
* flashage de l'archive .zip via TWRP, après avoir copié le .zip sur l'appareil, ou le flasher via procédure adb sideload, toujours sous TWRP

## Galerie

* XFCE 4 sur Nokia N9
* Hildon sur Nexus 7
* Weston (compositeur Wayland) sur Moto G
* Plasma mobile sur Nexus 5