1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
import argparse
HEADER_OFFSET = 0x200
COOKIE = 0x17C3A6B4
def check_pi_img(pi_img):
cookie_count = 0
with open(pi_img, "rb") as f:
f.seek(HEADER_OFFSET)
while True:
data = f.read(4)
if not data:
break
value = int.from_bytes(data, byteorder="little", signed=False)
if value == COOKIE:
cookie_count += 1
if cookie_count != 2:
raise ValueError("Invalid PI_IMG {} (expected 2 cookies; found {})"
.format(pi_img, cookie_count))
def main():
parser = argparse.ArgumentParser()
parser.add_argument("pi_img")
args = parser.parse_args()
check_pi_img(args.pi_img)
if __name__ == '__main__':
main()
|