« Smartphones Libres » : différence entre les versions

De Breizh-Entropy
Aller à la navigation Aller à la recherche
m (a déplacé Atelier Smartphones Libres vers Smartphones Libres : Création page générique)
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
Copyleft 2020 VinCiv vmahe@free.fr
=== ADB ===
== Commandes utiles ==
* vérifier que le mobile est connecté : <code>adb devices</code>


Document sous Licence Art Libre (https://artlibre.org/)
* installer une application de récupération (Recovery ou TRWP) : <code>heimdall flash --RECOVERY <recovery_filename>.img --no-reboot</code>


== Préambule : briques et parpaings ==
* accès root avec un shell : <code>adb shell</code>


Les manipulations nécessaires au changement d'OS sur un mobile peuvent le rendre inutilisable, irrémédiablement : c'est le "bricage"
* téleverser un OS sur le mobile : <code>adb sideload filename.zip</code>


Votre téléphone n'est plus alors qu'un tas de composants inertes, une "brique", un "parpaing"...
* rédémarrer le mobile : <code>adb reboot</code>


Vous êtes prévenus !
* se connecter en telnet sur le mobile (23230 sur le pc, 2323 sur le mobile): <code>adb forward tcp:23230 tcp:2323; telnet localhost 23230</code>


Ne tentez pas ces manipulations sur votre téléphone dernier cri, acquis avec un crédit sur 10 ans
== OS ==
 
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 :
 
# sauvegarder mes données sur l'ancien téléphone
 
# télécharger un outil d'installation : Recovery, TWRT
 
# télécharger un OS : Replicant, LineAgeOS
 
# installer les outils de déboggage Android : ADB sur Linux
 
# installer l'outil de recovery sur le téléphone : mode  Download
 
# démarrer en mode recovery
## nettoyer l'espace disque
## installer l'OS : télécharger via ADB
## 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 ===
 
<code>heimdall flash --RECOVERY <recovery_filename>.img --no-reboot</code> : la commande pour installer l'application de recovery que vous avez choisie (Recovery ou TRWP)
 
<code>adb shell</code> : un équivalent de ssh, soit une console sur votre mobile depuis votre PC
 
<code>adb sideload filename.zip</code> : la commande pour téléverser le nouvel OS sur votre mobile (qui est sur Recovery, avec Apply from ADB)
 
<code>adb reboot</code> : pour redémarrer votre mobile depuis votre PC
== Quelques OS ==
=== Replicant ===
=== Replicant ===


Site : https://replicant.us/supported-devices.php
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 ===
=== LineageOS ===


Site : https://wiki.lineageos.org/devices/
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/ ===
=== /e/ ===


Site : https://doc.e.foundation/devices/
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 ===
=== Mer project ===


Site : https://wiki.merproject.org/wiki/Adaptations/libhybris
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 ===
=== Sailfish ===


Site : https://sailfishos.org/wiki/Devices
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) ===
=== Maru(OS) ===


Site : https://maruos.com/docs/devices/
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

Version du 16 septembre 2020 à 01:13

ADB

Commandes utiles

  • vérifier que le mobile est connecté : adb devices
  • installer une application de récupération (Recovery ou TRWP) : heimdall flash --RECOVERY <recovery_filename>.img --no-reboot
  • accès root avec un shell : adb shell
  • téleverser un OS sur le mobile : adb sideload filename.zip
  • rédémarrer le mobile : adb reboot
  • se connecter en telnet sur le mobile (23230 sur le pc, 2323 sur le mobile): adb forward tcp:23230 tcp:2323; telnet localhost 23230

OS

Replicant

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

LineageOS

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

/e/

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

Mer project

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

Sailfish

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

Maru(OS)

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