Commit graph

34 commits

Author SHA1 Message Date
Nicola Corna
250b2ec123 Add safety margin on truncation
It seems that Intel ME requires some data after the last valid byte, as
truncating the image just after the last byte does not work.
For now this "safety margin" has been set to 4 blocks (16 kB).
2017-02-17 13:50:40 +01:00
Nicola Corna
2987431acd Increase minimum FTPR offset to 0x400 2017-02-07 09:44:45 +01:00
Nicola Corna
3ef0b5570d Add --descriptor 2017-02-05 15:46:26 +01:00
Nicola Corna
ab4e5839aa Fix LUT offset bug 2017-02-04 23:25:35 +01:00
Nicola Corna
1eeaf64993 Remove ME/TXE R/W access to the other flash regions 2017-02-04 12:53:54 +01:00
Nicola Corna
eb1e295cb0 Minor bug fix 2017-02-04 10:17:29 +01:00
Nicola Corna
d0b4accc00 Add an option to specify an output file 2017-02-03 16:50:26 +01:00
Nicola Corna
eb71d6e107 Move the FTPR partition to the minimum offset 2017-02-03 16:50:25 +01:00
Nicola Corna
153da5d869 Add region checks on modules removal and relocation
Now me_cleaner can be run on an already modified and truncated image,
the parts outside the ME region will be ignored.
2017-02-03 08:33:39 +01:00
Nicola Corna
fbc123e28a Adjust checksum in ME11+
On ME11+, TXE3+ and SPS4+ the FPT checksum is computed on bytes
0x10:0x30.
2017-02-03 08:26:17 +01:00
Nicola Corna
b6e58f41f3 Add region checks
Each write has been replaced with a write_to, which checks that the
final write location is inside the ME region before writing.
2017-02-03 08:26:16 +01:00
Nicola Corna
38fd19b9af Add command line arguments 2017-01-29 11:50:50 +01:00
Nicola Corna
a1df173eab Print the image minimum size
If most of the FTPR modules are removed the image can be truncated
after the last unremovable module.
2017-01-28 23:48:41 +01:00
Nicola Corna
61f85bad19 Relocate FTPR to the top of the ME region 2017-01-28 23:44:33 +01:00
Nicola Corna
7f21d97483 Fix signature checking in ME11 and later 2017-01-26 19:34:41 +01:00
Nicola Corna
e7d9fef28d Minor fix for ME6 Ignition images 2017-01-26 15:53:47 +01:00
Nicola Corna
e3741708c4 Clean license header 2017-01-24 14:27:32 +01:00
Nicola Corna
360927f87f Add FTPR signature verification 2017-01-22 16:19:56 +01:00
Nicola Corna
f4fc8d8e1a Add support for TXE images 2017-01-22 16:19:52 +01:00
Nicola Corna
f99109eb43 Remove optional from_what argument in f.seek 2017-01-19 10:52:05 +01:00
Nicola Corna
139e838f20 Fix ME version 2017-01-19 10:44:29 +01:00
Nicola Corna
42ba8e84ab Find and remove the fragmented Huffman chunks
Previously the Huffman modules were removed by wiping all the data between
the first and the last chunk. Unfortunately the modules are often
fragmented: the chunks are not in a linear order, sometimes repeated and
sometimes shared between different modules.

This commit removes each chunk individually, after checking it's not used
by a fundamental module.
2017-01-17 11:33:18 +01:00
Nicola Corna
236faf7da9 Move checksum correction after EFFS flag removal 2017-01-04 10:52:18 +01:00
Nicola Corna
b149111c78 Make it compatible with Python 2 2017-01-04 10:50:15 +01:00
Nicola Corna
9e42ae0779 Remove whitelisted Huffman modules
Probably only BUP and ROMB (if present) are required to start the machine
but a whitelist is safer.
2017-01-04 10:50:14 +01:00
Nicola Corna
44982adff4 Add Huffman informations 2016-12-31 13:46:56 +01:00
Nicola Corna
ffe60d8f72 Style fix 2016-12-16 16:04:03 +01:00
Nicola Corna
b11264123a Detect full images and adjust the offsets accordingly 2016-12-15 15:51:25 +01:00
Damien Zammit
7fdade199a Fix bug with fill_range() where exact size results
in only a single byte being written.

Signed-off-by: Damien Zammit <damien@zamaudio.com>
2016-12-08 13:31:16 +11:00
Nicola Corna
8f663e7289 Wipe LZMA region completely 2016-12-02 18:31:36 +01:00
Nicola Corna
c5be9c2ee4 Add v11 check 2016-12-02 16:49:08 +01:00
Nicola Corna
48deb6cb3b Remove LZMA modules 2016-12-01 10:10:32 +01:00
Nicola Corna
b31012373c Remove EFFS presence flag 2016-11-28 23:04:57 +01:00
Nicola Corna
0bf14b8e0e Initial commit 2016-11-14 13:32:12 +01:00