Je n'ai pas installé WhatsApp mais j'ai eu une question similaire avec Truacaller donc je vais essayer d'expliquer un peu comment cela fonctionne et comment j'ai forcé Truecaller à hiberner.
Dans Android, il existe des services qui peuvent être exécutés par des actions (triggers). Lorsqu'un événement se produit, par exemple un appel téléphonique ou un branchement, cet événement est envoyé à toutes les applications qui utilisent le service d'appel téléphonique, même si ces applications sont en hibernation. Certains services sont critiques et ne peuvent pas être fermés lorsque le système se met en veille. L'application peut éviter d'être assoupie en signalant l'utilisation de ces services. Je n'ai pas non plus donné la permission à Truecaller mais il était actif tout le temps. J'ai même forcé son hibernation avec la version complète de Greenify (avec le module Xposed) mais il était quand même actif.
Ce que j'ai fait avec Truecaller, c'est d'installer DisableService (Root nécessaire) et j'ai vu quels services étaient utilisés par cette application. Je ne savais pas quel service je devais désactiver alors je les ai tous désactivés. L'application s'est bien sûr plantée lorsque j'ai essayé de l'ouvrir. J'ai donc réactivé plusieurs fois certains services et observé quelles fonctions étaient restaurées. Avec cela j'ai trouvé des services qui ont rendu Truecaller invincible. Maintenant Truecaller ne fonctionne que lorsque j'ai besoin de vérifier un numéro inconnu.