Signal sans les GApps : Utilisation de la batterie excessive

J’utilise Signal comme messagerie privée depuis quelques temps, essentiellement parce ma sœur est partie faire le tour du monde, et que ce type d’application dite de « messagerie privée » permet de communiquer en utilisant internet en lieu et place du réseau téléphonique habituel (textos, fichiers, appels). Indispensable en voyage pour garder le contact !

Après avoir choisi Signal parmi la pléthore d’applications similaires (voir cette page), j’ai vite pu observer une consommation de batterie importante sur mon smartphone. Le problème était connu : comme je n’ai pas installé les services Google (GApps), Signal ne peut profiter du GCM (Google Cloud Messaging), et de ce fait consomme plus de batterie… 🙁

Je commençais à penser à une désinstallation quand une solution a été mentionnée sur reddit. Je l’ai testée ce week-end, et ça fonctionne très bien ! Alors en attendant que les devs Signal modifient leur code (il s’agit d’un bug à priori), voilà la solution.

La modification proposée par Boatman ci-dessous a depuis été intégrée à l’application officielle (en Janvier 2020, soit presque 6 mois plus tard). Et la consommation de la batterie par Signal est devenue tout à fait correcte.
Cet article n’a donc plus vraiment d’intérêt, si ce n’est pour l’histoire !

Les services Google

Signal utilise normalement les services Google pour être notifié de nouveaux messages, typiquement GCM (Google Cloud Messaging). Cela permet à l’application d’optimiser l’utilisation de la batterie : c’est le « push notification » fourni par les services Google, et qui évite à l’application de faire un « polling » coûteux en énergie.

Et donc sans GApps (ou Openg, ou MicroG), Signal est obligé de tourner en tâche de fond, et d’interroger fréquemment les serveurs pour savoir si de nouveaux messages sont arrivés. Évidemment, cela consomme de la batterie… Et c’est considéré comme normal dans cette situation.

Il y a une bonne explication (en anglais) sur la page « De-Googled Android Experience » : à propos des applications de messagerie instantanée comme Signal, il y en a une qui se passe très bien des services Google, sans pour autant consommer de batterie, c’est Telegram. C’est donc possible ! 😉

Malheureusement, Telegram est moins transparent que Signal, c’est un milliardaire russe qui le finance, le code n’est pas publié, et vos attachements sont conservés sur les serveurs.

Application officielle

Voilà à quoi j’arrivais après presque une journée d’utilisation :

Signal consomme à lui seul énormément de batterie

Franchement ça faisait beaucoup : à lui tout seul, il me réduisait l’autonomie à 2 jours, alors que j’ai très peu utilisé le téléphone par ailleurs. Sans Signal, l’autonomie serait fabuleuse (grâce à LOS16 et à l’absence de services comme les GApps justement).

Application de theBoatman

Heureusement, un développeur (theBoatman) s’est penché sur le problème, et a découvert une mauvaise utilisation du RealtimeSleepTimer, et a lancé un appel pour tester sa correction. Tout est expliqué sur cette page. J’ai donc récupéré la dernière version proposée ici (soit la 4.45 à ce jour).

Attention, vous ne pouvez pas installer cette version « par-dessus » votre installation, car elle a été signée par theBoatman, et ce n’est pas donc plus une version officielle.

De même, une fois installée, si vous recevez une notification vous informant qu’une nouvelle version de Signal est disponible, vous ne pourrez pas l’installer ! Il vous faudra attendre que theBoatman publie cette version : il suffira alors de récupérer le fichier .apk et de l’installer comme une mise à jour (càd sans avoir à désinstaller la précédente).

À terme, l’objectif est bien entendu que Signal intègre la correction proposée par theBoatman, et que l’on puisse revenir à la version officielle (et profiter d’une consommation de batterie faible).

08-DEC-2019 : Depuis la version 4.49, la version officielle de Signal intègre ce patch. Il n’est donc plus nécessaire d’installer une version modifiée. Si toute fois vous l’utilisiez déjà, il semble qu’il y ait un problème avec les backups, donc assurez-vous d’abord d’installer la version 4.50.5 de The Boatman, de faire un backup, puis d’installer la version officielle.

Sauvegarde

Il faut donc commencer par désinstaller votre version courante. Et auparavant, il faudra faire une sauvegarde de vos conversations puisque Signal ne garde rien sur ses serveurs.

Il faut aller dans Paramètres -> Conversations et médias, puis activer la Sauvegarde. Un code est alors affiché, qui sera nécessaire pour restaurer la sauvegarde plus tard. Le plus simple est de faire une capture d’écran de la fenêtre (ou alors de noter les chiffres à la main) :

30 chiffres à noter pour pouvoir déchiffrer la sauvegarde.

La sauvegarde est copiée à la racine du stockage interne de votre téléphone, dans un répertoire Signal/Backups, sous la forme d’un fichier unique appelé signal-2019-08-20-16-53-51.backup. Il peut être utile de copier ce fichier quelque part au cas où…

À la réinstallation, elle sera détectée automatiquement, et la « phrase de passe » vous sera demandée.

Installation

Puis je désinstalle donc Signal, et tente d’installer la nouvelle via mon gestionnaire de fichier MiXplorer. Bizarrement, l’installation échoue alors que la version officielle récupérée sur le site de Signal s’installe très bien de cette manière :

Échec via MiXplorer : Application non installée

Finalement, j’ai pu l’installer par une commande ADB à partir de mon PC :

 adb install Signal-website-universal-release-4.45.2-sleepfix.apk

Le lendemain, j’ai vérifié ma consommation batterie après une journée similaire, et c’est nettement meilleur :

theBoatman a créé un bug ici pour que sa modification soit intégrée à la version officielle de Signal. Mais il est toujours « Open », les devs officiels n’ont pas l’air très concerné par le problème, peut-être sont-ils occupés à des choses plus urgentes !

En tout cas, je suis assez satisfait de ce côté, encore que certains jours, la consommation de Signal est plus importante, je ne sais pas pourquoi… Mais il y a quand même une nette amélioration, et je ne pense plus à désinstaller cette application qui par ailleurs fonctionne très bien. C’est également très pratique pour s’envoyer des photos, elles ne sont pas réduites comme via les MMS.

3 réflexions sur « Signal sans les GApps : Utilisation de la batterie excessive »

    1. Merci Elias pour tes encouragements.
      Concernant Signal, le problème n’est plus d’actualité, le fix a été intégré à l’appli officielle il y a environ un an. J’ai mis un petit encart en début d’article pour le signaler.
      Concernant Telegram, tu as raison, il y a bien une appli FOSS, dispo sur F-Droid. Mais j’ai pourtant moins confiance dans leur modèle (financement, transparence, rapports).

      1. J’ai hésité aussi avec Signal. Voyant son origine americaine et que l’app necessite aussi l’enregistrement du n° de tel, ça m’a orienté vers la version FOSS de telegram. JAMI me tente bien, d’ailleurs je vais l’essayer. Olvid aussi mais pas de possibilité de video.

Répondre à pascal Annuler la réponse

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