一种办法是买编程器,一种办法如下,不知道是不是一样的。
@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>