Désactiver le SKEL de macOS High Sierra

Avec macOS High Sierra, Apple continue de brider la marge de manoeuvre des logiciels et – dans le même temps – celles des bidouilleurs. La dernière version du système ajoute une nouvelle fonction, SKEL, qui empêche le chargement de certains pilotes (kext). Expliquons.

Mavericks empêchait par défaut les extensions de se charger si elles n’étaient pas signées et placées dans /Library/Extensions. Yosemite empêchait les extensions non signées de se charger. El Capitan et Sierra rendait la protection encore plus efficace en empêchant la modification des fichiers systèmes. High Sierra ajoute encore une couche : les extensions tierces, même signées, ne se chargeront pas sans une approbation (un peu inutile à mon avis, mais soit) de l’utilisateur.

Plus exactement, le SKEL (Secure Kernel Extension Loading) va demander à l’utilisateur (administrateur ou pas) d’approuver une extension quand un programme l’installe, en se rendant les Préférences Système. Sont exclues les extensions déjà installées lors de l’installation de macOS High Sierra (logique), celles qui remplacent une extension déjà existante (votre programme la met à jour) ou celles qui proviennent de développeurs déjà approuvés. Le tout est expliqué là.

Apple propose comme d’habitude une commande pour gérer (désactiver) cette technologie. Avec la GM de High Sierra (a priori ça ne changera pas d’ici la semaine prochaine), il faut démarrer depuis la partition de restauration, lancer le Terminal et taper la commande suivante.

spctl kext-consent disable

Ensuite, il suffit de redémarrer. Attention, comme d’habitude la commande modifie des données de la NVRAM, donc un effacement de celle-ci ou une mise à jour de macOS peuvent remettre la protection en place. A noter tout de même que l’ajout d’extensions restent tout de même assez rare. Quelques logiciels en utilisent, notamment les logiciels de virtualisation, ainsi que certains périphériques mais ça reste assez rare. Dans la majorité des cas, les pilotes standards intégrés au système suffisent pour une bonne partie des appareils du marché.

Enfin, ça ne dispense pas de désactiver le SIP, comme avec les OS précédents, via la commande csrutil disable (au même endroit).