Go to file
2016-05-06 13:37:24 +10:00
docs Start adding some documentation 2016-04-29 20:32:31 +10:00
mec-tools@5e30f2bf7d Add x230 image and infrastructure 2016-04-19 19:39:23 +10:00
radare Update some function definitions using the better ARCompact analysis 2016-05-06 13:37:24 +10:00
t430.G1HT35WW.img.d Add patches for t430 2016-04-24 15:29:59 +10:00
t430s.G7HT39WW.img.d Replicate the x230 keyboard patches on the t430s 2016-04-23 13:37:37 +10:00
w530.G4HT39WW.img.d Add keyboard patches for w530 2016-04-25 00:44:48 +10:00
x230.G2HT35WW.img.d Add two more patches, and a way to get a pre-patched bin, ready to hack on 2016-04-22 17:13:50 +10:00
x230t.GCHT25WW.img.d Realise I had been blind and that zmatt had published his full patch - quickly add this to the repo for future examination 2016-04-30 10:34:46 +10:00
.gitignore Add a bootable ISO image target for x230 2016-04-27 00:43:48 +10:00
.gitmodules Add x230 image and infrastructure 2016-04-19 19:39:23 +10:00
8duj27us.iso.orig.sha1 Use the same orig tail filename everywhere 2016-04-19 20:52:09 +10:00
autoexec.bat.template Add a warning and some details to the auto flash batch file 2016-04-27 11:28:21 +10:00
g1uj38us.iso.orig.desc Add t430 bootable ISO 2016-04-27 12:57:53 +10:00
g1uj38us.iso.orig.sha1 Add t430 downloader and extractor 2016-04-24 13:19:17 +10:00
g2uj23us.iso.orig.desc FIX: forgot to add description file 2016-04-27 11:43:01 +10:00
g2uj23us.iso.orig.sha1 Use the same orig tail filename everywhere 2016-04-19 20:52:09 +10:00
g4uj30us.iso.orig.desc Add t530 support - this appears to share the EC firmware with the w530 2016-04-27 18:44:21 +10:00
g4uj30us.iso.orig.sha1 Add t530 support - this appears to share the EC firmware with the w530 2016-04-27 18:44:21 +10:00
g5uj28us.iso.orig.desc Add w530 ISO output 2016-04-27 12:47:42 +10:00
g5uj28us.iso.orig.sha1 Add image extractor for w530 2016-04-25 00:27:13 +10:00
g7uj18us.iso.orig.desc Add t430s bootable ISO 2016-04-27 13:06:19 +10:00
g7uj18us.iso.orig.sha1 Add details for downloading the t430s firmware 2016-04-23 11:52:10 +10:00
gcuj24us.iso.orig.desc Add x230t support 2016-04-27 18:10:49 +10:00
gcuj24us.iso.orig.sha1 Add image extractor for x230t 2016-04-24 23:57:04 +10:00
hexpatch.pl Add License details 2016-04-23 14:02:28 +10:00
LICENSE Add License details 2016-04-23 14:02:28 +10:00
Makefile Add a radare project for the x260 2016-04-29 20:36:28 +10:00
n10ur10w.iso.orig.sha1 Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
r02uj46d.iso.orig.sha1 Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
README Update readme and descriptive make targets - again, hopefully making them simpler 2016-04-27 11:43:31 +10:00
slice.extract Enable generation of FL2 files - unfortunately, needs a custom rule for each output - just x230 for now 2016-04-24 17:42:31 +10:00
slice.insert Enable generation of FL2 files - unfortunately, needs a custom rule for each output - just x230 for now 2016-04-24 17:42:31 +10:00
t430.G1HT35WW.img.enc.slice Add t430 bootable ISO 2016-04-27 12:57:53 +10:00
t430.G1HT35WW.img.orig.sha1 Add t430 downloader and extractor 2016-04-24 13:19:17 +10:00
t430.G1HT35WW.s01D2000.FL2.slice Add t430 bootable ISO 2016-04-27 12:57:53 +10:00
t430s.G7HT39WW.img.enc.slice Add t430s bootable ISO 2016-04-27 13:06:19 +10:00
t430s.G7HT39WW.img.orig.sha1 Add details for downloading the t430s firmware 2016-04-23 11:52:10 +10:00
t430s.G7HT39WW.s01D8000.FL2.slice Add t430s bootable ISO 2016-04-27 13:06:19 +10:00
t530.G4HT39WW.img.d Add t530 support - this appears to share the EC firmware with the w530 2016-04-27 18:44:21 +10:00
t530.G4HT39WW.img.enc.slice Add t530 support - this appears to share the EC firmware with the w530 2016-04-27 18:44:21 +10:00
t530.G4HT39WW.img.orig.sha1 Add t530 support - this appears to share the EC firmware with the w530 2016-04-27 18:44:21 +10:00
t530.G4HT39WW.s01D5100.FL2.slice Add t530 support - this appears to share the EC firmware with the w530 2016-04-27 18:44:21 +10:00
w530.G4HT39WW.img.enc.slice Add image extractor for w530 2016-04-25 00:27:13 +10:00
w530.G4HT39WW.img.orig.sha1 Add image extractor for w530 2016-04-25 00:27:13 +10:00
w530.G4HT39WW.s01D5200.FL2.slice Add image extractor for w530 2016-04-25 00:27:13 +10:00
x220.8DHT34WW.img.enc.orig.sha1 Update slice definition for x220 reference code as it was incorrect 2016-04-24 16:00:14 +10:00
x220.8DHT34WW.img.enc.slice Start extracting the FL2 files, and use that as the basis for extracting the firmware. This will allow us to update or diff against the FL2 file 2016-04-24 17:26:31 +10:00
x220.8DHT34WW.s01CB000.FL2.orig.sha1 Start extracting the FL2 files, and use that as the basis for extracting the firmware. This will allow us to update or diff against the FL2 file 2016-04-24 17:26:31 +10:00
x220.8DHT34WW.s01CB000.FL2.slice Start extracting the FL2 files, and use that as the basis for extracting the firmware. This will allow us to update or diff against the FL2 file 2016-04-24 17:26:31 +10:00
x230.G2HT35WW.img.enc.slice Start extracting the FL2 files, and use that as the basis for extracting the firmware. This will allow us to update or diff against the FL2 file 2016-04-24 17:26:31 +10:00
x230.G2HT35WW.img.orig.sha1 Ensure we have an original file left around to diff against later 2016-04-19 19:54:56 +10:00
x230.G2HT35WW.s01D3000.FL2.orig.sha1 Start extracting the FL2 files, and use that as the basis for extracting the firmware. This will allow us to update or diff against the FL2 file 2016-04-24 17:26:31 +10:00
x230.G2HT35WW.s01D3000.FL2.slice Start extracting the FL2 files, and use that as the basis for extracting the firmware. This will allow us to update or diff against the FL2 file 2016-04-24 17:26:31 +10:00
x230t.GCHT25WW.img.enc.slice Add image extractor for x230t 2016-04-24 23:57:04 +10:00
x230t.GCHT25WW.img.orig.sha1 Add x230t support 2016-04-27 18:10:49 +10:00
x230t.GCHT25WW.s01DA000.FL2.slice BUG: x230t FL2 slice was wrong 2016-04-27 10:59:10 +10:00
x250.N10HT17W.img.enc.slice Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
x250.N10HT17W.s01E5000.FL2.orig.sha1 Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
x250.N10HT17W.s01E5000.FL2.slice Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
x260.R02HT29W.img.slice Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
x260.R02HT29W.s0AR0200.FL2.orig.sha1 Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
x260.R02HT29W.s0AR0200.FL2.slice Have a quick look at the x250 and x260 firmware, it looks like they are both ARC cpus with a similar layout. They both have different checksumming than the xx30 range and the x260 looks like it is not even encrypted (however there is a strange 256byte block at the top of the file - perhaps a signature) 2016-04-24 19:08:34 +10:00
xx30.encrypt Add License details 2016-04-23 14:02:28 +10:00

The main purpose of this software is to patch the EC on xx30 series thinkpads
to make the classic 7-row keyboards work.

With the patches included here, you can install the classic keyboard
hardware on many xx30 series laptops and make almost every key work properly.
The only keys that are not working are Fn+F3 (Battery) and Fn+F12 (Hibernate)

A full writeup of the hardware modifications needed can be found at:
    http://www.thinkwiki.org/wiki/Install_Classic_Keyboard_on_xx30_Series_ThinkPads

Quick Start:
------------

    There are separate make target commands for each different laptop,
    this command will produce a list of them:

        make list_iso

    To fetch the ISO image, patch it and create a new bootable ISO image:

        make g2uj23us.iso
        # This example will produce a patched x230 image

Other uses:
-----------

This repository also contains number of tools and utilities for examining
and modifying Thinkpad Embedded Controller firmware.

Including:
*   radare projects with partial disassembly of several thinkpads EC firmware
*   scripts for downloading the ISO image and extracting the firmware
*   script for patching the firmware
*   documentation on the tables found in the firmware (TODO)

Slightly slower Start:
----------------------

If you expect to do development work, the following two make targets
are probably useful:

    To list the available raw image files and FL2 files:

        make list_iso

    To fetch the firmware from Lenovo, extract, decrypt and patch
    it, ready for more patching:

        make x230.G2HT35WW.img

    To create a new FL2, ready for flashing:

        make x230.G2HT35WW.s01D3000.FL2

    To update your firmware, copy the FL2 file generated above and
    the dosflash.exe utility to a DOS boot disk and then use a command
    similar to:

        dosflash /sd /ipf ec /file s01D3000.FL2

References:
-----------
    http://forum.thinkpads.com/viewtopic.php?f=69&t=120776
    http://www.zmatt.net/unlocking-my-lenovo-laptop-part-3/
    http://plan9.stanleylieber.com/hardware/thinkpad/x230/x230.schematics.pdf