Personaliser Disabler.kext




A force de trainer sur ce site, vous devez sans doutes savoir que le kext Disabler.kext, développé par Kabyl, permet entre autre d'empêcher le le chargement de certaines Extensions, et notamment AppleIntelCPUPowerManagement qui provoque des kernel panic au boot ou lors du processus de mise à jour du système.

Ce que vous ne savez sans doutes pas, c'est que ce kext peut être personnalisé, c'est à dire q'il est tout à fait possible d'indiquer à Disabler de bloquer d'autre kexts de votre choix.


Le fonctionnement


Comme d'habitude, tout se passe dans le fichier Info.plist à l'intérieur du kext.
il vous faudra entrer les informations du kext à bloquer dans le l'info plist du Disabler, qu'il vous faudra bien entendu télécharger ( Réussir son installation retail , page 2)

Voici à quoi ressemble le .plist lorsqu'il est configuré uniquement pour bloquer AppleIntelCPUPowerManagement:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Disabler</string>
<key>CFBundleGetInfoString</key>
<string>Kernel Extension Disabler 1.0.1, Copyright © 2008 by Kabyl</string>
<key>CFBundleIdentifier</key>
<string>net.osrom.kext.Disabler</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Kernel Extension Disabler</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleVersion</key>
<string>1.0.1</string>
<key>IOKitPersonalities</key>
<dict>

<key>IntelCPUPMDisabler</key>
<dict>
<key>CFBundleIdentifier</key>
<string>net.osrom.kext.Disabler</string>
<key>IOClass</key>
<string>Disabler</string>
<key>IOMatchCategory</key>
<string>AppleIntelCPUPowerManagement</string>
<key>IOProbeScore</key>
<integer>1000</integer>
<key>IOProviderClass</key>
<string>IOResources</string>
<key>IOResourceMatch</key>
<string>IOKit</string>
</dict>


<key>OSBundleLibraries</key>
<dict>
<key>com.apple.kernel.iokit</key>
<string>1.1</string>
</dict>
<key>OSBundleRequired</key>
<string>Root</string>
</dict>
</plist>

<key>IntelCPUPMDisabler</key>
Nom que vous donnerez à l'entrée correspondante au kext.

<key>CFBundleIdentifier</key>
<string>net.osrom.kext.Disabler</string>

<key>IOClass</key>
<string>Disabler</string>

Identifier du kext disabler. Doit être identique à tous les kexts que vous souhaiter bloquer.

<key>IOMatchCategory</key>
<string>AppleIntelCPUPowerManagement</string>
<key>IOProviderClass</key>
<string>IOResources</string>
<key>IOResourceMatch</key>
<string>IOKit</string>

Informations relatives au kext à bloquer. Vous le trouverez dans l'Info.plist du kext à bloquer sous la même forme. Il faudra donc les copier dans l'info.plist de Disabler.kext.
A noter que le kext à bloquer semble devoir posséder l'entrée <key>IOResourceMatch</key> sans quoi le disabler n'aura sans doutes pas d'effet.
Prennez garde aussi aux kexts contenant des dépendances, celle-ci devront être bloquées en priorité (surtout celle qui vous dérange) plutôt que le kext en entier.
Pour vérifier si le kext est bien bloqué au reboot, vous pouvez utiliser le programme Ioregistry Explorer:
http://www.mediafire.com/download.php?z4orjeuayzy

<key>IOProbeScore</key>
<integer>1000</integer>

Valeur qui définie la priorité du processus au boot, et permet à Disabler.kext de neutraliser le kext avant que celui-ci ne se charge si sa valeur est supérieure à celle du kext à bloquer. 1000 est un valeur suffisante dans quasiment tous les cas.