Aujourd’hui, une petit bidouille cosmétique. Quand on fait A propos de ce Mac, dans les Informations systèmes, on voit une ligne Lecteur de cartes. Sauf que le seul lecteur de cartes qui va apparaître là, c’est celui intégré à votre ordinateur, s’il en a un. Sur mon MacBook Pro, il n’y en a pas mais j’ai un lecteur de cartes en format ExpressCard (un Sony) qui ne dépasse pas et fait très bien son boulot.
L’idée est donc de s’arranger pour que le lecteur de cartes soit reconnu comme un modèle Apple.
C’est assez simple à faire, mais je conseille de sauvegarder les fichiers avant, on va modifier les pilotes et ce serait bête de faire une bêtise.
Etape 1 : Avoir un lecteur de cartes reconnu par le système, en USB. Il va falloir récupérer deux informations : l’identificateur constructeur et l’identification produit.
Il faut aller dans le Rapport Système, dans la section USB. Ce sont deux valeurs en hexadécimal, indiquée sous le nom Identifiant du fournisseur et Identifiant du produit.
Pour mon lecteur, on a donc 0x054c
pour le fournisseur (Sony) et 0x0281
pour le produit. Valeur qu’on va devoir convertir en décimal. Comme je pense que vous n’êtes pas tous familiers avec les conversions de l’hexadécimal au décimal, on va passer par la calculatrice de Mac OS X. Il faut passer en mode Programmeur dans les menus, cliquer sur la petite icône 16, entrer la valeur et ensuite cliquer sur le petit 10. 0x0281
devient 641
et 0x054c
devient 1356
.
Etape 2 : on va modifier les fichiers. Il faut se rendre dans /Système/Bibliothèque/Extensions
et copier le fichier AppleStorageDrivers.kext
dans un endroit sûr (genre faire une copie de sauvegarde).
Ensuite, clic droit sur le fichier, Afficher le contenu du paquet.
Dans Contents/Plugins
, on devrait trouver AppleUSBCardReader.kext
.
Clic droit sur le fichier, Afficher le contenu du paquet.
Dans Contents
, on devrait trouver Info.plist
.
Maintenant, on va modifier le fichier. J’utilise HexFiend, mais n’importe quel éditeur qui ne va pas modifier le format (même xCode suffit) est utilisable. Il va peut-être falloir s’identifier.
Dans le fichier, il faut chercher <key>idProduct</key>
Juste en dessous, il faut remplacer la valeur par le numéro de produit de votre lecteur, <integer>641</integer>
dans mon cas.
Ligne suivante, sous <key>idVendor</key>
, on met la valeur identifiant le constructeur. <integer>1356</integer>
dans le cas présent.
Une fois que c’est fait, on sauve le fichier et on remplace l’ancien fichier AppleUSBCardReader.kext
par le modifié.
Pour qu’OS X reconnaisse bien les modifications, il faut que les autorisations soient correctes et il faut aussi reconstruire les caches. Le plus simple est de passer par un logiciel dédié, même s’il est parfaitement possible de le faire manuellement. Moi, j’utiliser Kext Utility mais il en existe d’autres. Le fonctionnement est simple : on lance le logiciel et il s’occupe de tout.
Une fois qu’on a terminé, il suffit de redémarrer et ça devrait fonctionner.
Attention à un petit bug cosmétique : comme Apple n’utilise que des lecteurs de cartes SD, l’icône par défaut sera une carte SD, même si votre lecteur accepte d’autres formats. Dans mon cas, le lecteur lit aussi les cartes Memory Stick mais elle s’affiche avec une icône de carte SD. Je n’ai pas trouvé comment changer l’icône en fonction de la carte, mais il est possible de forcer une icône en particulier.
Toujours dans le fichier Info.plist
, il faut modifier la valeur sous <key>IOBundleResourceFile</key>
(qui contient <string>SD.icns</string>
) par une des valeurs suivantes, en fonction du type de cartes.
La liste : CompactFlash.icns
, MemoryStick.icns
, MemoryStickProDuo.icns
, MiniSD.icns
, SmartMedia.icns
, TransFlash.icns
, XD.icns
.
Voilà, j’espère que cette bidouille (qui ne sert à rien) va servir à quelqu’un…
Excellent on adore les trucs qui servent a rien et qui font mieux comprendre ce system qu’est OSX Lion.
On en veux plein des trucs pareils.
Trouvé il n’y pas très longtemps trois ou quatre semaines, ton site est vraiment sympa bravo.