Vous vous souvenez peut-être que j’ai un prototype de MacBook Pro 2011 dans ma collection. La machine utilise une version bêta d’une ROM et je pensais que cette ROM empêchait de démarrer un OS récent (au-delà de Snow Leopard). J’ai donc cherché un moyen de flasher la ROM avec une version plus récente.
Vous vous en doutez, les mises à jour officielles ne fonctionnent pas, sinon je n’écrirais pas un article sur le sujet. L’idée est donc de trouver un moyen de remplacer le contenu de la ROM du MacBook Pro sans passer par les outils officiels. Pour commencer, j’ai essayé de trouver un moyen de forcer logiciellement le flash, sans succès. Je suis donc passé à la vitesse supérieure : flasher manuellement.
La méthode est un peu violente (elle est expliquée là) : elle consiste à aller flasher manuellement la puce qui contient la ROM. Le matériel nécessaire est simple : un BusPirate (une petite carte dédiée au développement), une pince ou des connecteurs de la taille de la puce du Mac, un breadboard (ou de quoi relier quelques fils) et c’est tout. Il suffit d’ouvrir le Mac, placer la pince sur la puce et passer à la partie logicielle.
La partie principale est plus compliquée. D’abord, il faut câbler correctement le BusPirate, en allant vérifier les datasheets de la puce qui contient la ROM (il faut l’identifier, mais les forums vous aideront). Le câblage en lui-même est simple quand on a les bonnes valeurs. Si quelqu’un essaye, je peux toujours fournir les informations dans mon cas précis, mais ça n’a pas grand intérêt. Ensuite, on relie le BusPirate à un ordinateur (dans mon cas, j’ai du passer par Windows) et on essaye de lire la ROM, plusieurs fois. L’idée est de vérifier que le système lit correctement, sans erreurs.
flashrom -p buspirate_spi:dev=COM3,spispeed=2M -c MX25L6405(D) -r nomdelarom
Sur ma machine, c’est cette puce (MX25…) qui est utilisée, mais ça peut varier. La lecture prend beaucoup de temps (un peu moins d’une heure) et j’ai effectué trois lectures, ensuite validée avec un hash MD5. Si jamais les trois lectures ne donnent pas le même résultat, il y a un souci.
La seconde étape consiste à remplacer la ROM par une nouvelle. L’écriture ne va pas poser de soucis, mais il faut évidemment une ROM. Récupérer celle fournie dans les mises à jour d’Apple ne fonctionne pas : il y a des changements au moment du flash, il y a donc deux solutions : soit lire la ROM d’une machine classique (la même), soit chercher sur Internet quelqu’un qui propose la bonne ROM en téléchargement. Attention à un point, la ROM contient le numéro de série, qu’il faut donc modifier en fonction de votre machine : sans cette étape, votre Mac flashé aura le même numéro de série que celui qui a fourni la ROM, ce qui peut poser des soucis, notamment avec iCloud. Une fois la ROM obtenue, l’écriture demande une seule commande (et du temps).
flashrom -p buspirate_spi:dev=COM3,spispeed=2M -c MX25L6405(D) -w nomdelarom
Dans l’absolu, une fois que c’est fait (c’est lent), il faut relire le contenu et vérifier qu’il correspond, avant d’essayer de rallumer la machine.
Si tout se passe bien, la machine va démarrer. Dans mon cas, c’est tout de même un échec : la machine bloque toujours avec un OS moderne, soit parce qu’elle diffère de la machine classique soit parce que la SMC pose des soucis, et je n’ai pas trouvé de moyens de modifier cette dernière. A noter que le changement de ROM permet aussi de faire sauter un mot de passe sur l’EFI, étant donné qu’il est stocké dans la ROM, et que certains ne se privent pas pour monnayer la manipulation.
Salut,
J’ai pas mal joué avec les ROM de mon macmini, et nous avions réussi à faire le passage 1,1 vers 2,1 et ce uniquement à partir de méthodes et de fichiers officiels modifiés :
Création des fichiers : http://forum.netkas.org/index.php/topic,874.0.html
Script pour faire ça proporement : http://forum.netkas.org/index.php/topic,8787.msg28070.html
Cette méthode de substition du .fd et de la modification du check CRC32 dans l’EFI Updater ne marchait pas pour toi ?
Concernant le SMC une méthode similaire doit être possible car un Dump / Flash est envisageable depuis un Shell EFI (http://www.insanelymac.com/forum/topic/299811-readsmc-for-efi-a-tool-to-enter-read-smc-keys-from-efi-shell-on-real-macs/).
Et donc la méthode bourrin doit marcher aussi …
Je suis preneur de retour la dessus car je n’arrive pas a avoir un dump du SMC d’un MacMini2,1 pour tester sur ma config !
Pour le SMC, j’ai réussi entre temps (le texte date un peu) en forçant via l’outil, même si ça ne règle pas réellement mon problème.
Un script shell rEFIt qui force la MAJ manuellement, ça va être publié bientôt.
Pour le dump, aucune idée de comment faire.
Bonjour!
Auriez vous une idée où trouver un firmware pour un Macbook Pro 7,1 (mid-2010) flashable de cette manière? Mon Mac ne démarre plus du tout, écran blanc, pas de bip de démarrage, et je pense que la ROM a été endommagée d’une manière ou d’une autre…
Merci d’avance!
Je reprends la même question que penguin01210, savez vous ou peut-on trouvé les Roms ?
Merci :D
Bonjour j’ai acheté un MacBook pro de 2013 a un particulier et je voulez le refaire, après l’avoir refait j’ai vous réinstaller mac os sur le nouveau disque que j’ai installé, suite à ça j’ai appuis sur atl,commande,r,p et meme toute les autres touche existant or j’ai le cadenas qui se mais j’ai essayé les barrette ram, j’ai cherché à puce mes introuvable et surtout j’ai essayé de trouver cette puce acheter et je n’ai pas trouver non plus pouvez-vous m’aider s’il vous plait cordialement
Si vous n’avez pas le mot de passe, je ne peux pas aider, désolé