Ateliers2020/Atelier Smartphones Libres

De Breizh-Entropy
Révision datée du 16 septembre 2020 à 02:59 par Guest (discussion | contributions) (Annulation des modifications 3436 de Guest (discussion))
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Copyleft 2020 VinCiv vmahe@free.fr

Document sous Licence Art Libre (https://artlibre.org/)

Préambule : briques et parpaings

Les manipulations nécessaires au changement d'OS sur un mobile peuvent le rendre inutilisable, irrémédiablement : c'est le "bricage"

Votre téléphone n'est plus alors qu'un tas de composants inertes, une "brique", un "parpaing"...

Vous êtes prévenus !

Ne tentez pas ces manipulations sur votre téléphone dernier cri, acquis avec un crédit sur 10 ans

B-)

Arrière-plan technique

Booter sur les ARM

Pas de bios ou d'EFI standard => chaque carte-mère démarre à sa sauce

Le 1er niveau de boot va chercher à une adresse hardware sur la ROM et/ou la carte SD éventuelle => spécifique.

Le 2e niveau (souvent UBoot) est lui-même généré spécifiquement pour le modèle de téléphone => encore un verrou limitant.

Le système installé est à son tour vérifié spécifiquement (ce qui explique certains échecs d'installation).

Bref : on est très loin des PCs et de leur UEFI (pourtant pourri sur les 32bits) !

Un matériel varié

Chaque téléphone a ses propres versions de périphériques, intégrés à la carte-mère (même si ce n'est pas le cas, il n'y a pas d'autre composant disponible pour cette CM donnée).

La plupart des périphériques utilisés ne sont pas ouverts et nécessitent un firmware propriétaire, et ce à la fois sur le hardware lui-même mais aussi en mémoire vive.

TODO : faire un topo sur les identifiants de modèle (i9000), avec mention spéciale pour les modèles ayant plusieurs identifiants (tq le Note 2 de Samsung)

Et le système ?

Le système final (Android,...) est livré déjà prêt, dans un zip et déployé en l'état => oubliez les apt et autres yum d'install progressive.

Les mises à jour peuvent consister en un remplacement de ce zip => écrasent la précédente version.

Le pire du moins bon...

Ah oui ! Tout ce processus est souvent verrouillé par le fournisseur du téléphone => le "possesseur" du téléphone ne peut rien changer, n'ayant pas les droits SuperUser dessus (c'est pour ça que je n'ai pas utilisé le terme de "propriétaire") => rooter le téléphone avant de pouvoir y changer quelque chose !!!

NB : rooter passe souvent par un exploit => on est sur un hack très pointu (et spécifique au modèle, car la faille utilisable est souvent colmatée dans le modèle suivant).

Implications : des limitations en tout genre

À chaque modèle son boot

Le programme de boot est spécifique et donc tous les OS libres doivent proposer une version du boot dédiée à chaque modèle sur lequel ils souhaitent tourner (une "image")

Dans certains cas, c'est l'outil d'installation qui sera spécifique (cas du Recovery de Replicant), ce dernier installant ensuite un OS plus générique.

Des "distributions" pas très génériques

Chaque OS libre ne se "marie" qu'avec certains modèles de téléphone => consulter la liste des "devices" supportés et acheter un modèle en fonction de l'OS qu'on a choisi (corollaire : on est coincé ensuite avec cet OS).

Rem : notez soigneusement l'identifiant de votre modèle, car les images sont spécifiques à cet identifiant (ex : n7100 pour le Samsung Note II, et t0lte pour le Samsung Note II LTE)

Des périphériques inutilisables

Même les modèles les mieux supportés par l'OS choisi peuvent avoir quelques périphériques non fonctionnels car protégés par du firmware propriétaire (sur l'EPROM mais aussi parfois en RAM)...

Replicant est particulièrement frustrant à ce sujet, car rigoriste => smartphone sans WiFi, sans GPS (pour les modèles "supportés").

Moralité : sélection "polonaise"

Choisir :

- les fonctionnalités dont on a absolument besoin (ex: WiFi)

- l'OS qui les fournit en natif

- le téléphone qui est supporté par l'OS avec les fonctions nécessaires

- le fabricant qui fournit ce téléphone

Rem : "polonaise" fait référence à la notation polonaise inverse des mathématiciens.

Mon expérience

Mon besoin

  • remplacer un Wiko problématique (USB usé, écran cassé, mauvaise réception GSM)
  • ne plus être pollué par des logiciels imposés (ex : 360Security)
  • téléphoner, envoyer et recevoir des SMS/MMS, photographier

La démarche

- me documenter => infos sur les OS et leurs limitations

- choisir l'OS => Replicant, en une démarche Libre (quitte à diluer le breuvage par la suite), et parce qu'il semble moins encombré d'applis que les autres

- me procurer un téléphone compatible => achat d'un Samsung S2 d'occasion + récupération d'un Note II

- installer Replicant

L'installation

Il m'a fallu comprendre les étapes impliquées :

  1. sauvegarder mes données sur l'ancien téléphone
  1. télécharger un outil d'installation : Recovery, TWRT
  1. télécharger un OS : Replicant, LineAgeOS
  1. installer les outils de déboggage Android : ADB sur Linux
  1. installer l'outil de recovery sur le téléphone : mode Download
  1. démarrer en mode recovery
    1. nettoyer l'espace disque
    2. installer l'OS : télécharger via ADB
    3. redémarrer

Commandes ADB

L'Android DeBugger est l'outil central dans votre démarche de gestion de l'OS sur vos smartphones. Il s'agit d'un serveur tournant sur votre PC, qui échange avec le mobile via son branchement USB.

Quelques commandes basiques

heimdall flash --RECOVERY <recovery_filename>.img --no-reboot : la commande pour installer l'application de recovery que vous avez choisie (Recovery ou TRWP)

adb shell : un équivalent de ssh, soit une console sur votre mobile depuis votre PC

adb sideload filename.zip : la commande pour téléverser le nouvel OS sur votre mobile (qui est sur Recovery, avec Apply from ADB)

adb reboot : pour redémarrer votre mobile depuis votre PC

Quelques OS

Replicant

Site : https://replicant.us/supported-devices.php

Remarques :

  • puriste : il ne contient que du Libre => pas de support du WiFi, du GPS, du Bluetooth (mais une application pour gérer ces périphériques en USB)
  • deux développeurs => peu de modèles supportés (essentiellement Samsung Galaxy)
  • léger : moins de 300 Mo
  • des petits manques : pas de voyant pour les SMS reçus, carte SD gérée de façon bizarre,...

LineageOS

Site : https://wiki.lineageos.org/devices/

Remarques :

  • La principale distribution de référence, sur laquelle s'appuient nombre d'autres OS (/e/, Maru,...)
  • celle qui supporte le plus de modèles (ou tente de le faire : le Zip pour mon n7100a échoué à s'installer)
  • mais la version officielle, la plus récente et la seule sur leur site, gère peu des plus anciens modèles
  • on peut trouver des images faites par d'autres pour de nombreux modèles : recherchez UNOFFICIAL-xxxxx.zip, avec xxxxx l'identifiant de votre modèle et vous trouverez peut-être votre bonheur...
  • des applications incluses qui sont "discutées"
  • je n'ai pas pu l'essayer

/e/

Site : https://doc.e.foundation/devices/

Remarques :

  • une démarche volontariste et des moyens supérieurs aux autres (marketing notamment)
  • un cloud spécifique, auquel s'inscrire => me fait penser à KroSoft
  • pas testée

Mer project

Site : https://wiki.merproject.org/wiki/Adaptations/libhybris

Remarques :

  • des indications très détaillées sur le support des différents périphériques : ça manque aux autres
  • pas vraiment un OS
  • a priori, Sailfish serait basé dessus ...

Sailfish

Site : https://sailfishos.org/wiki/Devices

Remarques :

  • limité aux Sony Xperia ...
  • possibilité de hacker l'OS et mettre une Gentoo par dessus (au moins une personne l'a fait)
  • pas testée

Maru(OS)

Site : https://maruos.com/docs/devices/

Remarques :

  • vise à fournir un véritable PC dans le téléphone (ce à quoi j'aspire)
  • ne supporte que quelques modèles Nexus (s'appuie sur ASOP, la version open source de Google)
  • indiquait en 2019 vouloir s'appuyer sur LineageOS, afin de supporter tous les téléphones