Un téléphone intelligent sans service Google ou Apple

Maintenant que Windows Phone pour le grand public est mort – au moins à un horizon décidable – et que les projets ubuntu phone  et firefox os sont abandonnés, on se retrouve avec deux acteurs sur le marché des systèmes d’exploitation pour téléphone intelligent : Google avec Android et Apple avec iOS.

Apple développe des systèmes notoirement fermés, et rien que le fait qu’ils ont été les premiers promoteurs de ce système de spoliation des développeurs par le paiement de royalties sur la vente de logiciels sur la plateforme m’interdit d’utiliser leurs outils.

Google de son côté gagne de l’argent avec Android de deux manières : la même spoliation des développeurs par le paiement de royalties, bien que ce soit plus facile à contourner, et l’utilisation quasiment obligatoire de ses services sur les téléphones. Comme je l’ai déjà abordé, la gratuité de ces services n’est qu’apparente, Google se payant de la connaissance qu’il acquière de vous, tout comme Facebook, ce qui pose de très nombreux problèmes de libertés individuelles et publiques.

Alors en attendant des projets comme eelo ou le librem 5, qui ne seront là au mieux que dans 1 an, est-il possible d’avoir un téléphone intelligent utilisable sans être enfermé dans l’écosystème fermé de Apple ou livrer toutes ses données à Google ? Voici mon expérience.

Quel système d’exploitation ?

Comme les diverses alternatives aux deux gros ont été abandonnées ou ne sont pas encore à l’état de production, on se retrouve obligé de composer avec iOS ou Android. L’écosystème d’Apple est complètement fermé, et il n’y a aucun moyen de l’ouvrir ; à l’opposé, le code source d’Android est publié sous licence Apache à chaque sortie de version dans le projet AOSP (Android Open Source Project). On pourrait croire que cela implique qu’il soit facile d’installer sa propre version d’Android sur n’importe quel téléphone, mais la réalité est plus complexe : chaque constructeur de téléphone intelligent adapte Android à sa sauce pour coller à sa plateforme matérielle. D’une part, comme pour un PC, vous devez avoir les drivers de tous les composants, et ceux-ci ne sont pas toujours open source. Par ailleurs, plus un objet électronique a de contraintes fonctionnelles – taille, mobilité – plus il est difficile de respecter une architecture matérielle standard : les ordinateurs portables ont toujours posé des problèmes aux projets open source comme Linux, et les téléphones intelligents sont encore plus contraints. Enfin, les fabricants de téléphone sont pour la plupart des entreprises d’électronique grand public, et autant le monde du PC a toujours eu comme vertu cardinale la compatibilité – grosso modo, il n’y a eu que 5 architectures principales dans le monde du PC en 35 ans, IBM PC, XT, AT, ATX et BTX, cette dernière n’ayant pas encore totalement remplacé ATX – autant les fabricants d’électronique grand public sont habitués à faire leurs « petites bidouilles » sans trop se préoccuper de standards matériels ; pour avoir travaillé dans des projets où des PC discutaient avec des cartes électroniques, quand on est habitué aux API haut niveau bien standardisées, ça surprend.

De nombreuses équipes de développeurs bénévoles s’astreignent donc à la tâche ingrate d’extraire les drivers et les spécificités de chaque téléphone intelligent pour ensuite les combiner avec AOSP pour livrer un système plus ouvert que l’Android avec surcouche du fabricant. On pourra citer LineageOS, a priori le plus connu, OmniROM, AOKP. Chacun de ces projets publient ce qu’on appelle des ROM, pour Read Only Memory, ou mémoire morte en français, terme employé généralement pour le logiciel des cartouches de jeux vidéos dans les émulateurs et employé ici au sens de système d’exploitation complet, drivers compris, une ROM par modèle de téléphone et par version d’Android. Toutes les équipes ne sortent pas des ROM pour tous les modèles de téléphone ; certains accessoires ne fonctionnent pas dans les premières versions des ROM – par exemple, le lecteur d’empreinte digitale de mon téléphone ne fonctionne pas encore ; certains modèles de téléphone n’ont pas de ROM supportant suffisamment les accessoires du téléphone pour être exploitables.

Pour mon expérience, n’ayant pas encore de téléphone Android, j’ai pu me permettre d’en choisir un qui soit connu pour être facilement pris en charge par les ROM personnalisées. Après quelques recherches, j’ai jeté mon dévolu sur le OnePlus 5T ; OnePlus est une des marques proposant les ROM officielles surchargeant le moins Android, ils publient les drivers afin de faciliter le travail, ils n’annulent pas la garantie constructeur pour installation d’une ROM personnalisée, et même cerise sur le gâteau, ils disent que le service client peut vous aider à récupérer un téléphone inutilisable suite à un tripatouillage mal maîtrisé. Et ce qui ne gâche rien, les spécifications techniques sont de haute volée : 128Go de mémoire de stockage, 8Go de RAM, 8 coeurs à 2.45Ghz, écran AMOLED 6 pouces 1080P, deux capteurs photo arrière 16 et 20 Mégapixels, un capteur photo avant 16 Mégapixels, vidéo 4K, le tout pour à peu près la moitié du prix de chez Samsung ou Apple, encore moins en occasion récente. Le téléphone reçu, on met les mains dans la cambouis ; personnellement, j’ai choisi OmniROM car c’était au moment de mon installation la seule ROM en Android 8.1 pour le OnePlus 5T.

Installation du système d’exploitation

Je ne vais pas rédiger un tutoriel d’installation complet, d’autres l’ont déjà fait bien mieux que je n’en serais capable. Un bon point de départ pour tout ce qui touche à l’installation et la maintenance des ROM est le site XDA developers qui a des forums par modèle, et des articles de présentation de très bonne qualité. Je vais juste résumer les différentes étapes pour donner une idée du niveau de complexité et de risque de l’opération :

  • sauvegarder toutes les données du téléphone avant de faire l’installation ; Android chiffre les données du téléphone, et l’installation du système d’exploitation doit tout effacer sinon une partie du stockage sera inaccessible. Moi, je n’avais pas le problème puisque le téléphone était vide
  • débloquer l’équivalent du BIOS – le bootloader ; pour cela, il faut télécharger les outils de développement Android, passer le téléphone en mode développeur, redémarrer le téléphone avec l’équivalent des options BIOS sous PC, le connecter en USB à son ordinateur, et lancer en ligne de commande des outils fournis avec les outils de développement Android. Par la suite, quand votre téléphone démarrera, il vous avertira que le processus de démarrage est débloqué et que c’est très dangereux !
  • installer TWRP qui est une application de démarrage contournant le système d’exploitation standard, un peu comme une clé USB ou un CD sur lequel on démarre avec un PC à la place du système d’exploitation installé. Android ne permet pas d’installer un système personnalisé depuis le système standard.
  • envoyer sur le téléphone la ROM choisie par transfert USB en dehors des partitions de données des applications
  • une fois TWRP installé, démarrer le téléphone avec, effacer les partitions de données – là, si vous n’avez pas sauvegardé, tant pis pour vous ! – redémarrez avec TWRP, et utilisez TWRP pour installer la ROM. C’est là où j’ai souffert, car au redémarrage juste après l’effacement, le système d’exploitation qui était toujours là reprenait la main et chiffrait à nouveau la partition de données. Il m’a fallu éteindre comme un bourrin le téléphone avant que le système ne prenne la main, pour forcer le redémarrage sur TWRP depuis les outils Android

Vous y êtes, au démarrage suivant, vous devez voir l’écran OmniROM.

Attention ! Quand vous installez une ROM personnalisée, en général, on vous dit d’installer d’une part la ROM, et d’autre part les « GApps » depuis le site OpenGApps. Si vous voulez être libéré de Google, n’installez surtout pas les GApps, qui contiennent tous les services Google, n’installez que la ROM que vous avez choisie.

Les habits neufs de votre téléphone

Je ne vous cacherai pas qu’à cet instant de l’expérience, votre téléphone va vous sembler un peu tout nu. Vous aurez les applications suivantes, fournies par OmniROM :

  • téléphone (si si, je vous jure, on peut téléphoner)
  • SMS / MMS
  • Chromium (version open source du navigateur web de Google)
  • Calculatrice
  • Agenda (mais sans compte Google on ne peut rien en faire…)
  • Paramètres
  • Appareil photo (de base de chez de base)
  • Contacts (marche en local, pas besoin de compte Google)
  • E-mail (vraiment pas top)
  • Egaliseur
  • Fichiers
  • Galerie (pour parcourir les photos et les vidéos)
  • OmniSwitch (pour changer d’application facilement, chouette outil)
  • Phonograph (lecteur audio, je ne l’ai pas essayé)
  • Search (qui lance Google !)

Et c’est tout. En particulier, vous n’aurez pas de magasin d’application. J’ai donc commencé par installer trois magasins d’application :

  • F-Droid qui ne contient que des applications open source (même si parfois elles s’appuient sur des services moyennement ouverts, auquel cas c’est indiqué clairement)
  • Aptoide
  • Uptodown

Avec ces deux derniers, vous aurez à peu près toutes les applications gratuites. Vous devrez autoriser toutes ces applications à installer des logiciels sur votre téléphone, c’est un peu casse-pieds mais ça ne se fait qu’une fois.

Une fois des magasins installés, vous pouvez partir à la chasse aux applications ; personnellement, j’ai installé :

  • Firefox avec recherche via Qwant
  • VLC (lecteur vidéo qui lit tout ce que vous pouvez imaginer, et plus encore)
  • un scanner de QR Code
  • AnySoft Keyboard pour remplacer le clavier de base que je ne trouve pas terrible
  • Authenticator pour sécuriser en deux facteurs (remplacement de Google Authenticator)
  • ConnectBot pour faire du SSH
  • Document Viewer pour lire les PDF et EPub
  • Mastalab pour accéder à Mastodon
  • Open Camera qui remplace avantageusement l’appareil photo d’OmniROM
  • PasswdSafe pour gérer les mots de passe (je synchronise mon fichier de mots de passe entre mes machines avec owncloud, voir ci-dessous)
  • SquareHome 2 comme écran d’accueil, pour retrouver l’interface de Windows Phone que j’aimais bien
  • Spotify
  • RD Client pour accéder en terminal server à des machines Windows
  • Ring pour des communications chiffrées de bout en bout en peer to peer, si vous voulez vous assurer que vos communications voix ne soient pas interceptées
  • Quelques autres sur lesquelles je vais revenir plus en détails

Google a longtemps misé sur la qualité de ses services pour les imposer auprès des utilisateurs, ce qui me semble être une façon de faire plutôt saine ; depuis quelque temps, ils ont ajouté une corde à leur arc, qui est que certaines fonctionnalités du téléphone, comme les notifications, ne marchent que si les GApps sont installés. Du coup, pas de notifications pour moi, et certaines applications refusent de s’installer ; la seule que j’ai rencontrée est celle de la chaîne météo, mais comme j’évite au maximum les applications mangeuses de données personnelles, j’en ai sans doute raté pas mal.

Et les services tiers ?

Les applications que j’ai omises ont pour point commun de s’appuyer sur des services tiers, qu’il s’agit de remplacer par des services plus respectueux de la vie privée.

Cartographie

Exit Google Maps, que peut-on utiliser d’autre ? Une alternative ouverte existe, dont j’ai déjà parlé dans mon article de l’année dernière, OpenStreetMap. Plusieurs applications utilisent les données d’OpenStreetMap pour offrir des services de cartographie sous Android, j’ai personnellement choisi OsmAnd~ qui permet de télécharger les cartes en local sur le téléphone afin d’avoir des cartes hors ligne – 1.8Go pour la carte générale monde et la carte routière française. Je lui ai adjoint AddressToGPS qui fournit un proxy vers les services de géocodage de Google pour les adresses inconnues d’OpenStreetMap, afin que Google ne puisse pas journaliser vos appels. Non seulement OsmAnd~ vous libère du pistage de Google, mais en plus il vous apporte la fonctionnalité hors ligne ; OsmAnd~ est utilisable y compris sur les téléphones non libérés.

Courrier électronique

Pour mon courrier personnel, j’utilise depuis fin 1997 un compte Yahoo ! Mail. Evidemment, Yahoo ! n’étant pas une société philanthropique, et gérer un service de courrier électronique étant coûteux – en particulier pour s’opposer aux spams – Yahoo ! a forcément gagné de l’argent d’une façon ou d’une autre en me fournissant ce service. Or, seule la connaissance du contenu de mes communications,  le profil de moi que l’on peut en retirer pour me cibler, ne peuvent avoir une valeur ; c’est d’ailleurs explicite à l’article 15 de leurs CGU. On y découvre également que Yahoo ! peut transmettre vos données sur demande gouvernementale ; malgré les lois sécuritaires votées en France, nous ne sommes pas encore en Chine communiste, mais tant qu’à faire, je préférerais que mes conversations privées restent privées, sans compter que le FBI et la NSA surveillent les courriels Yahoo !.

Pour ce faire, il est possible de faire tourner son propre service de courrier électronique, mais d’une part, c’est coûteux en ressources systèmes, et d’autre part, ça prend un temps fou pour maintenir un bon fonctionnement du système. Sans compter que sécuriser ses courriels correctement est loin d’être simple.

Heureusement, des services existent qui fournissent des courriels sécurisés :

  • LavaMail : rendu célèbre par son utilisation par Edward Snowden, puis par sa fermeture abrupte à laquelle s’est résigné le fondateur de LavaMail quand le FBI lui a demandé de compromettre la sécurité de la plateforme, LavaMail a récemment ressuscité tel le Phénix, offrant 5Go de stockage pour 30$ par an
  • ProtonMail : développé au CERN, là où internet est né, et hébergé en Suisse qui actuellement a des lois sur l’hébergement de données semblables à celles que nous avions en France avant les lois Cazeneuve, c’est-à-dire très protectrices pour les données personnelles. Une offre gratuite de 500Mo de stockage est complétée par plusieurs offres payantes (4€ / mois pour 5Go et un domaine personnalisé, 6,25€ / mois pour 5Go et un domaine personnalisé partageable avec plusieurs utilisateurs)

Le prix peut sembler a priori élevé, mais il se justifie tout à fait :

  • d’après nos statistiques sur les domaines que nous gérons, 92 % des courriels reçus sont des spams. Et trier les spams des courriels légitimes, ça demande de grosses capacités de calcul
  • les courriels sont chiffrés de bout en bout (si tant est que le deuxième bout est sur le même service) ; le principe est le suivant : chaque utilisateur a une clé de chiffrage asymétrique, et chiffre les courriels reçus avec sa clé publique. Du coup, seul lui peut les relire avec sa clé privée. Or, le chiffrage asymétrique sur de gros volumes de données, comme un courriel à pièces jointes, est très coûteux en temps de calcul, raison pour laquelle on le limite habituellement à transmettre des secrets partagés de petite taille (quelques centaines d’octets)

Le prix résultant de ces contraintes est d’environ 50 % plus élevé que pour un service de courriel professionnel standard comme Exchange Online. Le prix du respect de la correspondance privée…

J’ai choisi ProtonMail en version payante pour bénéficier du domaine personnalisé. ProtonMail a un client web et des applications pour Android et iOS ; l’application Android a besoin des GApps pour les notifications, donc pas de notifications pour moi, mais à part ça tout marche très bien. Par ailleurs, vous pouvez maintenant sous Windows utiliser ProtonMail avec un client classique comme Thunderbird ou Outlook avec le ProtonMail Bridge ; c’est un logiciel qui fournit un service IMAP et SMTP local qui effectue les opérations de chiffrement et de déchiffrement nécessaires pour converser avec les serveurs de ProtonMail.

Il a également fallu modifier mon adresse partout où elle était utilisée, ce qui n’est pas une mince affaire, et j’ai également récupéré mon historique de courriels stocké chez Yahoo !. Pour ce faire, j’ai utilisé un outil en ligne de commandes nommé imapsync, qui lit vos courriels sur une source IMAP et le transfère vers une destination IMAP, en collaboration avec le ProtonMail bridge. Pour un historique depuis fin 1997, de l’ordre de 2Go de courriels, c’est trèèèèèèèèès long, mais ça fonctionne. La seule chose à savoir est que les dossiers personnalisés de ProtonMail sont stockés sous le nom Folders/[NomDossier], y compris quand on le crée sous le nom [NomDossier] ; du coup, on est obligé d’utiliser l’option –f1f2 pour forcer le nom du dossier de destination, car imapsync croit créer le dossier [NomDossier] et ne le retrouve pas ensuite. Par ailleurs, je n’ai pas réussi à utiliser des dossiers avec des espaces dans les noms, mais il suffit de les renommer avant le transfert.

Stockage distant

Il est très pratique de retrouver ses fichiers où que l’on se déplace, ainsi que de synchroniser automatiquement les photos et vidéos prises sur son téléphone vers un système de stockage « dans le cloud ». Malheureusement, par défaut, sous Android, tout part dans Google Drive, ou tout autre service équivalent, DropBox, OneDrive, etc. Depuis quelques années, j’utilise deux NAS Synology dans deux emplacements physiques distincts afin de conserver mes fichiers et ceux de ma famille, synchronisés entre eux. Synology offre un outil nommé « Synology Cloud Station » pour se créer son stockage en ligne personnel, mais il est peu configurable et synchronise par défaut tout le contenu des dossiers sur la machine locale, ce qui est gênant sur des dispositifs avec peu de mémoire comme un téléphone.

J’ai donc choisi d’installer owncloud sur un de mes NAS. Pour des raisons d’optimisation, je n’ai pas utilisé la méthode la plus simple, à savoir installer Apache et MySQL, j’ai préféré utiliser le serveur web et la base de données par défaut du Synology, soit nginx et postgresql. Une fois les difficultés d’installation dues à ce choix passées, l’outil est très agréable à utiliser, l’installation et la configuration des applications sur Android et Windows sont très simples, et l’envoi automatique des photos et vidéos vers les disques marche parfaitement. Et 2To de stockage personnel gratuit ! Enfin, sans abonnement, car si vous voulez vous assurer des sauvegardes correctes, le montage en synchronisation et l’achat de deux NAS revient à quelques centaines d’euros et quelques heures de jeu pour configurer le tout.

Autres migrations

Le transfert de documents est évidemment assez facile, quoique pour un utilisateur de Windows Phone, le fait que le câble USB n’ait qu’une fonctionnalité à la fois – transférer, déboguer ou recharger – est un peu étonnant. Pour les SMS et MMS, j’ai utilisé la fonctionnalité d’export en XML des SMS de Windows Phone, une transformation XSLT, puis l’outil d’import d’Android, puisque les formats XML ne sont pas les mêmes.

Conclusion

Pour quelqu’un qui n’avait jamais fait ça, mais qui sait se débrouiller avec un ordinateur, avec un téléphone réputé pour sa facilité de déblocage, monter un téléphone libéré et les services correspondants m’a pris environ 5 jours de travail, en comptant la synchronisation des deux NAS. Les coûts additionnels sont de quelques centaines d’euros pour les NAS, et 75€ par an pour les courriels – mais si vous pouvez vous limiter à conserver 500Mo de courriels, vous pouvez avoir un service de courriel sécurisé gratuit.

Vous ne devenez pas indétectable pour autant, puisque vous restez reconnu par votre carte SIM, que les IMSI catcher marchent toujours et que les trous de sécurité dans les algorithmes GSM sont toujours là, mais on ne peut pas faire beaucoup mieux sans avoir à monter un réseau mondial de communication personnel.

Enfin, on ne va pas se prendre pour Jean Moulin en 1943, mais à voir les dizaines de messages que j’ai reçus de Google pendant la procédure – littéralement : entre activer la localisation de 4 ou 5 manières différentes à chaque redémarrage, ne faites pas ci ou pas ça c’est dangereux, votre téléphone n’a pas toutes les applications Google envoyé deux ou trois fois sur toutes mes adresses de contact – le fait que Google a déréférencé sans explications ProtonMail pendant 9 mois, ou que ProtonMail a subi une attaque d’une ampleur peu commune qui fait penser à un Etat ou une entité de taille comparable, on se dit qu’avec ses petites bidouilles sur son téléphone, on insère un tout petit coin dans un modèle qui, bien que n’ayant même pas l’âge légal pour boire de l’alcool, a créé la structure d’un possible Etat de surveillance généralisé.