SMC Flashing with SmcFlasher.efi or within OS


Rendering Error in layout Widget/Social: Call to a member function exists() on null. Please enable debug mode for more information.
More
6 years 3 months ago - 6 years 3 months ago #9165 by sadponyguerillaboy
The odd time I run into situations where I order and SMC that is for a specific model, but end up receiving the incorrect one. Of course I don't find out until after the chip has been soldered onto the board. In these situations, I find that the systems usually still boot, etc. but due to the incorrect firmware, fans rev high, or screen resolutions are incorrect etc. I can usually determine what SMC version I've installed by booting ASD, where it gives me an error code stating that ASD is not for "whatever version of system you have". It's a pain in the ass to have to remove it, clean the pads, reorder, or chance it through ordering scrap boards.

So my current situation is this:

Working on a 13" Macbook Pro 2015 with board 820-4924-A. Part of it burnt severly, but has now been repaired. But the SMC died, so I ordered what was supposed to be a 2015 13", but instead received a 2013 15". The system now boots and runs, but of course not correctly. Apple provided SMC firmware for older systems, but hasn't provided anything post 2012 retina. Firmware payload updates are now bundled in OS updates / Installers. I've managed to extract the correct firmware payload for my 2015, but the firmware payload now consists of 4 files instead of just one (flasher_base.smc, flasher_update.smc, Mac-E43C1C25D4880AD6.epm and Mac-E43C1C25D4880AD6.smc). I also have the new SmcFlasher.efi that comes bundled with these new files.

Problem is, is that booting the refit efi shell and attempting to run the usual SmcFlasher.efi -force -LoadApp filename" command no longer works correctly. I can mess around and get it to flash the Mac-E43C1C25D4880AD6.smc file, but that's only one of the 4 files. At first after installing the wrong SMC chip, it would hang on the OS boot (apple logo). After flashing just the Mac-E43C1C25D4880AD6.smc i could get into the OS. So it updated enough to allow me to boot and operate the system, but it still runs incorrectly. Of course SmcFlasher.efi is proprietary, so I can't find any kind of manual on how to use it properly. I've looked inside the program and seen a list of commands I've never used before. Example:
-LoadApp 
-LoadBase,
-LoadUpdate 
-parse
-update
-LoadDir 
-epm
-force
-wv

So if anyone had any insight on how to approach the flash through the efi shell, your input would be appreciated. Alternatively, I've also tried to run the the update from within the OS, which is now bootable. Within the FirmwareUpdate.pkg within Sierra or High Sierra Combo updates, there is a folder entitled Scripts/postinstall_actions. there is a terminal cmd program that can be run called update. So what I did was rename the Mac-E43C1C25D4880AD6 folder in the Scripts/Tools/SMCPayloads folder to the same version of smc identified when I received the ASD error message. I also renamed the files inside to the same identifier. When I run the update command, it picks up the update and recognizes that there are changes to update, but it fails during the bless portion.

Again, if anyone has been down this road and has any insight, it would be appreciated.
Last edit: 6 years 3 months ago by sadponyguerillaboy.

Please Log in or Create an account to join the conversation.

More
6 years 2 months ago #9282 by vakc1n
Great Job! I have managed to install SMC files with SMC and EPM files with LoadAPP command attribute, both these files are used when smc is flashing.
But is your smcflasher.efi is not working correct, i have one version, that work for me fine. i can send it to you if you like

Also, you mentioned, that you have found smc signatures hidden in OS installer/updater packages. Can you be more spetific. where can we find these, Is which exact DMG?

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9549 by toinou21
Hello, have you made some progress on this?

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9555 by sadponyguerillaboy
I no longer have the system to test on, as it was returned to the customer. Was taking too long. You can find the firmware payloads in any of the newer macOS combo updates that you can download directly from apple (not through app store). Use pacifist to extract them. Yes, please send file, I will test in the future if I run into another similar problem. Also, what was the command line you were using?

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago - 6 years 1 month ago #9562 by vakc1n
But i have already tried to download all the combo updates i can find. no luck. Maybe you remember, where to dig in specificaly?

Attaching you my working EFI shell file ;)
Attachments:
Last edit: 6 years 1 month ago by vakc1n.

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9563 by toinou21
Hi, stupid question, but you said system boots and runs, did you tried to install sierra/high sierra to make the update? in the script directory there are postinstall and preinstall scripts did you tried that?

Best regards

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9570 by toinou21
-smc index - Sets smc to be used for all following commands.
-reset num - Does SMCReset to mode num.
-norestart - Prevents auto cold restart following updates [default=restart on update].
-dumpinfo - dumps all keys info. KEY, Size, Type, Attributes, but not data.
-dumpkeys - dumps all keys and data you should redirect output to a file.
-v - Shows current smc version.
-gtext - text graphics mode, used for debugging when calling from OS.
-wait sec - Wait 'sec' (default 60) seconds until exiting, only works in text mode.
-key KEY - 4 char key to display, 'size' used if keyinfo not supported.
-setkey KEY size d1 ... - sets existing 'KEY' with 'size' bytes of data represented as hex
example: -setkey MEAT 4 DE AD BE EF
-force - Used with -update, flashes files with out checking versions
-update filename - Update SMC with filename, 'flasher_update.smc', and
'flasher_base.smc' in same directory if versions are newer.
-parse filename - Will only parse check the file, doesn't flash it.
-epm filename [id] - Flash epm info. Use hex 'id' if specified, or get from key.
-LoadBase filename - Only updates the base flasher.
-LoadUpdate filename - Only updates the update flasher.
-LoadApp filename - Only updates the appcode.

Those are commands used with the flasher (v1.3.4 so old version)
-update filename - Update SMC with filename, 'flasher_update.smc', and
'flasher_base.smc' in same directory if versions are newer.
-epm filename [id] - Flash epm info. Use hex 'id' if specified, or get from key.

So I think the 4 files are flashed with those commands
The following user(s) said Thank You: .::iRizwan::., sadponyguerillaboy

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9573 by sadponyguerillaboy
Located in: FirmwareUpdate/Scripts/Tools/SMCPayloads/<then folder with correct system identifier>

I've also attached SMCPayloads for you.
Attachments:

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9574 by sadponyguerillaboy

toinou21 wrote: Hi, stupid question, but you said system boots and runs, did you tried to install sierra/high sierra to make the update? in the script directory there are postinstall and preinstall scripts did you tried that?

Best regards


Yes, tried running a regular install, and also tried the postinstall scripts.

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9578 by vakc1n
Thank you! But i have tried a lot of Update and hadn't find them there, can you send a link to a specific update which has them?

Problem is that i need Macbook10.1 SMC Payloads. They are not listed in your ZIP.

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9579 by toinou21

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9580 by vakc1n
I also need epm file ;(

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9584 by sadponyguerillaboy

vakc1n wrote: I also need epm file ;(


There is no epm file for that update. the 10,1 is the older single smc file update. download the smc update from the link toinou21 sent you, then use pacifist to extract the FirmwareUpdate folder for the 15" (note there are both 13" and 15" updates in the package, so choose the right one, ie. it will have 15 in the name). It will also come with the correct SMCFlasher.efi file you use to update the smc from within the EFI Shell (use refit).

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9587 by vakc1n
I Already did that procedure for 2013+ computers many times.

I have a problem with 9,2 computer to be exact (Mistyped earlier, but no matter, same year) When i only extract 2012MBP13smc. and SmcFlasher.efi from that update, which you gave me i LoadApp that file, bus no changes (Now i am using BH revision SMC donor chip from Air. So Fan is spinning fan and no second FAN spinning) so i need epm file to to update not also App side, but the base too.

Am i thinking right?

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago - 6 years 1 month ago #9588 by sadponyguerillaboy

vakc1n wrote: I Already did that procedure for 2013+ computers many times.

I have a problem with 9,2 computer to be exact (Mistyped earlier, but no matter, same year) When i only extract 2012MBP13smc. and SmcFlasher.efi from that update, which you gave me i LoadApp that file, bus no changes (Now i am using BH revision SMC donor chip from Air. So Fan is spinning fan and no second FAN spinning) so i need epm file to to update not also App side, but the base too.

Am i thinking right?


Macbook 9,2 is pre-retina, and is an A1278 13". So it can't have a second fan. You're using the incorrect SMC version. If it's a 15" pre-retina it's a 9,1, not 9,2, and if it's a retina then it's 10,1. The SMC version you're installing only has 1 fan, hence why only one is spinning. When you install incorrect version it cann't register the hadware correctly and just goes to max fan speed. Either that or your soldered / reball job is problematic and needs to be redone.

Alternatively, there might be the possibility that you've mixed an SMC from a 2013+ system that has different / newer bases that cannot be rolled back due to the fact that there is no epm / base files in 2012 smcs? You didn't specify what type of Air SMC you used.
Last edit: 6 years 1 month ago by sadponyguerillaboy.

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9589 by vakc1n
Oh my got, i am sooo lazy, cannot identify the A1425 retina number....

MacBook Pro "Core i5" 2.5 13" Retina 20122.5 GHz Core i5 (I5-3210M)
Intro. October 23, 2012 Disc. October 22, 2013*
Order MD212LL/A* Model A1425 (EMC 2557)
Family Retina Late 2012 ID MacBookPro10,2
RAM 8 GB* VRAM 768 MB*
Storage 128, 256 GB SSD Optical None*

This one.

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9590 by sadponyguerillaboy

vakc1n wrote: Oh my got, i am sooo lazy, cannot identify the A1425 retina number....

MacBook Pro "Core i5" 2.5 13" Retina 20122.5 GHz Core i5 (I5-3210M)
Intro. October 23, 2012 Disc. October 22, 2013*
Order MD212LL/A* Model A1425 (EMC 2557)
Family Retina Late 2012 ID MacBookPro10,2
RAM 8 GB* VRAM 768 MB*
Storage 128, 256 GB SSD Optical None*

This one.


That one is a 10,2

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago #9591 by vakc1n
Yes i see ;) But the problem persists. when i try to update SMC from update link is says that i need epm file, i can LoadApp and LoadBase, but nothing changes then. Has anyone tried to do something with this model? Maybe you know the way to extract/dump files from already working machine for updating current?

Please Log in or Create an account to join the conversation.

More
6 years 1 month ago - 6 years 1 month ago #9593 by sadponyguerillaboy

vakc1n wrote: Yes i see ;) But the problem persists. when i try to update SMC from update link is says that i need epm file, i can LoadApp and LoadBase, but nothing changes then. Has anyone tried to do something with this model? Maybe you know the way to extract/dump files from already working machine for updating current?


You need to better explain your process. Are you doing these updates from an efi shell, or are you attempting to use one of the postinstall scripts from within the OS? Are you using the correct SMCFlasher.efi that is bundled with your specific SMC file, or are you trying to use a newer version? Unfortunately there is no epm file available for your specific system, only the single smc file. This is where you might want to harvest an SMC chip from a similar system, like an early 2013 retina. Alternatively, you could also experiment using the epm file form the Late 2013, which is included in the SMCPaylods i attached to my previous post. But I have not attempted or tested such a method, so cannot guarantee any kind of results. Have you also tried booding ASD to get the identifier number? If you use a version of ASD on a system it wasn't designed for, it will spit out the identifier. But if you can boot the OS you can get this info from within the system. Is a good and simple way to keep track of what SMC version and identifier you started with and what changes as you update.

As for dumping, this question has been asked time and time again across several forums, but unfortunately, such a tool is not publicly available. Would be nice though!
Last edit: 6 years 1 month ago by sadponyguerillaboy.

Please Log in or Create an account to join the conversation.

More
6 years 3 weeks ago #9631 by toinou21
vakc1n is right, on a Macbook Air 2013 which is old SMC flash process, it asked me too for an epm file, by the way, I put the epm file found on High Sierra disk, and it requests flasher_base.smc, I put it too with flasher_update.smc so it seems than the update command search the four files (smc and epm with the same name and flasher base / flasher update)

Please Log in or Create an account to join the conversation.

Who's Online

We have 478 guests and no members online

N00BZ

  • ljamal
  • ljamal74
  • mikeg2atest
  • ducchinhbui
  • anjarezt

Cookies