I was successfully able to apply me_cleaner on my Asus Maximus VIII Hero Alpha motherboard with an i7-6700k, though with some difficulty. I will walk you through the steps I followed to successfully remove the ME from my motherboard.
Do this at your own risk. You will void your warranty, you may brick or otherwise break your PC. Your computer is your responsibility, not mine.
Read the wiki before attempting.
You may wish to check issue #3, 'me_cleaner status' and search for your motherboard/laptop details to see if anyone else has reported success/failure with the same hardware as you.
me_cleanerwith no options will delete the ME
me_cleaner -swill set the HAP bit only
me_cleaner -Swill delete the ME and set the HAP bit
- The BIOS can be extracted directly from the chip with
- A 'clean' version of the BIOS can be sourced from Asus' website
me_cleaner -Sresulted in my PC failing to POST regardless of the BIOS source
me_cleaner(no options) worked on Asus' image, but not my extracted image
me_cleaner -sworked on my extracted image, but not on Asus' image
me_cleaner(no options) on the official image
me_cleaner -son my extracted image
- Use UEFITool to merge the two
Section 1: setting everything up
Connect BIOS chip
Remove the chip from the motherboad; be careful, it's easy to accidentally bend the pins!
I believe that all BIOS chips have the same pin layout, but it might be a good idea to find the datasheet for your specific chip (check the name written on it) to be sure. I found the datasheet for my Winbond 25Q128FV1Q, which showed the following layout.
Plug the chip into a breadboard and connect to the following GPIO pins on your Raspberry Pi. You may find pinout.xyz useful to check which pin is which.
|Chip num||Chip name||GPIO name||Pin num|
|1||CS||GPIO 8 (SPIO CE0)||24|
|2||DO (Data Out)||GPIO 9 (SPIO MISO)||21|
|5||DI (Data In)||GPIO 10 (SPIO MOSI)||19|
|6||CLK||GPIO 11 (SPIO SCLK)||23|
Use 3.3V for VCC! 5V will damage the chip.
You will notice that 3 pins need to be connected to VCC; WP and HOLD are 'pulled up'. You will need to use the connections on your breadboard to achieve this.
MISO and MOSI correspond to Master In Slave Out and vice versa, if you were wondering.
Enable SPIO in your Raspberry Pi
SPIO interfacing seems to be turned off by default! Make sure you turn it on. You can follow this useful guide to find out how.
Interface with the chips
Make sure you have
flashrom installed. Use the following command to test if your chip
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000
flashrom and use
-p to specify the programmer we want to use is
linux_spi. We then specify the SPI device we want to interface with, and the speed we
want to use.
I had no idea what speed to use and couldn't find concrete guidance online. I found that 8000 worked consistently, so I stuck with that.
You can add on
-V for verbose output if you like.
Troubleshooting: No EEPROM/flash device found
If you get
No EEPROM/flash device found it means that flashrom has been unable to find
your chip, which means something is not connected somewhere. You may need to spend a
while testing different things to find out what's wrong.
- You have all the pins connected
- You are using 3.3V not 5V
- You have the chip the right way around
- You have WP and HOLD pulled up
- You have SPI enabled
- Switching CS (chip #1) from SPIO CE0 (Pi 24) to SPIO CE1 (Pi 26)
- Different values in
- Using a different Raspberry Pi (I was close to giving up before I tried a different Pi, and it worked straight away; maybe something was damaged somewhere)
Section 2: removing the ME
These steps are a recount of what worked for me. Different motherboards may vary in how they behave or respond, so your mileage may vary. Make sure you understand at least the basics of what you are doing so that you can adapt it to your needs. You may find you need only do one or the other.
In order to get the 'full' application of me_cleaner I needed to merge two BIOS files,
as using the
-S option resulted in a BIOS that wouldn't POST for me.
Extract the BIOS from the chip
Assuming that you've been able to successfully interface with your chip using
flashrom, you can continue.
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000 -r extracted.bin to extract
the BIOS from the chip into a file named
Back this file up. This is your recovery file if your modified image doesn't work or bricks your motherboard.
Get Asus' BIOS image
Download the BIOS file from Asus' website. Unzipping it will yield a .CAP file, which is some proprietary format that's not useful. You'll need to use UEFITool to extract the image.
Open the .CAP file in UEFITool, right click on 'AMI Aptio capsule' and choose 'Extract
body...'. Save this somewhere, I called my file
Make sure you've read How to apply me_cleaner on the me_cleaner wiki, so that you know what you're doing.
You should probably try various combinations of approaches to see what works for you. Here's what worked for me.
Set the HAP bit on the extracted image:
python me_cleaner.py -s -O hap.extracted.bin extracted.bin
Delete the ME in the source image:
python me_cleaner.py -O removed.source.bin source.bin
removed.source.bin in UEFITool, expand to find 'ME region', use
Extract as is... and save somewhere, e.g.
hap.extracted.bin in UEFITool, expand to find 'ME region' again, and use
Replace as is.... Select your
Use File > Save image file... to save the image out as
merged.extracted.bin. This is
the file that I flashed back to my chip
Verify that the ME is removed from the image by following the relevant steps in the wiki guide Get the status of Intel ME.
Flash your final image back to the chip
Up until this point you haven't modified anything on your motherboard, so no damage done. This is the part where you can brick your motherboard! Make sure you understand the risk and accept what you're doing.
Make sure you have your original extracted.bin. If things go wrong, you can just flash it back with the same command.
Flash the modified image with the command
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=8000 -w merged.extracted.bin
This may take a little while, do not unplug the chip. Just let it do it's thing. Some people online report that it may take up to quarter of an hour. It took about 2-3 minutes for me.
Plug it back into your motherboard and test
Plug the chip back into your motherboard, power on your PC, and follow check the status of the ME from within your OS. The wiki is your friend again: Get the status of Intel ME.
I found that the first time I booted with the modified BIOS, the machine just hung and did nothing. Holding the power button to force it off solved it for the second boot, and everything has been fine since.
If all has gone well, your PC should work normally, and the management engine should be
gone! If not, you can flash back your original
extracted.bin which should return your
BIOS back to how it was. There are a lot of useful issues in the me_cleaner repository
which may be able to help you out, if you take the time to read them.
If something went really really wrong you can purchase a replacement chip (assuming you're using a motherboard with a removable chip like in this guide).