Tablette-smartphone-logiciel-libre

De April MediaWiki
Logo-sensibilisation.png Bienvenue sur un projet Logo-sensibilisation.png
du groupe de travail Sensibilisation


Sommaire


Ambox warning red construction.png
/!\ Travail en cours /!\

Cette page présente une page de suivi en cours de réalisation.

Si vous souhaitez participer, n'hésitez pas à laisser votre avis sur la page de discussion en suivant au mieux ces recommandations.

[modifier] Introduction

Les smartphones et les tablettes ont aujourd'hui envahi notre environnement que ce soit personnel, professionnel ou collectif :

  • D'un point de vue personnel: il existe des milliers de bonnes raisons d'utiliser des smartphones et autres tablettes. Il n'est pas question de remettre en cause cette évolution mais plutôt de s'interroger sur les dangers liés aux différents logiciels utilisés et à la protection des données personnelles;
  • D'un point de vue professionnel: si les opportunités existent et les smartphones sont source de gains de productivité palpables, il reste néanmoins de nombreuses zones d'ombre sur l'espionnage industriel, le traitement des données sans permission et les différentes portes dérobées des smartphones.
  • D'un point de vue collectif: les collectivités, les structures d'enseignement s'empressent d'intégrer les différentes technologies mobiles. Si cet engouement est légitime, il doit se faire dans la transparence et avec objectivité.

Il est dans les missions de l'April de donner aux citoyens et aux décideurs politiques des éléments de réflexion et de sonner l'alarme sur les risques liés à l'usage de ces différentes technologies.

La lecture est complexe car elle s'effectue à plusieurs niveaux à partir des composants matériels, du système d'exploitation jusqu’au traitement des données. Tous ces éléments doivent être étudiés afin de proposer une analyse de la situation actuelle mais aussi apporter des solutions pour une informatique mobile plus citoyenne. Dans cette page vous trouverez une analyse du degré de liberté actuel des smartphones et tablettes à travers différents domaines :

  • Le matériel (Hardware) : en amont, choisir le hardware en fonction de l'existence d'un bootloader/d'une amorce non verrouillé(e) et de pilotes libres et, lorsqu'il n'existe pas de pilotes libres pour un composant (cas de la puce GSM), en fonction de son isolation physique du reste des composants afin de limiter son pouvoir.
  • Le système d'exploitation
  • Les applications
  • Le gestionnaire d'applications
  • Les données

Les différents domaines liés au mobile et problématiques associées (personne référente) :

[modifier] Hardware & bootloader/amorce (todo:tbe)

  • Bootloader (chargeur d'amorçarge [programme qui permet le démarrage du système]) ouvert. Peut on installler l'hypothétique OS de son choix sur son téléphone ? -> conseils d'achat.

Installer un autre système sur son appareil à la place de celui existant :

En dehors des rares cas où vous pourrez acheter un smartphone ou une tablette avec le système libre de votre choix, il vous faudra, comme c'est le cas avec les ordinateurs personnels, « écraser » le système fourni et le remplacer par le système d'exploitation de votre choix.

Cette opération peut se faire suivant deux techniques :

  1. Soit on reflashe l'appareil en utilisant le bootloader quand le constructeur le permet (c'est-à-dire si le bootloader n'est pas verrouillé),
  2. Sinon il faudra « rooter » le système de l'appareil (c'est-à-dire obtenir l'accès au compte root grâce au noyau Linux présent dans le système existant).

La possibilité d'installer un autre système est un point à bien examiner lors de l'achat de votre appareil. Attention : cette opération, mal réalisée, peut rendre votre appareil inutilisable.

[modifier] Hardware & pilotes (todo:tbe)

Pas de maîtrise des composants (ni par le fabricant de téléphone ni par le développeur de l'OS). Pour deux composants des téléphones mobiles/ordiphones en particulier il est complexe de développer des pilotes libres par rétro-ingénierie : la partie graphique (2D, 3D, vidéo) et la partie communication.

Pourquoi des pilotes libres ?

1) Pour savoir ce que fait le pilote, comme tout logiciel (contrôle de la machine).

2) Pour ne pas être empêché de mettre à jour le système (impliquant une mise à jour de composants fondamentaux comme une nouvelle version d'une bibliothèque logicielle du système ou de nouvelles API) au motif qu'un pilote binaire n'aurait pas été adapté (pérénité de la machine et sécurité)

[modifier] 1) Les puces graphiques en présence et leur prise en charge au moyen de pilotes libres

État des lieux en date de mars 2014 :

  • ARM Mali : pilote 2D/3D bien avancé mais pas encore intégré dans la pile graphique de Linux (il le sera probablement à relativement court terme ).
  • Qualcomm Adreno : pilote 2D/3D libre pour A2xx et A3xx intégré dans la pile graphique de Linux (A4xx à suivre à court-moyen terme probablement, étant une évolution des A3xx).
  • NVIDIA GeForce ULP (Tegra) : pilote 2D libre intégré dans la pile graphique de Linux pour Tegra 2/3 (pilote 2D pour Tegra 4 à suivre à court terme ; pilote 3D à suivre à court-moyen terme probablement).
  • Vivante Corporation Vivante : pilote 2D libre intégré dans la pile graphique de Linux limité aux SoCs Marvell Armada 510 pour l'instant (Armada 610 à suivre probablement à court terme ).
  • Broadcom VideoCore : rétro-ingénierie complexe, pourtant il existe une initiative de pilote libre mais celle-ci est encore balbutiante. Surprise : en mars 2014 Broadcom a commencé à libérer code et documentation, mais il difficile de prédire l'impact que cela aura sur le développement du pilote libre.
  • Imagination Technologies PowerVR Series 5 (SGX) : mieux vaut ne rien attendre côté rétro-ingénierie eu égard à la complexité de la tâche.
  • Intel HD Graphics (apparu récemment, encore peu diffusé) : Intel fournit lui-même le pilote libre 2D/3D/vidéo et même temps que la documentation technique :).

=> À noter : L'accélération vidéo n'est pas indispensable car son absence n'empêche pas l'affichage (d'autant que les shaders programmables du GPU peuvent être mis à contribution pour soulager le CPU). Mais ne pas recourir aux unités dédiées à la vidéo du SoC implique une consommation énergétique supérieure et donc une autonomie moindre.

=> Quel cœur graphique privilégier dans l'optique d'un pilote libre ?

  • Le pilote libre pour HD Graphics est directement fourni par Intel, mais la puce n'est pas encore très répandue dans le monde mobile.
  • Les cœurs graphiques PowerVR d'Imagination sont à fuir comme la peste.
  • En revanche, les Mali (200/400), Adreno,Vivante et GeForce ULP (Tegra) sont à privilégier pour qui espère un pilote libre à court ou moyen terme.
    • En premier lieu Adreno bénéficie déjà d'un pilote 2D/3D communautaire,
    • Mali n'est pas très loin derrière
    • En deuxième lieu il sera intéressant de suivre les progrès des pilotes Vivante et Tegra.
  • En troisième lieu il n'est pas interdit d'imaginer un jour un pilote libre pour les VideoCore, mais l'architecture alambiquée de la puce – tout comme celle des PowerVR – incite à la prudence)[1].

=> En conclusion pour l'année 2014: choisir de préférence Adreno ou Mali ou Intel HD Graphics

[modifier] 2) La partie communication : le problème de l'incontournable (à ce jour) pile GSM propriétaire et son emprise variable

=> État des lieux en date de mars 2014 : Tant que des composants aussi fondamentaux que l'accès au réseau resteront gérés par des pilotes binaires propriétaires, il sera difficile de s'assurer que la vie privée de l'utilisateur sera bien respectée.

Hélas ! Il n'existe pas aujourd'hui de pilote libre pour la partie modem des téléphones (feature phone ou smartphone) NB: il y a bien le projet OsmocomBB, mais peu de téléphones sont supportés – et aucun smartphone – et ce n'est pas encore utilisable.

=> Que faire en attendant ? Dans la mesure où aucune solution matérielle actuelle n'offre une partie réseau libre, le cloisonnement du modem limite le risque d'espionnage de l'utilisateur.

Ainsi, les modèles sur lesquels le système d'exploitation libre Replicant est porté sont choisis dorénavant notamment en fonction de l'isolation du modem. C'est le cas pour

  • les plateformes Exynos de Samsung,
  • la plateforme OMAP de Texas Instruments (qui équipe notamment le smartphone GTA04 dont le modem est un CPU distinct exécutant son propre système d'exploitation

Remarques:

  • Néanmoins, il faudrait évaluer la taille du « pilote » – en fait un miniOS – pour rendre l'argument significatif.
  • Dans leRaspberry Pi par exemple, c'est le cœur graphique, avec son pilote privateur, qui initialise les autres composants du SoC : on voit bien qu'il est le véritable coeur du SoC, certes non-libre, mais dialoguant avec le reste du matériel au moyen de logiciels libres dans le cas de Replicant, ce qui permet de limiter son action à sa fonction de modem.

À l'inverse, le SoC Qualcomm QSD dont le modem est embarqué dans le SoC, lequel modem a accès à la mémoire etc. est à éviter. Hélas !:

  • les SoC Qualcomm QSD sont ceux choisis pour faire tourner les smartphones Firefox OS pour le moment.
  • De même le SoC choisi par Fairphone a le modem inclus sur le SoC ce qui ne permet pas de contrôler son activité[2] ).

En cliquant sur la page dédiée du wiki Replicant de chaque appareil supporté par cet OS, on trouve le diagnostic de l'emprise du modem sur le reste des composants http://redmine.replicant.us/projects/replicant/wiki#Technical-infos-on-the-devices. Par exemple:

  • pour les Samsung Galaxy S2 et S3, le risque est "limité" à "Modem could access GPS" (en sachant que par ailleurs l'opérateur localise son client par triangulation)
  • le Golden Delicious (Openmoko) GTA04 profite de l'isolation complète du modem.
  • Comparer avec les HTC Dream/HTC Magic construits sur un SoC Qualcomm : "The modem controls sound, GPS, main CPU memory (read/write)"... effrayant, non ?

Lire à ce sujet : Entretien avec Paul Kocialkowski, développeur Replicant

[modifier] Systèmes d'exploitation (todo:fpo)

Système d'exploitation[3].

  • 4 libertés ?
  • problèmes des pilotes (pas de pilotes)
  • + logiciels, services de base
  • forks privateurs: les entreprises modifient des systèmes ou noyaux libres. Ainsi , Samsung "personnalise" son Android, Orange ajoute des applications et des réglages imposés, etc.
  • API (-> libre -> gouvernance -> publique -> patent free ... sous ensembles des problématiques d'interop)

NB : Tous les systèmes présentés ci-après reposent sur une base libre (pour cette raison, iOS, Windows Phone etc. ne sont pas représentés ici : même s'ils peuvent intégrer des briques open source, ces dernières ne sont pas majoritaires dans ces systèmes). Pour autant, tous ne sont pas libres au final ! Nous allons tenter d'y voir plus clair :

[modifier] Android Open Source Project et dérivés

Android Open Source Project (AOSP) est un système d'exploitation open source, développé de façon faiblement communautaire par Google sur la base du noyau Linux, à la base de la distribution Android que l'on retrouve dans les téléphones de différentes marques certifiés par Google, mais aussi à la base de CyanogenMod, de Replicant (qui est soutenu par la Free Software Foundation), de Fire OS (qui équipe les tablettes Kindle Fire d'Amazon), de Nokia X Software Platform (qui équipe les téléphones Nokia X)...

Voici un tableau pour illustrer les différences entre ces versions :

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Android pré-installé et certifié par Google Oui : auprès de Google, pour accéder au Play Store Magasin non-libre de Google : Google Play Store dont Play Musique, Play Films... Oui Oui « Google Mobile Services » requis en complément d'AOSP : il s'agit d'un jeu d'applications et de services non-libres de Google (« Google Apps » : Gmail, Maps, Hangouts, YouTube, Drive... sans oublier le Google Play Store lui-même) accompagnés d'API propriétaires à disposition des développeurs tiers dans le but, pour Google, de forcer le passage d'un écosystème d'applications Android à un écosystème d'applications dépendantes de Google et donc de ses conditions contractuelles http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/4/. Auxquels il faut ajouter les applications et surcouches graphiques non-libres éventuelles des constructeurs. Système non-libre. Anti-fonctionnalités inhérentes aux applications non-libres (notamment : Google Play Store possède une porte dérobée par laquelle Google peut installer ou désinstaller des applications ; certains constructeurs modifient les applications pour espionner les utilisateurs http://www.beneaththewaves.net/Projects/Motorola_Is_Listening.html ; parmi les applications qu'ajoutent certains constructeurs se trouvent des applications permettant l'espionnage intégral des actions de l'utilisateur http://ecrans.liberation.fr/ecrans/2011/11/30/carrier-iq-le-mouchard-de-poche-d-android_954914) ; l'utilisateur n'a pas non plus la main sur le système lui-même (difficulté/impossibilité de supprimer les Google Apps pour qui souhaite ne garder que des applications libres). Un certain nombre d'appareils ont un chargeur de démarrage verrouillé et/ou ne peuvent être « rootés » par l'utilisateur. Côté développement, le SDK de Google exige de signer un contrat de licence privatrice (a contrario le SDK de Replicant est libre http://code.paulk.fr/article0008/what-s-up-with-the-android-sdk)
Android Open Source Project (AOSP) Non Aucun Oui Oui Jeu d'applications libres que Google laisse péricliter au profit de ses variantes non-libres http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/ Idem probablement pour les API d'Android indépendantes des services Google que ce dernier commence à remplacer par des versions non-libres, telle l'API de géolocalisation http://arstechnica.com/gadgets/2013/10/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/4/ Système libre (à part quelques firmwares cf https://linuxfr.org/nodes/89719/comments/1450809) mais qui n'inclut pas les pilotes nécessaires pour pouvoir fonctionner sur un appareil mobile.
Fire OS ? Magasins non-libres d'Amazon : Amazon Appstore, Kindle Store, Amazon Instant Video, Amazon MP3 ? ? Jeu d'applications et de services non-libres alternatifs : Nokia's Here Maps, navigateur Amazon Silk, Amazon Cloud Drive... Système non-libre.
Nokia X Software Platform ? Magasin non-libre de Nokia : Nokia Store ? ? Jeu d'applications et de services non-libres alternatifs : Nokia's Here Maps, Nokia Xpress Browser, MixRadio, Skype, Outlook, OneDrive... Système non-libre.
CyanogenMod non Magasin libre F-Droid oui ? oui Système pas totalement libre
Replicant Non Magasin libre F-Droid ? ? Jeu d'applications libres (celui de l'Android Open Source Project ?) Système libre (à part quelques firmwares et pilotes ?). Côté développement, le SDK est libre aussi.
AOKP non Magasin libre F-Droid ? ? ? Système libre (à part quelques firmwares???)
OmniRom Non Magasin libre F-Droid ? ? ? Sytème libre

[modifier] Firefox OS

Firefox OS est un système d'exploitation open source, développé de façon communautaire sous la direction de la fondation à but non-lucratif Mozilla sur la base du noyau Linux et en s'appuyant sur les pilotes (pour la plupart non-libres) conçus pour Android. Toutes les applications sont écrites en langages Web et sont donc théoriquement indépendantes de la plate-forme.

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Version téléchargeable sur le site du projet Non ? Non Oui Oui ? Système libre ? S'appuie sur des API Web (WebAPI) libres. N'inclut pas les pilotes nécessaires pour pouvoir fonctionner sur un appareil mobile.
Version pré-installée et certifiée par Mozilla (« Powered by Firefox OS ») Non ? Firefox Marketplace (qui n'est autre qu'un site Web open source : zamboni, hébergé par Mozilla), et éventuellement d'autres (au choix du fabricant) Oui Oui ? Système non libre ? S'appuie sur des API Web (WebAPI) libres. Recourt aux pilotes Android généralement non-libres pour la plupart.

[modifier] Tizen

Tizen est un système d'exploitation open source, développé de façon communautaire notamment avec le concours de Samsung et Intel sur la base du noyau Linux et en s'appuyant sur des pilotes compatibles avec les distributions GNU/Linux. Pour les applications qui sont écrites en langages Web, celles-ci sont théoriquement indépendantes de la plate-forme.

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Version téléchargeable sur le site du projet ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus). Le SDK complet n'est pas libre https://developer.tizen.org/tizen-sdk-license-agreement bien que s'appuyant sur des briques libres https://developer.tizen.org/sites/default/files/page/sdk_opensource_license_announcement.pdf
Version pré-installée sur les appareils mobiles ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus). Le SDK complet n'est pas libre https://developer.tizen.org/tizen-sdk-license-agreement bien que s'appuyant sur des briques libres https://developer.tizen.org/sites/default/files/page/sdk_opensource_license_announcement.pdf

[modifier] Mer et dérivés

Mer est un système d'exploitation open source, développé de façon communautaire notamment avec le concours de Jolla sur la base du noyau Linux et en s'appuyant sur des pilotes compatibles avec les distributions GNU/Linux mais aussi sur les pilotes non-libres conçus pour Android (via la bibliothèque libre de compatibilité Libhybris). Il est à la base de Sailfish OS. Pour les applications qui sont écrites en langages Web, celles-ci sont théoriquement indépendantes de la plate-forme.

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Mer ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus).
Sailfish OS ? ? ? ? ? Système non-libre. S'appuie sur des API Web libres (d'autres API possibles en sus).

[modifier] Ubuntu Touch

Ubuntu Touch est un système d'exploitation open source, dérivé de la distribution GNU/Linux Ubuntu, développé de façon communautaire sous l'impulsion de Canonical sur la base du noyau Linux et en s'appuyant sur des pilotes compatibles avec les distributions GNU/Linux mais aussi sur les pilotes non-libres conçus pour Android (via la bibliothèque libre de compatibilité Libhybris). Pour les applications qui sont écrites en langages Web, celles-ci sont théoriquement indépendantes de la plate-forme.

Système Identification requise auprès d'une autre entité que l'opérateur télécom pour certaines fonctions ? Magasin(s) d'applications ou de contenus Possibilité d'installer d'autres magasins ? Possibilité d'installer des applications sans passer par un magasin ? Jeu d'applications intégrées Caractéristiques/problèmes identifiés
Version téléchargeable sur le site du projet ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus).
Version pré-installée sur les appareils mobiles ? ? ? ? ? S'appuie sur des API Web libres (d'autres API possibles en sus).

[modifier] Applications (todo: jollfr)

  • Variante: personnalisation, privatisation (4 libertés), choix par défaut, backdoor, bundling
  • Langage: framework, SDK, Javascript
  • Application: 4 libertés, cross-platform
  • Sandboxing

[modifier] Gestionnaire d'applications (todo:fpo)

  • Gestion/contrôle des applications : puis-je installer ou supprimer les logiciels de mon choix ? Les partager ? Les étudier/modifier ?
  • Choix du magasin : puis-je choisir l'origine de mes programmes ? Exemple : application RATP Androïd accessible uniquement dans le Playstore. L'appli est gratuite (et non libre) mais impose qu'on se vende à Google.
  • Politique de gestion de contenus via les applicatifs

[modifier] Données (todo: jollfr)

  • Choix des données par défaut
  • Accès aux données : qui à accès à quoi ? Comment ? ai-je le contrôle là dessus ?
  • Informations liées au traitement des données : suis-je informé de ce qui est fait de mes données ?
  • Localisation des données: Device (ou est-ce ? Chez moi ? chez un ami ? chez un inconnu ?), Fournisseurs (qui contrôle ?), données sur serveurs physiques (juridiction impliquée)
  • Point à approfondir : La différence avec les PC. Quels spécificités posent les mobiles sur le pb des datas.

[modifier] Terminologie

  • SoC : « System on Chip », ou système sur puce : Tous les composants sont réunis sur une même puce conçue à la manière de légos : un coeur graphique 2D de chez X, un coeur 3D de chez Y, un coeur vidéo de chez Z...
  • ARM : jeu d'instructions qui domine l'embarqué, concurrent du jeu d'instructions x86 (processeurs Intel Atom et Core, AMD A et FX) qui domine le desktop
  • GPU : « Graphics Processing Unit », ou processeur graphique (par oposition au CPU qui est un processeur généraliste)
  • feature phone : téléphone simple sans les fonctions d'un ordinateur (à l'inverse d'un smartphone qui est un ordinateur avec fonction téléphone)

[modifier] Références

  1. Détail par puce graphique sur Wikipédia
  2. Voir http://www.replicant.us/2013/11/fairphone/
  3. Panorama d'OS libres

La première version de ce document a été mis au point sur le pad : http://pad.april.org/p/mobile-april

[modifier] Liens