Works for macOS Sierra and High Sierra (Improved version)
Taken from StackExchange
Thanks to LangLangC
For temperature and other improvements see https://gist.github.com/cdleon/d16e7743e6f056fedbebc329333d79df
This method leaves brightness control enabled
Shutdown, unplug everything except power and hold
leftShift + Ctrl + Option + Power
I holded for 5 seconds, but holding just for an instant should work
Reset NVRAM: Power up and hold
Command + Option + p + r
Until you hear the startup chime two times.
Power up and boot into Single User Recovery by holding
if you are on high sierra 10.13.6+ you might need to use
Command + rinstead
Command + r + s
Disable SIP (This takes a bit to complete so wait for it)
Disable Discrete GPU on boot by running
Enable verbose boot mode (This will show text everytime you boot up, shutdown or restart your mac)
Boot into Single User-mode by holding
Command + s
It might look as if it hanged, but press enter and you should see the shell (root#)
Mount root partition writeable
/sbin/mount -uw /
Make a kext-backup directory
mkdir -p /System/Library/Extensions-off
Move ONLY ONE offending kext out of the way
mv /System/Library/Extensions/AMDRadeonX3000.kext /System/Library/Extensions-off/
Inform the system to update its kextcache:
It will show a bunch of text in the screen (don't be alarmed, let it finish) and then it will restart again In second restart it will show text in the screen again and then it will show normal login screen Your computer now should work properly (dGPU off and iGPU on, shown as i in gfxCardStatus
BIG CAVEAT FOR APPLE UPDATES
If an update that contains changes to the AMD drivers is about to take place it is advisable to move back the AMDRadeonX3000.kext to its default location before the update process. Otherwise the updater writes at least another kext of a different version to its default location or at worst you end up with an undefined state of partially non-matching drivers.
After any system update the folder /System/Library/Extensions has to be checked for the offending kext. Its presence there will lead to e.g. a boot hang on Yosemite and Sierra, an overheating boot-loop in High Sierra.
Alright so I've got MBP 2011 15". The original HDD has died on me and now using a b/new SSD, installed a new battery as well.
On boot up i'm getting a screen with a question mark in a folder. Tried the internet recovery method, bar progresses to 100% then just a white blank screen. Seems like I can reset SMC but not NVRAM. Any help on what I can do?