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.

iPhone 4 Blanc Ecran Avant

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.

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.

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.