[Tool] IME Firmware Tool v1.1 (Open Source)

Hello all i would like to present to you IME Firmware Tool.

IME Firmware Tool is a program that allow you to check for new firmware updates for your IME and also flash your IME with any file you choose.

Supports 7x, 8x, 9x, & 10x Firmware version.
More support may be added later.

ChangeLog↓
• Added support for 7x, 9.5x, and 9.6x firmware.
• Automatically figures out your firmware type 1.5MB or 5MB and displays it to you on the ‘Firmware Update Checking’ tab.
• Code optimization.
• More secure flashing procedure, cannot use a non-ME firmware it will alert you on non proper file.


You can download it from my website http://www.glitchyhack.x10.mx/index.php?..-firmware-tool/
Open Source Link: https://github.com/GlitchyHack/IME-Firmware-Tool

The GUI:

Screenshot_1.png

Alright, I don’t have time for extensive testing at the moment and not until the basic functionality is working. I have two 1.5MB systems (6-series, 7-series):

* At HM65 the firmware version & SKU is detected properly but it won’t accept the UPD binary for flashing.
* At Z77 v1.1 does not work at all by showing 1002 version and no SKU. I can see the error log thrown by MEInfo before it gets deleted. However, v1.0 is working properly and also flashed the firmware.

How does it detect the SKU type? I don’t trust this Check Server procedure. What information is it sending back to you exactly? Is it going to be close-source only?

Alright well first off there is bound to be issues at first release, so i am not surprised.
And i don’t know if i am going to make this open source, it’s C# based.

v1.1 i introduced the SKU auto detection, how it determines the SKU is by saving your current file and seeing the file size. anything equal less than 1.5MB is considered 1.5MB else is 5MB.
And the Check server procedure, i use to use Station Drivers as a server for a while but they have a 5 download in 24 hour limit, so i did a different method.
This does the same as my UEFI Download Tool does in it’s procedure checks server version then does math calculations to see if you have an update or not all of it’s safe, as it is designed so the user is aware what file they have when they are about to flash it.

I may make it open source if you would like to help with it and improve the functionality.

And also for some reason that error log is created even if there isn’t an error, and theres nothing inside it, that’s why i delete it, cause it’s nothing.

Use Edit to add content to your posts otherwise you keep bumping your own thread filling it with your posts.

The -save command is available after ME7 only so with that method it would mean that v6 will never be supported. Truthfully, the “proper” (but difficult) way to make such a tool is by queering the MEI driver which communicates with the actual ME and replies back. Example.

Station-Drivers is not reliable at all as they delete older versions and have download restrictions.

The error.log is thrown by MEInfo or FWUpdLcl when there is a problem. It’s empty because you are exporting it’s contents at another file which is parsed by the program and identifies the current firmware version. Basically if you input MEInfo > info.txt and there is an error it won’t be shown at error.log which is automatically made by the tool but at the info.txt file. My best guess is that you are trying to use the wrong version of MEInfo and thus it doesn’t work.

As far as info sent and based on how it’s built, the only info that should be sending back is the version (x.x.xx.xxxx), SKU type and nothing else. Any other info (Account name, windows version, motherboard model etc) are not required for such a program and are violating the user’s privacy.


Alright, and i do don’t do MEInfo > info.txt i just open MEInfo and readline of the output till i see FW version. It’s never directed torwards any files.
And this program does not look at any pc info besides ME.

MEInfo should not be making an error.log file unless it doesn’t like something. Probably, for 7-series, you accidentally assigned the wrong tool, that’s what I meant. Should be easily fixable.

To determine if the user entered a correct firmware, do you parse the actual .bin to determine the version? This can be done easily.

Also, there should be a downgrade option (under Preferences) as well. A separate option is needed for that because FWUpdLcl asks if you are sure to perform a downgrade. You can reply by Y/N. There is a command though to automatically reply Yes to such questions (FWUpdLcl -Y) so if the user selects the downgrade option you should alter the command sent to FWUpdLcl to accommodate that and not show the confirmation question to the user (more automation).

Reply when some early bugs are resolved and I’ll give it another try at my two systems. Looking good so far.


Alright and i do need some info on the things not working in v1.1 i need a copy of the firmware files saved with FWUpdLcl and the files you were trying to flash that it did not allow to work and i can see why it is not working.
Then i can move on and correct the other issues.

The images can be found at the ME topic.

6-series accept only UPD images (the ones created by FWUpdLcl -save command)
7-series and up accept both UPD & RGN (ME Regions) images


I will check them out whenever i have time to work on this project again, won’t be for a while because i have to redesign the new UEFI Download Tool.
Eventually everything will be fixed though, and i might redesign this app into WPF as well.

Hi,

I tried your tool on my Alienware 17. It worked great. Thanks.

This app doesn’t work for me - infinite firmware version calculating…

MSI Z77A-G43 rev. 1.1


I’m glad it is working good, this program is due for a remake in WPF as i did in my other program UEFI Download Tool, it will be prettier and some bugs will be fixed. But i do not know when i will start the remake of it as i am busy with other things.
But i am glad in it’s current state it is working for you.


I need some information on your ME Firmware Type and if you use 5MB or 1.5MB and if so a copy of your firmware you use to flash, a backup and a regular file that you would use to flash would be great to have, then i can see what is not going right with your setup.
But i am currently busy doing other things and i will remake this program in a Prettier GUI Design eventually, and when that point comes i will implement these fixes that will make it work for you.

I am sorry for the inconvenience, but as with all tools things will come up and not work sometimes.

I’m using:

* Intel ME8 Consumer 1.5MB Firmware v8.1.52.1496
For 7-series systems which come with ME firmware v8.x

Download is here: Intel Management Engine: Drivers, Firmware & System Tools

Sorry but I didn’t do any backup before flashing - I remember that my original firmware version was something like 8.0.xx.xxxx - it was quite old…


Well i have a friend that has a Z77 Extreme6 and it worked for him and he uses that firmware so i’m not sure what could be going on. Did you try running as admin cause this program needs admin for MEInfo to work correctly.
But in the future i plan to design that to make the main IME Firmware Tool process non-admin and just launch MEInfo as admin instead.

And also i meant backup as in backup your firmware now and send it to me, but since you are using 8.1x i would not need a backup as i have dealt with this firmware before.
So what do you think is going on?

Dunno what’s going on: http://i.imgur.com/VZ1pksX.jpg - infinite firmware type calculating…

Yes - I try to “Run as administrator” - no effect…


Well send me a MEinfo report of your system, it is probably something to do with how i string parse out the information.
Also a firmware type if determined by saving your firmware installed and seeing the size, so may be issue with that to i’m not sure.

I have excatly same problem, as caleb59.
My motherboard is Asus Maximus V Gene, Z77 chipset, ME8 1.5MB v8.1.52.1496.


Intel(R) MEInfo Version: 8.1.56.1541
Copyright(C) 2005 - 2014, Intel Corporation. All rights reserved.

Intel(R) ME code versions:

BIOS Version: 1903
MEBx Version: Not available
Gbe Version: 1.3
VendorID: 8086
PCH Version: 4
FW Version: 8.1.52.1496
UNS Version: Not Available
LMS Version: Not Available
MEI Driver Version: 8.1.0.1263
Wireless Hardware Version: Not Available
Wireless Driver Version: Not Available

FW Capabilities: 0x01101C40

Intel(R) Capability Licensing Service - PRESENT/ENABLED
Protect Audio Video Path - PRESENT/ENABLED
Intel(R) Dynamic Application Loader - PRESENT/ENABLED

CPU Upgrade State: Not Upgradable
Cryptography Support: Disabled
Last ME reset reason: Power up
Local FWUpdate: Enabled
BIOS Config Lock: Enabled
GbE Config Lock: Enabled
Host Read Access to ME: Enabled
Host Write Access to ME: Enabled
SPI Flash ID #1: 1C3117
SPI Flash ID VSCC #1: 20052005
SPI Flash BIOS VSCC: 20052005
BIOS boot State: Post Boot
OEM Id: 00000000-0000-0000-0000-000000000000
Capability Licensing Service: Enabled
Capability Licensing Service Status: Permit info not available
OEM Tag: 0x00000000
Localized Language: Unknown
Independent Firmware Recovery: Disabled

Intel(R) MEInfo Version: 8.1.56.1541
Copyright(C) 2005 - 2014, Intel Corporation. All rights reserved.

GBE Region does not exist.
Intel(R) ME code versions:

BIOS Version: V2.13
MEBx Version: 0.0.0.0000
Gbe Version: Unknown
VendorID: 8086
PCH Version: 4
FW Version: 8.1.52.1496
UNS Version: Not Available
LMS Version: Not Available
MEI Driver Version: 10.0.30.1054
Wireless Hardware Version: Not Available
Wireless Driver Version: Not Available

FW Capabilities: 0x01101C60

Intel(R) Anti-Theft Technology - PRESENT/ENABLED
Intel(R) Capability Licensing Service - PRESENT/ENABLED
Protect Audio Video Path - PRESENT/ENABLED
Intel(R) Dynamic Application Loader - PRESENT/ENABLED

CPU Upgrade State: Upgrade Capable
Cryptography Support: Disabled
Last ME reset reason: Power up
Local FWUpdate: Enabled
BIOS Config Lock: Enabled
Host Read Access to ME: Enabled
Host Write Access to ME: Enabled
SPI Flash ID #1: C22017
SPI Flash ID VSCC #1: 20052005
SPI Flash BIOS VSCC: 20052005
BIOS boot State: Post Boot
OEM Id: 00000000-0000-0000-0000-000000000000
Capability Licensing Service: Enabled
Capability Licensing Service Status: Permit info not available
OEM Tag: 0x00000000
Localized Language: Unknown
Independent Firmware Recovery: Disabled

This project has been made Open Source https://github.com/GlitchyHack/IME-Firmware-Tool