How to downgrade EFI firmware back to version 1.6

I'm trying to get a SATA III hard drive to work in my MacbookPro5,1. I think I've finally figured out that if I downgrade the EFI firmware to version 1.6, my computer will negotiate the link at SATA 1 speeds and the drive will work correctly. However, the instructions all point to a file that doesn't exist anymore. See this answer for the instructions where the file doesn't exist anymore.

Does anybody have a copy of the file aluminum.macbook.pro.recovery.dmg?


Solution 1:

I finally managed to successfully downgrade the EFI firmware to version 1.6. Unfortunately that didn't make my hard drive work. However I'm going to reproduce my steps here so that the whole world can know what it takes:

  1. Download the EFI firmware update package from Apple. Here is the link I used for firmware version 1.6 for my late-2008 MacbookPro5,1: http://support.apple.com/kb/DL746
    • WARNING! If you use the wrong firmware for you computer, bad things will almost certainly happen. This isn't my experience but it would probably brick your computer, meaning it will change from being a computer that can compute things to being a brick that just sits there. You have been warned!
  2. The EFI firmware update 1.6 comes as a .pkg file. Since it won't extract for you unless your computer needs the update, you will have to extract it yourself. The best way I found to do this is with the app unpkg. When you extract the contents using unpkg you will end up with a folder "MacBookProFirmwareUpdate/Applications". Move the app "MacBookProFirmwareUpdate/Applications/Utilities/MacBook Pro EFI Update.app" to "/Applications/Utilities/" (where your calculator app etc. are located).
  3. Now comes the magical part: open a terminal window and run the following command (all one line):

    /usr/sbin/bless -mount / -firmware "/Applications/Utilities/MacBook Pro EFI Firmware Update.app/Contents/Resources/MBP51_0074_01B_LOCKED.scap" --recovery --verbose

    • WARNING: This bypasses ALL of the safety checks built into the app. You are responsible for making sure your computer is connected to a reliable power source and that the update will not be interrupted. You are responsible for making sure this firmware will work on your computer. I am not responsible for you turning your computer into something else not a computer anymore.
    • Note: This command is for version 1.6. For another version you would need to change the file name to whatever it is in the package you downloaded from Apple.
    • The --verbose option should let you know about any errors.
    • This would only work for me on an internal hard drive, because an external drive "wasn't acceptable for a recovery drive" or whatever. Removing the --recovery option makes the next step not happen.
  4. Restart your computer. I heard an angry beep and then there was a gray Apple screen with a progress bar. That's a good thing. If you don't get that then something went wrong.

  5. Your EFI firmware should be flashed! Launch "System Information.app" to check that "Boot ROM Installed" sort of matches the name of the .scap file used above. For version 1.6 this is "MBP51.0074.B01".

In order to get to this point I had to disassemble the firmware update app downloaded in step 1 to get the command in step 3. I think it was the --recovery part that made it finally work, but I also did a couple of other things with unknown effect:

  • During step 2 there is also a file "MacBookProFirmwareUpdate/System/Library/LaunchAgents/com.apple.updater.macbookpro.efi.plist" which I extracted to the corresponding locstion.
  • After step 3 I also ran the following AppleScript:

tell application "System Events"

make new login item at end of login items with properties {path:"/Applications/Utilities/MacBook Pro EFI Firmware Update.app/Contents/Resources/MBP51_0074_01B_LOCKED.scap"}

end tell