Des utilisateurs de Mac rapportent que leur port Ethernet ne fonctionne plus depuis l’installation d’une mise à jour. Apple a fourni dimanche la solution, mais le cas relance une fois de plus la polémique au sujet des mises à jour silencieuses.
Qu’un système s’améliore avec le temps et corrige ses bugs n’est pas un mécanisme que les utilisateurs remettent en cause. Aucun produit n’étant parfait, il est tout à fait normal que des mises à jour viennent réparer les différents soucis et l’enrichissent fonctionnellement. Avec le temps cependant, les éditeurs ont cherché à masquer cette mécanique interne, jugée disgracieuse. Après tout, les appareils électroménagers cachent leurs rouages, pourquoi un ordinateur devrait-il être différent ?
Les mises à jour système et la confiance
Mais cacher ces mécanismes entraine forcément une installation silencieuse des mises à jour. C’est le cas chez Apple et Microsoft depuis des années, l’un avec l’App Store, l’autre avec Windows Update. Idéalement, les téléchargements se font tout seuls, les mises à jour s’installent puis le système prévient simplement l’utilisateur qu’il doit redémarrer, du moins quand cela est nécessaire.
Par contre, quand l’un des téléchargements contient un problème, les choses se corsent singulièrement. On sait que le souci s’est présenté plusieurs fois avec Windows au cours des dernières années, mais ce type d’accrochage avait relativement épargné Apple. Pourtant, en fin de semaine dernière, quand des utilisateurs ont commencé à signaler que leur port Ethernet ne fonctionnait plus, c’est bien vers une mise à jour récente que les regards se sont tournés.
Une liste noire mise à jour silencieusement
Installée silencieusement dans la journée de vendredi, elle contenait en fait une version fraiche de la liste noire des extensions kernel. Ces dernières, que l’on peut comparer dans les grandes lignes à des pilotes, permettent de gérer notamment le matériel dans un Mac. La liste noire permet à Apple de réunir les noms des extensions qui peuvent poser de vrais problèmes au système. Elle est associée à une fonctionnalité nommée System Integrity Protection, apparue avec El Capitan.
La SIP est un mécanisme important de défense. Apple sait que sa plateforme est restée relativement épargnée par les malwares, mais cette « chance » peut toujours basculer n’importe quand. Le SIP doit donc préserver l’intégrité de composants clés, tout en bloquant des extensions kernel qui seraient jugées nocives, pour une raison ou une autre. En résumé, la fonctionnalité réduit les droits root.
Un port Ethernet qui ne fonctionne plus
Or, la liste noire de la SIP est mise à jour de manière totalement silencieuse, sans interaction avec l’utilisateur et surtout sans redémarrage. C’est ce qui s’est produit vendredi dernier, mais avec une différence de taille : la liste noire contenait une entrée qui n’aurait pas dû y figurer. La SIP s’est retrouvée tout à coup en capacité de bloquer la gestion du port Ethernet de certaines machines, sans que l’on sache exactement pourquoi des utilisateurs étaient touchés, et pas d’autres.
Le symptôme était brutal : impossible de faire fonctionner le port Ethernet, que ce soit pour un réseau local ou pour accéder à la connexion Internet. Par contre, les connexions Wi-Fi n’étaient pas concernées, permettant à bon nombre d’utilisateurs de se sortir du mauvais pas. Apple a dans tous les cas vite réagi, en publiant deux jours après une note explicative sur son site dédié au support technique.
Forcer le système à récupérer la dernière version de la liste
Dans cette page apparue dimanche, la société indique qu’il faut commencer par contrôler la version installée de la liste. Pour cela, il faut se rendre dans le menu Pomme en haut à gauche de l’écran, puis cliquer sur « À propos de ce Mac ». On clique ensuite sur « Rapport système », puis on descend dans la colonne de gauche jusqu’à trouver, dans la catégorie « Logiciels », la ligne « Installations ». Dans la liste à droite, il faut alors trouver la ligne « Incompatible Kernel Extension Configuration Data ». Si 3.28.1 est indiqué, c’est qu’il s’agit de la version problématique.
La solution est alors simple, du moins si l’on possède une connexion Wi-Fi. Il suffit en effet d’ouvrir le Terminal et de lancer la commande suivante : sudo softwareupdate --background. OS X va alors forcer la mise à jour de la liste et récupérer la dernière version, qui ne contient pas le problème. Si aucune connexion n’est présente, il faut passer par une autre méthode, plus longue, qu’Apple décrit étape par étape dans sa note technique.
Reste que la société n’a donné aucune explication sur les raisons de ce raté. Ars Technica suggère de son côté que cette version a été mise en ligne trop tôt et qu’elle aurait pu accompagner la future mise à jour 10.11.4 du système. Mais sans réponse de la firme, il sera difficile d’en juger.