MacBook – How to update latest MacBook pro EFI firmware manually

efifirmwarehigh sierramacbook pro

In short, the firmware cannot be updated either by upgrading macOS to High Sierra or by bless manually. Here comes the detail.

My MacBook pro info:
about my macbook pro
firmware version
SSD drive info

Attempt 1 – update it by updating macOS from 10.12.6 to 10.13.2

Failed with error message "An error occurred while verifying firmware". Key info in ia.log is as following.

ROM does not support APFS

Clearing automation and attempting to rebless.

Failed to get disk for UUID specified for rebless.

Operation: Verify firmware failed, Failure Reason: Error Domain=com.apple.osinstall Code=512

If look into previous log of EFI updating, it seems they are quite normal.

EFI currentVersion: [0000000000D30008]
EFI updateVersion: [0000000000D70000]

/Volumes/bless.YdD7/EFI/APPLE/FIRMWARE/MBP91_00D7_B00.scap created successfully

Writing firmware update installed cookie (/Volumes/MacSSD/macOS Install Data/.FirmwareUpdateInstalled)

/usr/libexec/efiupdater finished with status: 0

Thus, I've no idea why High Sierra installer failed to update the EFI firmware at the very first time.

Attempt 2 – update EFI firmware manually

According to the chapter 2.0 How Does a Mac Update Its EFI Firmware & How Do You Find Your EFI Version of The Apple of Your EFI , with the following command bless, the file MBP91_00D3_B0C_LOCKED.scap extracted from mac2015002efiupdate.dmg, which downloaded from Apple.com, and the file MBP91_00D7_B00.scap extracted from Install macOS High Sierra.app, it executed successfully.

sudo bless -mount / -firmware <PATH>/MBP91_00D7_B00.scap --verbose --recovery

Shutdown, Power on. It got a flashing LED light indicating the firmware was about to be updated. Then, 3 times power off automatically in a short period, end up with a normal OS X startup. Everything stay still. In another word, the Boot ROM Version hasn't been changed.

Any idea?


Update @11 Jan 2018:

I've just seem a related post Is there any way to manually bless firmware when main disk is external?

It seems that the root cause is running OS X from a second internal disk. Unfortunately the first one of my MacBook is out of order.


Update @13 Jan 2018:

Confirmed the following methods do not work.

  • replaced the Samsung SSD with original Apple HDD and tried again. The ia.log was same as that of SSD
  • kept internal hard drive connected, connected the USB external drive or SXCARD reader. It selected the ESP on internal hard drive as the staging EFI. Thus, same result as above.
  • disconnect all internal hard drive, connected the USB external drive and SXCARD reader. Got the log as

    No appropriate ESP could be found. Error while writing firmware updater for EFI.

Best Answer

The EFI partition is used when the firmware is updated. I assume this EFI partition must be on the primary internal disk. Apple posted that firmware updates require a GUID partition scheme at the archived website Firmware updates for Intel-based Macs require a GUID partition scheme, although the site does not explicitly say this must be the primary drive. When a SDD or HDD is formatted to use a GUID partition scheme by the Disk Utility or diskutil command, the EFI partition is automatically created.

Basically, the firmware update is copied to the FAT32 formatted EFI partition. The firmware is then instructed to update itself. Basically, the same procedure occurs for firmware updates on my HP PC running Windows. So, this is not unique to Apple Macs.

Having to update the firmware to run High Sierra makes sense. The APFS is new and older Macs would need a firmware update before being able to recognize this filesystem and read the boot files.

You used to manually update the firmware. At some point, Apple decided to include firmware updates in the macOS installs. Apple posted this in the now archived website About EFI and SMC firmware updates for Intel-based Mac computers.