diff --git a/README.md b/README.md index 0e7243d..c51bc81 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,19 @@ The [architecture and design](docs/architecture.md) is based on experience. To test this tool, you will need sample [firmware images](docs/images.md). For convenience, take a look at the [scripts](scripts/) used for development. +## Commands + +### `me` + +The `me` command lets you print, edit and check the (CS)ME firmware. +The `me clean` command is compatible with `me_cleaner`, with minor differences: + +- The `--whitelist` and `--blacklist` flags do not cause deletion of partitions + when multiple partitions refer to the same range, but at least one of them is + to be retained. This is considered a bug fix. +- The `--check` flag checks _all_ directory partitions as well as the presence + of the FTPR. Analysis details are printed unconditionally. + ## Development To run the CLI via `cargo` directly, remember to add arguments after an extra @@ -35,13 +48,13 @@ For more understanding, see also any of these additional resources: - [x] bootstrap a new, general CLI, `intel_fw`, with an `me` subcommand - mimic the `me_cleaner` CLI, using similar+same arguments and switches for compatibility -- [ ] port the logic to Rust, using `me_cleaner`-edited images as test fixtures +- [x] port the logic to Rust, using `me_cleaner`-edited images as test fixtures - NOTE: committing the test fixtures would be big and a potential license issue; instead, add notes on how to reproduce them, via public vendor images and extraction utilities (e.g. from Lenovo) - [x] step 1: port core logic to produce the same output as `me_cleaner` for Lenovo ThinkPad X230 + X270 - - [x] step 2: full parity with `me_cleaner` + - [x] step 2: full feature parity with `me_cleaner` - [ ] expand the documentation - [ ] higher-level view on Intel platform boot flows - [ ] how the Intel data structures work, in prose