Skip to content

Commit

Permalink
Add script for obtaining T440p me.bin blob
Browse files Browse the repository at this point in the history
I performed an analysis of the differences between an me.bin blob I
extracted from my T440p and the me.bin blob from Lenovo's website:
#1282 (comment).
  • Loading branch information
rbreslow committed Jan 24, 2023
1 parent 7a29db1 commit ed8c74e
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions blobs/t440p/download-clean-me
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash

set -e

function usage() {
echo -n \
"Usage: $(basename "$0")
Download Intel ME firmware from Lenovo, neutralize, and shrink.
"
}

ME_BIN_HASH="b7cf4c0cf514bbf279d9fddb12c34fca5c1c23e94b000c26275369b924ab9c25"

if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
if [[ "${1:-}" == "--help" ]]; then
usage
else
BLOB_DIR="$(cd "$(dirname "$0")" && pwd)"
COREBOOT_DIR="$(find "${BLOB_DIR}/../../build/x86/" -maxdepth 1 -type d -name 'coreboot-*')"

pushd "$(mktemp -d)"

curl -O https://download.lenovo.com/pccbbs/mobiles/glrg22ww.exe
innoextract glrg22ww.exe

mv app/ME9.1_5M_Production.bin "${COREBOOT_DIR}/util/me_cleaner"

popd

pushd "${COREBOOT_DIR}/util/me_cleaner"

# Neutralize and shrink Intel ME. Note that this doesn't include
# --soft-disable to set the "ME Disable" or "ME Disable B" (e.g., High
# Assurance Program) bits, as they are defined within the Flash
# Descriptor.
# https://github.com/corna/me_cleaner/wiki/External-flashing#neutralize-and-shrink-intel-me-useful-only-for-coreboot
python me_cleaner.py -r -t -O me_shrinked.bin ME9.1_5M_Production.bin

mv me_shrinked.bin "${BLOB_DIR}/me.bin"
rm ./*.bin

popd

if ! echo "${ME_BIN_HASH} ${BLOB_DIR}/me.bin" | sha256sum --check; then
echo "SHA256 checksum for me.bin doesn't match."
exit 1
fi
fi
fi

0 comments on commit ed8c74e

Please sign in to comment.