Pixel 6a : Installation de GrapheneOS

Si j’ai choisi le Pixel 6a, c’est d’abord pour la qualité des photos pour un appareil de ce prix. Mais la deuxième raison, c’est la possibilité d’y installer GrapheneOS, une version d’Android axée sur la sécurité, et particulièrement intéressante.

Si GOS part de la version AOSP fournie par Google, son orientation est assez différente de celle de LineageOS : améliorer la sécurité d’abord et avant tout, tout en conservant la compatibilité des applications :

GrapheneOS apporte des améliorations substantielles à la fois à la confidentialité et à la sécurité grâce à de nombreuses fonctionnalités soigneusement conçues pour fonctionner contre des adversaires réels. Le projet se préoccupe beaucoup de la convivialité et de la compatibilité des applications, qui sont donc prises en compte pour toutes nos fonctionnalités.
Il s’agit d’un projet très technique visant à intégrer la confidentialité et la sécurité dans le système d’exploitation plutôt que d’inclure des fioritures inutiles ou de regrouper des choix subjectifs d’applications tierces.

Son but est donc d’être utilisable par le plus grand nombre, d’une part grâce à leur Web installeur qui facilité énormément l’installation, et d’autre part en fournissant une interface soignée et conviviale. De plus, le support des Play Services (et donc du Play Store) a été implémenté, et ce de manière non invasive ! Qui dit mieux ?

Son installation s’est effectivement révélée très simple. Étant livré avec très peu d’applications, il a fallu ensuite choisir le « store » à utiliser (j’y reviendrai plus en détail dans un autre article) : le plus sécurisé est finalement le Google Play Store (ce qui paraît surprenant à première vue). Enfin j’ai aussi listé en fin d’article quelques petits soucis ou réglages que j’ai du faire avec certaines applicaations.

Mais dans l’ensemble, tout s’est déroulé sans souci, et le système est vraiment top… comme le projet !

Voyons voir tout cela…

GrapheneOS

Le projet a vraiment l’air très professionnel, et il suffit de voir la documentation et les explications fournies pour s’en persuader. Avant toute chose, GOS n’est disponible que sur la gamme des Google Pixel car ces derniers implémentent une puce de sécurité (Titan M) de génération récente, or une bonne sécurité software a besoin d’une sécurité hardware. Plus d’infos sur cette page de Wondefall.

Pour vous documenter, sur la page du projet, si vous lisez la page « Features » et la page « Usage » (en anglais), vous en aurez déjà appris beaucoup. Sinon, il y a le site Wondefall en français d’un passionné de sécurité, et qui a fait plusieurs articles passionnants (et pointus) sur GrapheneOS, en commençant par celui-ci. Il y a aussi une chaîne youtube Side Of Burritos propose pas mal de vidéos sur le sujet, on en trouve la liste par sujet ici. C’est en anglais bien sûr, la voix du type est assez monocorde, mais on s’y fait et il est assez facile à comprendre finalement. Voilà, avec tout ça, vous pouvez en apprendre beaucoup sur le projet.

Sinon, je retiens pour ma part deux ou trois choses importantes sur GrapheneOS :

Les Google Play Services

Le problème des services Google que l’on trouve sur tous les Android, c’est qu’ils sont intégrés au système et ont ainsi toutes les permissions nécessaires pour faire plein de choses, y compris collecter tout ce que souhaite Google (pure supposition). Et on ne peut bien sûr les désinstaller.

GrapheneOS supporte l’installation des Google Play Services mais comme une application tout à fait normale grâce à une couche de compatibilité. On peut dès lors les installer ou les désinstaller, et surtout contrôler leurs permissions (ils n’ont aucune permission invasive par défaut). C’est à la fois élégant et efficace. Sur ce sujet, vous pouvez lire cette page sur le site de Wonderfall.

Rappelons qu’une application peut communiquer avec une autre s’il y a consentement mutuel ET qu’elles tournent dans le même profil (voir ci-dessous). Il en va de même avec les Google Play Services sur GrapheneOS, puisqu’il s’agit désormais d’une application comme une autre. Ce point est très important à comprendre.

Les profils utilisateurs

GrapheneOS a amélioré l’utilisation des profils sur Android, notamment pour faciliter le passage d’un profil à un autre. L’idée est de pouvoir ainsi compartimenter les applications que l’on souhaite séparer des autres. Typiquement, on peut installer les Google Play Services dans un profil, y installer son application bancaire par exemple, et garder ce profil indépendant de tout le reste du système.

Une façon rapide de changer d’utilisateur

De plus, récemment, la possibilité de transférer les notifications d’un utilisateur s’exécutant en arrière-plan vers l’utilisateur actif a été implémentée, facilitant ce type d’usage.

Les Storage Scope

C’est une fonctionnalité récente de GrapheneOS : elle permet de contrôler l’accès aux fichiers par les applications.

Beaucoup d’applications demandent un accès complet aux fichiers & medias. Souvent, c’est parce que le développeur ne se casse pas la tête en procédant de la sorte, et va même parfois jusqu’à bloquer le fonctionnement de l’application si on ne la lui accorde pas. Parfois, c’est pour d’autres raisons moins avouables (pure supposition).

Storage Scope permet de duper l’application en lui accordant l’accès demandé, mais en restreignant l’accès à ses propres fichiers/dossiers. Et l’on peut également accorder un accès spécifique à certains dossiers de notre choix. Voir ici pour la description officielle.

Exemple avec une application de Musique à laquelle je ne souhaite accorder l’accès qu’au dossier Music, alors qu’elle demande un accès global :

Avec Storage Scope, on choisit quels dossiers seront accessibles à l’application.

Grâce à cette fonctionnalité, on peut facilement contrôler à quoi une application a le droit d’accéder. Vous utilisez une application dont vous doutez ? restreignez lui les droits aux dossiers que vous estimez nécessaires, et le tour est joué. Si elle refuse de fonctionner, il est peut-être préférable de s’en débarrasser.

En résumé

Voilà, avec ces spécificités de GrapheneOS, on comprend mieux son intérêt, ainsi que leur approche originale : pas de déclaration incantatoire sur la « dé-googlisation », mais une approche basée sur la sécurité tout en permettant une utilisation simple et fonctionnelle.

Franchement, les premières impressions sont très bonnes, l’interface est très soignée, et les implémentations bien pensées. Bravo aux devs !

Installation

Comme je le disais, l’installation est hyper simple grâce à leur Web installeur. Il faut par contre bien respecter les pré-requis pour ne pas avoir d’ennuis. En résumé :

  • Utiliser un navigateur supporté, j’ai du installer Chromium sur ma Debian, Firefox ne faisant pas partie de la liste.
  • Disposer de 2Go de mémoire de libre, et 32Go d’espace disque disponible.
  • Utiliser un câble USB de qualité, et éviter tout adaptateur (sur un PC, privilégier par exemple les ports à l’arrière que les hubs sur la façade avant).

En respectant ces points, je n’ai rencontré aucun problème. J’ai bien sûr commencé par déverrouiller le secteur d’amorçage dans les « Options pour les développeurs » du smartphone :

Activer cette option

C’était cette option qui était grisée avec le Pixel 4a et qui m’avait obligé à le renvoyer (voir cet article). Ensuite on éteint le smartphone, et on redémarre en mode « recovery » en appuyant sur les touches « Power » et « Volume Down ». Pour la suite, il n’y a qu’à suivre les étapes de l’installeur : le modèle 6a est reconnu, on télécharge l’image, puis on la flashe.

Installation simplissime…

Il est également recommandé de re-verrouiller le secteur d’amorçage (« Lock bootloader ») puisque GrapheneOS le permet (encore un plus côté sécurité). On valide l’opération sur l’écran du smartpĥone, et c’est terminé.

Et voilà, on redémarre, et GrapheneOS apparaît dans toute sa sobriété, avec ses quelques applications de fournies :

Le Bureau, les applications, et les Apps…

Le jeu d’applications fourni est le strict minimum : il n’y a même pas de calendrier ! Les Google Play Services sont fournis si l’on souhaite les installer :

L’appareil photo (CameraX) fourni est à priori de qualité, mais avec moins d’options que la GCam, et pour l’instant je l’utilise. Elle devrait arriver à terme aux mêmes performances que la GCam. Mais rien n’empêche d’installer cette dernière si on le souhaite, dans ce cas seul « Google Services Framework » sera nécessaire à son fonctionnement (« Google Play Services » et « Google Play Store » ne seront pas nécessaires).

Le navigateur Vanadium fourni est basé sur Chromium. Il doit encore pas mal évoluer à priori, et pour l’instant ne supporte aucune extension. Du coup, pour bloquer les pubs, j’ai défini un DNS fournit par Mullvad et qui fonctionne comme AdBlock :

Enfin, un truc original est le PIN scrambling, et en même temps tellement logique en terme de sécurité : qui n’a pas déjà deviné le code de son voisin en regardant simplement le déplacement des doigts lors du déblocage du smartphone ? Eh bien, si vous activez cette option, ce sera désormais impossible :

De plus, cela vous oblige à vous brancher le cerveau quand vous tapez votre code ! 😎

Les applications

Concernant le magasin d’applications, j’ai fini par installer F-Droid ET le Google Play Store. J’étais pressé, je voulais que mon tel soit opérationnel rapidement. J’ai donc d’abord installé les services Google, puisque ce que j’avais lu sur le sujet présentait cette solution comme la plus sécurisée tout en ayant le mécanisme de mises à jour automatiques, ce qui était un pré-requis pour moi.

Puis j’ai vu que certaines applis gratuites et complètes sur F-Droid étaient payantes sur Google Play. J’ai commencé par acheter DAVx (5€) que j’utilise depuis longtemps et c’est bien normal de participer. Mais lorsque j’ai vu que OsmAnd+ coûtait 25€ et que pour les Courbes de Niveau il fallait encore payer 5€… Je me suis dit que c’était trop cher, et j’ai installé F-Droid.

Du coup, j’installe via le Play Store quand c’est possible pour bénéficier des mises à jour automatiques des applications, et j’utilise F-Droid quand le paiement me paraît excessif. Ou que la version est plus récente sur F-Droid : MPDroid par exemple.

Le prochain article parlera justement des différents choix possibles en terme de magasin d’applications, ainsi que de la sécurité de chacun : vous verrez pourquoi ce n’est pas si évident de choisir F-Droid ! Bref, revenons aux applications installées qui méritent une petite remarque pour une raison ou pour une autre :

Calendrier : En l’absence de calendrier, j’ai installé Etar, un excellent calendrier open-source, que j’ai pu synchroniser ensuite grâce à DAVx.

27-JAN-2023 : après avoir rencontré un bug avec Etar (les notifications d’alarmes ne s’affichaient que si l’application était affichée à l’écran), je me suis rendu compte que le Play Store proposait la v1.0.29 (jan.2022) alors que F-Droid proposait la v1.0.34 (jan.2023).
En creusant, le développement de l’application n’est pas très clean, notamment avec les clefs de signature, et c’est pour ça que le Play Store n’a pas mis la version à jour…
Et donc j’ai désinstallé Etar, et installé « Simple Calendar Pro » à partir de F-Droid.
 

Fortuneo : J’ai eu une petite difficulté à installer mon application bancaire (maintenant nécessaire pour valider des virements par exemple). L’installation elle-même se passe bien, puis Fortuneo vous envoie un mail pour valider le smartphone. En cliquant sur le lien du mail à partir du smartphone, il faut que ce soit l’application qui l’ouvre et non le navigateur. J’utilse FairEmail comme client mail sur le smartphone, et j’ai du modifier l »option « Ouvrir avec » pour que cela fonctionne :

On reçoit ensuite un code via SMS pour finaliser l’opération !

NOTE : Il y a une page qui référence les applications bancaires vérifiées avec GrapheneOS. Comme Fortuneo n’y était pas listé, j’ai créé un rapport, il n’a pas encore été validé à ce jour.

Metro : il s’agit d’une application de musique, un fork de Retro Music débarrassé des API Google et avec les options Pro activées. En l’installant, j’ai activé les fameux « Storage Scope » pour n’accorder à l’application que le droit d’accéder au dossier Music d’Android. Et l’application fonctionnait très bien… Sauf qu’au redémarrage du tel, j’ai eu un beau plantage à l’ouverture de session :

Bug !

Bon, j’ai généré le crash report, et j’ai créé un bug sur Metro, on verra ce que ça donne. J’ai finalement viré l’appli et installé Auxio, un lecteur qui se concentre sur l’essentiel et le fait bien :

The Meters, au niveau look, faut reconnaître que c’était le top ! 😉

eBike Connect : c’est l’appli fournie par Bosch pour mon vélo électrique, qui enregistre mes sorties, l’utilisation de l’assistance, etc… L’installation se passe sans problème, mais à l’usage, j’expérimentais des crashs à l’affichage de certaines pages (cartes). Pour que l’appli fonctionne, il faut en fait aller dans les paramètres et activer une option de compatibilité de GrapheneOS :

En clair, l’application Bosch ne doit pas utiliser la mémoire de façon très sécurisée, et les protections par défaut de GrapheneOS l’empêchent de fonctionner. J’ai envoyé un mail avec le log du crash au support Bosch, ils m’ont répondu qu’ils avaient transmis aux équipes concernées, et que tout retour sur leur application était positif. On verra bien s’ils corrigent un jour ❓

À retenir : c’est une option à activer en cas de problème avec une application. Elle est disponible pour toute application 64-bit.

Sauvegardes

GrapheneOS intègre Seedvault qui offre la possibilité de faire des sauvegardes de son smartphone de manière très simple (soit en local, soit dans un cloud). Pour la petite histoire, Seedvault a été créé au départ par un membre du projet GrapheneOS pour y être intégré. Mis une nouvelle implémentation est prévue dans le futur car le projet a désormais été repris par un autre groupe avec une autre approche.

J’ai choisi une sauvegarde locale sur clef USB, en utilisant l’adaptateur fourni avec le téléphone :

Simple et efficace…

Une fois la clef insérée, le reste est l’affaire de quelques clics. Seront sauvegardés les réglages système (system settings), les applications et leurs données (AppData).

Tout se passe dans Système – Sauvegardes : la première chose qui vous sera demandée sera de noter sur une suite de 12 mots qui servira de mot de passe (on ne peut pas faire de capture d’écran, il faut le noter !). En suite c’est très simple : on choisit l’emplacement de stockage (clef USB ici), et on active ensuite les options nécessaires.

Sauvegarde sur clef USB pour l’instant, des applications et de leurs data

À noter la possibilité de sauvegarder ses fichiers « Storage backup » (Images, etc…) mais qui est encore a un status expérimental. Je ne l’ai pas activé, cela prendrait sans doute beaucoup de place, et je suis organisé autrement pour cela (Nextcloud).

La taille de ma première sauvegarde est de 1,1 Go… Comme tout est chiffré, difficile de dire ce qui prend de la place.

  • On peut voir par contre qu’une application (eBike Connect) dépasse le quota autorisé : on peut désactiver cette limitation dans les « Experts settings », mais ce n’est sans doute pas conseillé (aucune utilité dans ce cas d’ailleurs).
  • On voit aussi que certaines applis n’autorisent pas la sauvegarde.

Comme toujours avec ces solutions de sauvegarde, il faudra attendre d’avoir besoin de les restaurer pour savoir vraiment ce que cela vaut ! Dans les scénarios « disaster/recovery », c’est toujours le recovery le plus difficile ! 😉

Conclusion

Je suis vraiment très impressionné par cette ROM. Alors bien sûr, il y a le passage à Android 13 qui apporte beaucoup à l’aspect très léché de l’interface, mais GrapheneOS a l’air vraiment professionnel, bien fini, aux fonctionnalités bien pensées, orientées sécurité, mais jamais bloquantes et toujours pensées pour permettre une utilisation la plus agréable possible à l’utilisateur.

La sécurité est possible, à chacun de voir jusqu’où il veut aller sur cet aspect, et quelles concessions il est prêt à faire pour trouver son propre équilibre.

Le prochain article sera consacré au magasin d’applications (store) : quelles sont les possibilités et lequel (ou lesquels) choisir, avec quelles implications sur la sécurité… Vous verrez que ce n’est pas si simple que ça…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *