iPhone 4 et Antennagate : le bout de code de 20 octets qui a tout corrigé
L’iPhone 4 de 2010 a connu de nombreux problèmes de réseaux, au point qu’il y a eu l’affaire Antennagate. 15 ans plus tard, un développeur montre qu’un simple bout de code 20 octets a suffi pour corriger le souci.
De la déclaration malheureuse au règlement judiciaire
La réaction initiale d’Apple aggrava considérablement la situation. Steve Jobs suggéra notamment que les utilisateurs tenaient simplement leur téléphone de la mauvaise façon, une déclaration restée célèbre pour son ton condescendant. Le fabricant a dû finalement distribuer gratuitement des bumpers à tous les acheteurs (ce qui lui a représenté un coût de 175 millions de dollars) et conclure un accord dans le cadre d’un recours collectif. L’iPhone 4, pourtant salué pour son design, resta dans les mémoires davantage pour cette polémique que pour ses qualités.
Apple améliora ensuite l’antenne de l’iPhone 4S, mais le véritable coupable n’était pas matériel. L’entreprise a reconnu avoir commis une erreur dans la formule calculant l’affichage des barres de puissance du signal. La nature exacte de cette correction demeura mystérieuse jusqu’à récemment.
Un bout de code pour corriger l’Antennagate de l’iPhone 4
Sam Henri Gold, ingénieur logiciel et designer, vient d’élucider le mystère en comparant les firmwares avant et après correction. Il a téléchargé iOS 4.0 et iOS 4.0.1, et a exploré le framework CoreTelephony, identifiant un binaire nommé CommCenter. L’analyse des chaînes de caractères confirma que ce composant gérait effectivement la formule des barres de réseau. Le calcul lui-même s’avérait rudimentaire : lors de la conversion de la puissance du signal en barres, CommCenter chargeait chaque seuil depuis la mémoire et comparait jusqu’à trouver la plage appropriée.
Le problème résidait dans la table de correspondance. Visualisées sur un graphique, les valeurs d’iOS 4.0 apparaissaient excessivement optimistes. Les utilisateurs voyaient généralement quatre ou cinq barres affichées. Mais lorsqu’ils prenaient le smartphone dans la main, la pente abrupte des seuils provoquait un effondrement catastrophique de cinq à deux barres instantanément. Avec iOS 4.0.1, Apple a modifié ces valeurs pour créer une progression bien plus progressive. Le graphique montre qu’il fallait désormais une détérioration massive pour passer de cinq à zéro barres. Afficher cinq barres devenait plus difficile, mais les chutes brutales disparaissaient également.
Mapped onto a chart, you can see that it takes a lot to drop from 5 to 0 bars. It’s harder to see 5 bars, but it’s harder to plummet bars. pic.twitter.com/QFLh8IK086
— sam henri gold (@samhenrigold) October 7, 2025
L’astuce psychologique des pixels supplémentaires
Sam Henri Gold détaille un autre élément : Apple a augmenté simultanément la hauteur visuelle des barres. Cette manipulation graphique visait à rendre les niveaux un et deux moins alarmants psychologiquement pour l’utilisateur. Une modification esthétique destinée à adoucir la perception d’un signal faible.
oh also in 4.0.1 they changed the height of the lower bars to be taller lmao pic.twitter.com/sxzF4YJ1Bc
— sam henri gold (@samhenrigold) October 7, 2025
20 octets modifiés suffirent donc à résoudre une controverse qui manqua de ternir durablement la réputation d’Apple. Il faut savoir qu’Apple a tout de même fait des ajustements avec l’iPhone 4S pour éviter une nouvelle polémique.