https://github.com/platform-system-interface/intel_fw
Modern Intel Firmware Tool and Library
https://github.com/platform-system-interface/intel_fw
analysis csme firmware intel me rust
Last synced: 5 months ago
JSON representation
Modern Intel Firmware Tool and Library
- Host: GitHub
- URL: https://github.com/platform-system-interface/intel_fw
- Owner: platform-system-interface
- License: gpl-3.0
- Created: 2025-10-06T13:09:44.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-10-06T13:17:15.000Z (7 months ago)
- Last Synced: 2025-10-06T15:17:28.302Z (7 months ago)
- Topics: analysis, csme, firmware, intel, me, rust
- Language: Rust
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Modern Intel Firmware Tool ✨
This is a new utility to analyze and edit firmware images for [Intel platforms](
docs/platforms.md).
Based on [knowledge](docs/knowledge.md) from other projects, such as
`me_cleaner`, coreboot's `ifdtool`, ME Analyzer and related research,
`intel_fw` is written from scratch in Rust, allowing for integration with other
projects, including a flexible API.
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.
## Development
To run the CLI via `cargo` directly, remember to add arguments after an extra
`--`; i.e., to print the general help, invoke `cargo run --relase -- -h`, or,
for a subcommand, e.g. `cargo run --relase -- me clean -h`.
This tool uses the [`clap` command line argument parser in _derive_ mode](https://docs.rs/clap/latest/clap/_derive/index.html).
To familiarize yourself with Rust and common approaches to CLI tools, take a
look at the [Rust CLI book](https://rust-cli.github.io/book/index.html).
For more understanding, see also any of these additional resources:
-
-
-
-
## Milestones
- [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
- 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
- [ ] step 2: full parity with `me_cleaner`
- [ ] expand the documentation with a higher-level on Intel platform boot flows
- [ ] document how the Intel data structures work, in prose
- [ ] document how to add support for more platforms and variants
- [ ] work out a reusable library, i.e., a Rust crate for
- [ ] sync up; has another patch that
coreboot is missing, doing rework and adding ME Gen 1 support