← 返回目录

如何手动更新mac的固件

发布时间: 2019-06-02 10:13:22
浏览量: 8158
评论数: 2
收藏数: 4
一种办法是买编程器,一种办法如下,不知道是不是一样的。@Y.H Wong2018-11-04 13:00:24That guide on MacRumors is really useful. I recently upgraded a 2014 MBPr board using most of its instructions, and it still works. C...

 

一种办法是买编程器,一种办法如下,不知道是不是一样的。

 

@Y.H Wong  2018-11-04 13:00:24

That guide on MacRumors is really useful. I recently upgraded a 2014 MBPr board using most of its instructions, and it still works. Changes made: 1. No need for kapton tape. 2. I used a Sintech ST-NGFF2013-B. 3. I didn't turn off hibernation with pmset, I didn't buy a CH341A programmer either. I just looked up the MBP112 and MBP114 firmwares, transplanted the NVMe driver from MBP114 to MBP112, and flashed my Mac with /usr/libexec/efiupdater -p /path/to/EFIPayloads --force-update. Wakeup problem completely gone.

 

Procedure followed by Pepijn to run the high sierra firmware installer:
  
 1. get the FirmwareUpdate.pkg file from the OS installer app's installESD.dmg
 2. extract the contents using pkgutil --expand /path/to/FirmwareUpdate.pkg <path somewhere else>/FirmwareUpdate
 3. in terminal, cd to the Scripts directory inside the expanded FirmwareUpdate pkg directory.
 4. with Scripts as your working directory, run these 2 commands, then reboot:
 sudo /usr/libexec/FirmwareUpdateLauncher -p "$PWD/Tools"
 sudo /usr/libexec/efiupdater -p "$PWD/Tools/EFIPayloads"
 5. at the reboot, firmware will be updated if there are any updates to be applied.

 

实际测试了一下,这个就是把这个文件写到EFI里,然后重启就会更新了,要是可以更新的话,会很快出现一个进度条,走完了,就是更新成功了,就会重启进入系统。但是对于个修改的EFI无法成功,即使是已经使用了原装的SSD硬盘也是不行。

估计是EFI更新器会对这个文件进行一些校验,不知道怎么可以避过。


nvram -p
...
efi-apple-recovery	<array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>C4A04D2E-CDA9-4D2F-A772-7B74233FBC68</string></dict></dict><key>BLLastBSDName</key><string>disk0s1</string></dict><dict><key>IOEFIDevicePathType</key><string>MediaFilePath</string><key>Path</key><string>\EFI\APPLE\FIRMWARE\MBP112.scap</string></dict></array>%00
...
使用refind 进入shell.efi,使用下命令刷smc
SmcFlasher.efi -force -update <filename.smc>