Les iPhone “ralentis” par Apple

Depuis quelques jours, on voit apparaître des articles de plus en plus alarmants sur le fait qu’Apple ralentit les vieux iPhone. De plus en plus alarmants pour une bonne raison : comme d’habitude, les informations partent d’une sphère technophile avec des journalistes dont c’est la spécialité vers des médias généralistes, dont les compétences sur le sujet restent faibles. Et globalement les raccourcis et autres vulgarisations, spécialement dans un sujet comme celui-ci, tendent à aller vers une conclusion (et une explication) fausse mais sensationnaliste.

Le problème

Sur les “vieux” iPhone (au moins les 6, 6S et depuis peu 7), Apple bride les performances du SoC (la puce qui combine processeur, carte graphique et divers autres trucs) quand la batterie commence à être usée. Ca implique notamment une baisse de la fréquence du processeur et donc – de facto – des performances globales plus faibles. On peut discuter sans fin de la nécessité d’avoir des CPU qui tournent à des fréquences élevées pour animer un clavier ou un OS, mais c’est comme ça : avec une puce bridée à 600 MHz ou 1 GHz, iOS devient pataud et parfois inutilisable. Dixit les retours avec GeekBench, il y a visiblement plusieurs paliers.

Une image de chez GeekBench

Pourquoi ?

Dixit Apple, la limitation est liée à l’usure de la batterie. Je prends des exemples chiffrés pour la démonstration (les valeurs réelles ne sont sûrement pas les mêmes, mais c’est plus simple). Une batterie neuve a une tension et une intensité qu’elle arrive à fournir avec cette tension. Par exemple 3,6 V et 1,2 A (4,3 W au total). Vous le savez sûrement, une batterie froide ou bientôt vide dure moins longtemps, et en pratique, la tension peut diminuer en cas de charge. Si le smartphone demande toujours 1,2 A, la tension passe sous un seuil critique (par exemple 3 V). De même, une batterie (très) usée est dans le même cas : elle ne peut plus fournir la même énergie qu’au départ. Ca implique deux choses. La première, c’est évidemment que l’autonomie diminue. La seconde, c’est que si le SoC demande plus que ce que la batterie peut fournir… ça plante. Sur un smartphone, le résultat va essentiellement être un arrêt brutal de l’appareil, un problème qui a touché pas mal d’iPhone 6S et qui touche un grand nombre de modèles. Le cas typique, c’est une charge un peu lourde en hiver en extérieur avec une batterie peu chargée. Cet article (en anglais) explique un peu comment ça fonctionne (j’ai repris l’image).

La solution d’Apple, pas nécessairement l’idée du siècle, est de réduire la fréquence du SoC pour ne pas atteindre ce moment. Si la puce ne consomme jamais plus de 3 W dans mon exemple, le téléphone ne devrait pas avoir de soucis. Réduire la fréquence d’une puce pour réduire sa consommation, c’est quelque chose de courant : toutes les puces Intel font ça en permanence (dans les Mac, par exemple), tout comme dans un autre domaine les smartphones Android. La solution d’Apple empêche les arrêts inopinés au détriment de l’usage moyen et de la durée de vie de la batterie, un compromis comme un autre. Ils pourraient aussi ne rien faire et faire changer les batteries plus souvent.

Cette baisse de performances commence à faire parler d’elle pour plusieurs raisons. D’abord, parce qu’Apple cache ce fonctionnement et l’active au fur et à mesure du temps avec des mises à jour d’iOS. Quand on est abreuvé de journaux de TF1 sur les trucs techniques (sans jugement, on peut ne pas s’intéresser à ça), ça ressemble à la méchante et affreuse obsolescence programmée. Le fonctionnement est opaque, Apple n’indique pas que l’iPhone tourne au ralenti, rien ne permet de le voir en dehors des performances faibles. Ensuite, parce que le problème ne touche pas nécessairement les autres téléphones. C’est lié à deux facteurs. Premièrement, on va difficillement voir une baisse de performances liées à la batterie usée sur un Android parce qu’il sera dépassé avant parce que d’une part les SoC utilisés baissent leurs performances bien plus vites à cause de la chauffe et d’autre part parce qu’ils utilisent souvent de grosses batteries. Le premier point s’explique simplement : Apple utilise des fréquences assez faibles par rapport à la concurrence et les puces chauffent assez peu, donc le throttling reste assez rare en usage normal, contrairement à un SoC Qualcomm ou Samsung. Pour la batterie, forcément, une plus grosse batterie (en capacité) arrive moins rapidement à la limite. Chez Apple, ça touche essentiellement (vu les retours) les iPhone 6, 6S et 7, mais pas les variantes Plus qui ont une plus grosse batterie (là, je suppute un peu).

Reste qu’Apple ne communique pas sur le sujet et c’est à mon sens une erreur : c’est le meilleur moyen de lancer des théories complotistes idiotes.

Comment régler le souci ?

Bonne question. La solution évidente, c’est de changer de batterie. Mais ce n’est pas si simple. Premièrement, Apple peut tout simplement refuser de la changer si l’outil de diagnostic ne voit pas de soucis. C’est idiot, mais c’est comme ça. Deuxièmement, ça reste assez cher pour un iPhone : 89 €. Idéalement, pour ne pas se passer de téléphones pendant quelques jours, il faut aussi un Apple Store pas trop loin (ou un magasin capable de le faire officiellement). Je vous déconseille de tenter une batterie noname, surtout à bas prix : ça peut poser des soucis, il y a les risques (faibles) de se planter en changeant la batterie, etc.

En fait, idéalement, Apple devrait proposer un moyen simple de changer la batterie (qui peut être vue comme un consommable, à la manière d’une cartouche d’imprimante) et – au moins – indiquer que le téléphone est dans un mode de fonctionnement dégradé. Et même – mais je doute que ça arrive un jour – laisser le choix à l’utilisateur.

Un dernier point, tout de même : si votre iPhone 6S (par exemple) a été acheté récemment, il n’a pas été ralentis par Apple. le problème ne se pose qu’avec des batteries usées, donc généralement anciennes (parfois, ça arrive de flinguer une batterie avant, mais ça reste des cas particuliers).