Git Product home page Git Product logo

smctool's Introduction

SMCTool Logo
SMCTool

Making SMC flashing quicker and easier.

AboutDownloadBootable USBFlashing An SMCCompatibilityDisclaimersAcknowledgementsDonate

⚠ This project is now read-only, new versions will be available at https://github.com/MuertoGB/SMCFT

About

This bootable shell is used to program a Mac LM4F (Stellaris) System Management Controller (SMC) in EFI mode with the correct stock firmware, this enables a technician to replace a faulty SMC with a donor from a non-matching machine. This not only saves time, but money, as a specific donor SMC isn't necessary to have 'on hand'; simply take a donor SMC* from another board, replace it, and flash with this handy bootable software.

⚠ *Currently, a full list of SMC boot compatibility between boards has not been established, I recommend you keep the platform and GPU type the same (MacBook, iMac, Mac Mini), (iGPU, dGPU).

Beware of imposters like this jackoff: https://www.youtube.com/watch?v=mHCduTj01Zo

Download

Version Release Date Latest
V1.0.7 18th Feb 2023 Yes
V1.0.6 31st Jan 2022 No

📔 See the full Changelog.

Bootable USB

To begin, format a USB disk in ExFAT, FAT32, VFAT or HFS+ for use with SMCTool.

⚠ FAT32 using a GUID Partition Table (GPT) is recommended.

Once the memory stick is ready, you can do any of the following:

  • Option A: Manually copy all files from the ISO to the formatted memory stick.
  • Option B: Write the image to the memory stick with ddrescue, Passmark imageUSB, or similar.
  • Option C: Use a bootable USB creation tool and select the ISO, or image as the source file, and the memory stick as the destination.

❕ Extended instructions here.

Flashing An SMC

  1. Remove the internal storage drive.
  2. If you have a portable device, plug in the power adapter.
  3. Insert your USB stick, then power on the device whilst holding Option ⌥.
  4. Load into SMCTool from the boot menu and let 'startup.nsh' run.
  5. Type the 'boardnumber.nsh' you want to flash, e.g: 820-00165.nsh, then press return; the script will then flash the SMC.
  6. Type exit to reboot, or power off machine to complete the process.

⚠ You may need to perform an NVRAM reset after flashing an SMC.

Why must the SMC be flashed?:
Each System Management Controller is specifically programmed for it's counterpart board, and is in charge of managing video, hibernation, battery charging, thermal and power management. Incorrect or mismatched firmware causes erratic behaviour such as broken display resolution, high fan speed, throttling, and crashing.

I flashed an incorrect firmware:
No problem, just type the correct board number and the correct payload will be flashed. If you restart, or power off after an incorrect payload flash you may brick the device. If a system is somehow rendered 'bricked', and cannot get to the boot menu, you must replace the SMC again. You can always put the incorrectly flashed SMC aside for future use on a board it was 'accidentally' programmed for.

💻 Quick video of flashing an SMC here.

Compatibility

Devices:

Platform Supported? Planned?
MacBook N/A
Mac Mini N/A
iMac In development
Mac Pro Researching

ℹ See the compatibility information for a full list of supported models.

System Management Controllers:

SMC Supported? Planned?
LM4F BGA157 N/A
TM4C BGA168 Researching
F2117LP BGA145 No

ℹ Older single file payloads for boards such as 820-3115, 3332, and 3462 are currently being worked out. Support may be added in the future.

Disclaimers

I'm not responsible if you do something wrong, if you're here I expect you to know what you're doing. Where I do my utmost to verify all information to my best ability, I'm not responsible for any mistakes my end either.

This is not a magical 'fix my Mac' tool, it has a specific purpose, which is flashing correct payloads to a System Management Controller with incorrect firmware. Do not flash your SMC if you have no reason to.

Acknowledgements

🖼 Project icon by KBuHT on macOSicons.
💡 This tool is based on the work from logi.wiki.
🎥 SMC Tool tested by Paul L Daniels on YouTube.

⭐ Many Thanks To ⭐

  • Paul L Daniels for development help, and the kick to finish this project.
  • Logi.wiki for the original work, which I could base this project on.
  • EineWildeStehlampe for information and help regarding UEFI.
  • theSmudge for being a great help verifying information.
  • Nobluesky for verifying iMac board-id's.

Donate

Buy Me A Coffee LogoPayPal Logo


smctool's People

Contributors

muertogb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

smctool's Issues

SMC playload with Board ID

Hello, thank you to have been working on SMCTool
Here is the SMC playload with Board ID

To know the firmware version, just open in the payload folder and open the XXXX.smc file with test edit, and you will have the version in first line, just google it, you will get the model and after the board ID

I have done it you got my research following

warning about flashing iMac the SMC version is different with different GPU,
-Good luck nothing have been tested

SMC TM4 BGA168 (I still don’t Know if possible)

MacBook Pro

A1708

MacBookPro14,1 13-inch Mid 2017 Mac-B4831CEBD52A0C4C 820-00840-01 820-00840-A Version 2.43f10 Intel Iris Plus Graphics 640
MacBookPro13,1 (13-inch Late 2016) Mac-473D31EABEB93F9B 820-00361-A 820-00875-01 820-00875-A Version 2.36f101

A1707

MacBookPro14,3 (15-inch Mid 2017) Mac-551B86E5744E2388 820-00928-A Version 2.45f4
MacBookPro13,3 (15-inch Late 2016) Mac-A5C67F76ED83108C 820-00281-A Version 2.38f11

A1706

MacBookPro14,2 (13-inch Mid 2017) Mac-CAD6701F7CEA0921 820-00923-05 820-00923-A Version 2.44f5 Intel Iris Plus Graphics 650
MacBookPro13,2 (13-inch Late 2016) Mac-66E35819EE2D0D05 820-00239-09 820-00239-A Version 2.37f24

MacBook

A1534

MacBook10,1 (Mid 2017) Mac-EE2EBD4B90B839A8 820-00687-A Version 2.42f13 1,2 GHz 256 Go 1,3 GHz 512 Go
MacBook9,1 (Early 2016) Mac-9AE82516C7C6B903 820-00244-A Version 2.35f108 1,1 GHz 256 Go 1,2 GHz 512 Go
MacBook8,1 (Early 2015) Mac-BE0E8AC46FE800CC 820-00045-A Version 2.25f87 1,2 GHz 256Go 512 Go

iMac

A2115

iMac19,1 (27-Inch 5k, 2019) Mac-AA95B1DDAB278B95 820-01236-A 820-01236-06 Version 2.46f12 Radeon Pro 570X 575X 580X (Missing SMC Firmware)

A2116

iMac19.2 (21,5-Inch 4k, 2019) Mac-63001698E7A34814 820-01237-07 Version 2.47f3 Radeon Pro 555X Radeon Pro 560X

SMC LM4 BGA157 ( look like working flash)

MacBook Pro

A1502 Retina

MacBookPro12,1(13-inch Early 2015) Mac-E43C1C25D4880AD6 820-4924-A Version 2.28f7
MacBookPro11,1(13-inch Late 2013 2014) Mac-189A3D4F975D5FFC 820-3476-A 820-3536-A Version 2.16f68

A1425 Retina

MacBookPro10,2 (Retina, 13-inch, Late 2012) Mac-AFD8A9D944EA4843 820-3462-A 820-3190-A Version 2.6f59 (SMC firmware updates)

A1398 Retina

MacBookPro11,5 (15-inch Mid 2015) (DG) Mac-06F11F11946D27C5 820-00426-A Version 2.30f2
MacBookPro11,4 (15-inch Mid 2015) (IG) Mac-06F11FD93F0323C5 820-00163-A 820-00138-A Version 2.29f24
MacBookPro11,3 (15-inch 2013 2014) (DG) Mac-2BD1B31983FE1663 820-3787-A Version 2.19f12
MacBookPro11,2 (15-inch 2103 2014) (IG) Mac-3CBD00234E554E41 820-3662-03 820-3662-A Version 2.18f15
MacBookPro10,1(15-inch Early 2012 2013) Mac-C3EC7CD22292981F 820-3332-A Version 2.3f36 (SMC firmware updates)

A1286 Unibody

MacBook Pro9,1 (15-inch, mi-2012) Mac-4B7AC7E43945597E 820-3330-A 820-3330-B Version 2.1f175 (SMC firmware updates)

A1278 Unibody

MacBook Pro9,2 (13-inch mi-2012) Mac-6F01561E16C75D06 820-3115-A 820-3115-B Version 2.2f44 (SMC firmware updates)

MacBook Air

A1466

MacBookAir7,2 (13-inch Early 2015) Mac-937CB26E2E02BB01 820-00165-A Version 2.27f2
MacBookAir6,2 (13-inch Mid 2013 Early 2014) Mac-7DF21CB3ED6977E5 820-3437-B Version 2.13f15
MacBookAir5,2 (13-inch Mid 2012) Mac-2E6FAB96566FE58C 820-3209-A Version 2.5f9 (SMC firmware updates)

A1465

MacBookAir7,1 (11-inch Early 2015) Mac-9F18E312C5C2BF0B 820-00164-03 820-00164-A Version 2.26f2
MacBookAir6,1 (11-inch Mid 2013 Early 2014) Mac-35C1E88140C3E6CF 820-3435-B Version 2.12f143
MacBookAir5,1 (13-inch Mid 2012) Mac-2E6FAB96566FE58C 820-3209-A Version 2.4f19 (SMC firmware updates)

iMac

A1419

iMac18,3 (27-Inch 5k Mid-2017) Mac-BE088AF8C5EB4FA2 820-00609-A 820-01134-A Version 2.41f2 Radeon 580 570
iMac17,1 (27-Inch 5k, Late 2015) Mac-DB15BD556843C820 820-00134-A 820-00292-AVersion 2.33f12 4.0 GHz Core i7 (I7-6700K) Radeon R9 M395X M390
iMac17,1 (27-Inch 5k, Late 2015) Mac-B809C3757DA9BB8D 820-00134-A 820-00292-A Version 2.34f3 3.3 GHz Core i5 (I5-6600) Radeon R9 M395X
iMac17,1 (27-Inch 5k, Late 2015) Mac-65CE76090165799A 820-00134-A 820-00292-A Version 2.33f12 3.2 GHz Core i5 (I5-6500) Radeon R9 M380 M390
iMac15,1 (5K, 27-inch, Mid 2015) Mac-FA842E06C61E91C5 820-4652-A Version 2.23f11 Radeon R9 M380 M390 M390X M395X
iMac15,1 (5K, 27-inch, Late 2014) Mac-42FD25EABCABB274 820-4652-A Version 2.22f16 Radeon R9 M290X
iMac14,2 (27-inch Late 2013) Mac-27ADBB7B4CEE8E61 820-3481-A 820-3478-A Version 2.15f7 GeForce GTX 775M 780M GT 755M
iMac13,2 (27-inch Late 2012) Mac-FC02E91DDD3FA6A4 820-3298-A Version 2.11f16 GeForce GTX 660M 675MX 680MX (Missing SMC Firmware)

A1418

iMac18,2 (21.5-Inch 4k Mid-2017) Mac-77F17D7DA9285301 820-00597-06 820-00597-A Version 2.40f1 AMD Radeon Pro 555, 560
iMac18,1 (21.5-Inch Mid-2017) Mac-4B682C642B45593E 820-00629-A Version 2.39f40 Intel Iris Plus Graphics 640
iMac16,2 (21.5-Inch Late 2015) Mac-FFE5EF870D7BA81A 820-00431-A Version 2.32f21 Intel Iris Pro Graphics 6200
iMac16,1 (21.5-Inch Late 2015) Mac-A369DDC4E67F1C45 820-00430-A Version 2.31f37 Intel HD Graphics 6000, 6200 (could be 16.2 Intel Iris Pro Graphics 6200)
iMac14,4 (21.5-inch Mid 2014) Mac-81E3E92DD6088272 820-4668-A Version 2.21f92 Intel HD Graphics 5000
iMac14,3 (21.5-inch Late 2013) Mac-77EB7D7DAF985301 820-3588-A Version 2.17f7 Nvidia GeForce GT 750M
iMac14,1 (21.5-inch Late 2013) Mac-031B6874CF7F642A 820-3482-A Version 2.14f24 Intel Iris Pro 5200
iMac13,1 (21.5-inch Early 2013) Mac-00BE6ED71E35EB86 820-3172-A 820-3302-A Version 2.9f5 Intel HD 4000, GeForce GT 650 M (Missing SMC Firmware)

Other

Mac Mini

Macmini7,1 (Late 2014) Mac-35C5E08120C7EEAF 820-5509-A Version 2.24f32
Macmini6,2 (Late 2012) Mac-F65AE981FFA204ED 820-3228-A 820-3228-B Version 2.8f0
Macmini6,1 (Late 2012) Mac-031AEE4D24BFF0B1 820-3227-A 820-3227-B Version 2.7f1

Mac Pro

MacPro6,1 (2013) Mac-F60DEB81FF30ACF6 820-3637-A Version 2.20f18 D300 D500 D700

SMC DF2117 BGA145 (Not possible right Now)

MacBook Pro Unibody Air

MacBookPro8,3 (17-inch Late 2011)
MacBookPro8,2 (15-inch Late 2011)
MacBookPro8,1 (13-inch Late 2011)
MacBookPro8,3 (17-inch Early 2011)
MacBookPro8,2 (15-inch Early 2011)
MacBookPro8,1 (13-inch Early 2011)
MacBookPro6,1 (17-inch Mid 2010)
MacBookPro6,2 (15-inch Mid 2010)
MacBookPro7,1 (13-inch Mid 2010)
MacBookPro5,2 (17-inch Mid 2009)
MacBookPro5,3 (15-inch Mid 2009)
MacBookPro5,5 (13-inch Mid 2009)
MacBookPro5,2 (17-inch Early 2009)
MacBookPro5,1 (15-inch Late 2008)
MacBookAir4,2 (13-inch, Mid 2011)
MacBookAir4,1 (11-inch Mid 2011)
MacBookAir3,2 (13-inch Late 2010)
MacBookAir3,1 (11-inch Late 2010)
MacBookAir2,1 (13-inch Mid 2009)

820-3330

Is it compatible with 820-3330?

Smc reader

is possible we can use this software to read the smc from good motherboard as a backup file

Less of an issue, more of a request

Hi,
Is it possible to add Mac Mini smc's to the program?
I have a 2014 mac mini with what happens to be a faulty smc, in fact i would like to ensure that it is indeed the smc the cause before starting a CPU swap.
I have a lot of Macbook boards but no mac mini. You see where i'm going....
The board is 820-5509-A and since the mini is a more uncommon thing to repair i thought that it would be nice to have it in the tool.
I'm a rookie when it's about programming but i can do some things, let me know if you need something, i will TRY to do some research.
Kind regards

Usage issue

I just want to clarify that I have used EFI Shell a lot, including while building many hackintoshes and editing BIOS settings. For whatever reason I cannot get SMCTool to properly load. I get the EFI block list, and then the usual 'press ESC in' dialog. I then wait until that passes and am met with Shell> without any of the SMCTool dialog that comes up in your video of it being used.

I can then type a command like '820-3476.nsh' and it just gives me the error '820-3476.nsh is not recognized as an internal or external command'.

It's like it is loading the EFI shell included within SMCTOOL, without actually loading smctool.

I have tried manually copying the files to the usb stick in macos and windows. I've tried flashing it using an iso flasher in macos, and also in Rufus. I have also tried exFAT, HFS+ and FAT. I am using a 64gb usb2 stick and it is formatted for GPT.

Any idea what's going wrong?

SMC tool a1398

1FAE6453-0DA6-4A45-B54B-980A55D601D6
Hallo , sir
After programming 820-00138-A using smc tool smc power management problem shows. A system that has no problems .

Need compatibility with a new Model

I need this Tool for my MacBook Pro 9,1 please.

Model: A1286
EMC: 2556
Board ID: Mac-4B7AC7E43945597E
Board Model: 820 – 3330
GPU: NVIDIA GeForce GT 650M and Intel HD Graphics 4000

Thank You.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.