GrapheneOS : Obtainium pour les applis open-source

J’en avais déjà parlé lors de l’article sur les magasins d’applications. L’idée est d’installer les applications open-source directement depuis la page du développeur (sur Github). On s’assure alors de la meilleure sécurité possible, puisque la clef de signature est celle du développeur.

J’avais bien mentionné Obtainium dans l’article, mais je ne l’avais pas vraiment testé. En fait, j’étais resté sur le fait que les fichiers APK ne sont pas toujours fournis par le développeur (parfois seulement le code source), et qu’il faudra dans ce cas aller sur F-Droid pour cette application. Soit je me suis trompé à l’époque, soit la situation a bien évolué.

Car Obtainium, dont le développeur est très actif, permet d’aller chercher les applications ailleurs que sur GitHub, comme sur F-Droid par exemple, mais pas que… J’ai vu cette vidéo qui en parle, et du coup j’ai testé… et je l’ai immédiatement adopté ! À noter tout de même : Obtainium n’est pas un magasin d’applications proprement dit, c’est un « web scraper » qui extrait les packages d’applications à partir de sites comme GitHub.

Ce qui m’a permis de supprimer F-Droid, dont l’aspect sécurité est critiqué par les puristes. Personnellement, je ne crache pas dans la soupe, heureusement que F-Droid est là ! Mais si je peux avoir un autre système tout aussi efficace (sinon plus, car F-Droid n’est pas exempt de bugs), et en même temps améliorer la sécurité de mon téléphone, il n’y a pas à hésiter.

Voyons voir cela…

Installation

Pour installer Obtainium, il faut aller sur sa page GitHub, cliquer sur le bouton « Get it on GitHub », puis sur Assets de la dernière version, et choisir le fichier APK qui va bien soit app-arm64-v8a-release.apk.

Ensuite, on installe le fichier APK.

Utilisation

L’utilisation est très simple, et l’interface est soignée même si elle est très sobre : ici pas d’images, de screenshots, de blabla. En d’autres termes, il faut savoir ce que vous voulez installer AVANT d’utiliser Obtainium. La liste des sources prises en charge est plutôt sympa : non seulement GitHub, mais aussi F-Droid et ses dérivés, APKMirror et APKPure, Mullvad, Signal, VLC, Telegram, pour ne citer que les principaux.

L’idéal est de chercher l’application de votre souhait sur Github, et pour ce faire le plus simple est de passer par le site de F-Droid et de cliquer sur « Code source » :

Une fois sur le dépôt GitHub, vérifier que le format APK est directement fourni par le développeur en cliquant sur Releases puis Assets :

Si elle disponible au format APK, c’est parfait, on peut choisir le dépôt GitHub via Obtainium, et donc le package avec la signature du développeur, gage de sécurité.

Si ce n’est pas le cas (seul le code source est disponible dans GitHub, ou si l’application en est carrément absente), on utilisera alors la version disponible sur F-Droid, comme pour Element dans la capture ci-dessous : on peut laisser Obtainium chercher les dépôts disponibles ou rentrer directement l’URL de F-Droid dans la zone prévue (URL de la source de l’application).

Le fichier APK sera alors signé par F-Droid, mais ce sera toujours mieux que d’installer la même application à partir du magasin F-Droid, pour des problèmes de SDK, voir cet article : le niveau de l’API du SDK F-Droid n’est pas à jour, rendant la mise à jour automatique des applications impossible (même si pour l’instant Obtainium ne le permet pas non plus, voir plus bas).

Globalement, la fonction Recherche d’Obtainium est puissante, reste à choisir le bon dépôt parmi tous les résultats présentés (c’est parfois la tâche la plus ardue)… En cas de doute, on peut ouvrir le lien proposé (ci-dessous « Element – Secure Messenger » sur la capture centrale) pour ouvrir le site et vérifier que c’est bien l’application que l’on souhaite installer.

Une fois le bon dépôt identifié, on le sélectionne et on l’installe. Exemple ici avec l’application Element :

Dans certains cas (le navigateur Brave par exemple), la gestion des tags « release » et « pre-release » ne semble pas très claire de la part du développeur (voir ici). Dans ce cas, on peut utiliser les options d’expressions régulières que permet Obtainium :

Sans les options (première capture), on obtient une version « nightly » de Brave (dernière capture) …

Obtainium vous donne les infos sur l’application installée, notamment la source, c’est toujours pratique. En cas de mise à jour, une notification est envoyée, et l’application en question se voit dotée d’une petite icône indiquant la mise à jour disponible. C’est simple et efficace, et la mise à jour se fait sans plus d’interaction.

Une petite icône signale une mise à jour disponible… et on a toutes les infos pour chaque application.

Enfin, Obtainium permet d’exporter la liste des applications installées, très pratique en cas de nouvel appareil, ou de réinstallation.

Problème de version

Un souci dans la gestion des versions est apparu l’autre jour : Obtainium me proposait une mise à jour d’OsmAnd alors que j’avais déjà la dernière version d’installée (v4.5.10) :

La dernière version indiquée est inférieure à celle installée.

Un bug avait déjà été créé ici. J’ai mis du temps à comprendre de quoi il s’agissait vraiment, mais en fait le problème venait du côté de F-Droid, Ce dernier suggère en effet une version donnée pour chaque application. Or il se trouve que cette information ne reflète pas toujours la dernière version : dans l’image ci-dessus, on voit que la « dernière version » est la v4.5.8 alors que la v4.5.10 avait été installée quelques jours plus tôt.

Pour corriger, ce problème, il a fallu aller dans les options de cette application (en cliquant sur le petit crayon en bas à gauche), et désactiver l’option « Try selecting suggested versionCode APK » qui était activée par défaut :

La dernière version correspond désormais à la version installée.

Désormais, cette option est désactivée par défaut comme l’explique le développeur :

L’option « Utiliser la version suggérée » était activée par défaut parce que je pensais que la suggestion de F-Droid serait toujours la version la plus élevée, sans inclure les versions bêta ou les pré-versions. Cette option est désormais désactivée par défaut, ce qui ne devrait plus poser de problème à l’avenir (les utilisateurs qui l’activent manuellement sauront ce qu’ils font).

Limitations

Le processus d’installation étant indépendant d’Obtainium (succès, échec), on peut parfois avoir une mauvaise information affichée. Dans ce cas, il suffit de fermer et relancer Obtainium.

Certaines applications seront téléchargées à partir de sites Web (en utilisant le « web scraping »). Il peut donc arriver en cas de changement de design du site en question, que le téléchargement échoue. Il n’y a malheureusement pas de solution à ce problème, lié au fait que l’application n’est pas disponible dans F-Droid ou similaire. On peut le signaler au développeur en créant un bug sur GitHub.

Enfin, la fameuse installation automatique en arrière-plan des mise à jour n’est pour l’instant pas possible. Le détail est décrit dans cette issue : le problème est apparemment lié au langage Flutter (SDK open-source de Google) et au fonctionnement d’un plugin en tâche de fond (background). Bon, il n’est pas exclu que le dev trouve une solution, sur les derniers messages, il y a du progrès semble-t-il…

Conclusion

Voilà quelques semaines que je l’utilise. Et franchement c’est parfait ! J’ai du bien entendu désinstaller toutes mes applications du magasin F-Droid pour les réinstaller via Obtainium. Mais cela a été assez rapide (13 applications).

À l’utilisation, c’est très fluide : on reçoit une notification, on ouvre l’appli et on lance la mise à jour de l’application. Et voilà ! Tout est très fluide et très rapide. J’ai donc supprimé le magasin F-Droid de mon smartphone, et désormais j’utilise :

  • Accrescent : le magasin du futur encore en développement, axé sur la sécurité et la vie privée. Pour l’instant, il contient peu d’applications, et la seule que j’utilise, c’est Molly, un fork de Signal. Pour celle-ci, je bénéficie donc des mises à jour sans aucun intervention de ma part.

  • Google Play : grâce à GrapheneOS, je peux utiliser le magasin de Google sans accorder des permissions invasives aux Google Play Services. C’est donc mon deuxième magasin, puisque lui aussi permet la mise à jour automatisée des applications sans aucune intervention.
  • Obtainium : je l’utilise pour les applis open-source que l’on ne trouve pas sur le PlayStore, ou alors en version bridée, comme la Galerie et le Gestionnaire de fichiers de Simple Mobile Tools. D’ailleurs, j’ai supprimé Element et je l’ai réinstallé via le PlayStore en écrivant cet article….

Il n’est pas exclu que je change à terme de stratégie si Obtainium arrive à gérer les mises à jour automatiques (unattended updates) un jour : dans ce cas, je l’utiliserai pour toutes les applis open-source, et Google Play passera en dernière alternative, pour les applications non disponibles ni dans Accrescent, ni via Obtainium.

Laisser un commentaire

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