mirror of
https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_RTL8710BX_ALIOS_SDK.git
synced 2026-08-28 17:21:31 +00:00
rel_1.6.0 init
This commit is contained in:
commit
27b3e2883d
19359 changed files with 8093121 additions and 0 deletions
84
tools/scripts/ota_gen_md5_bin.py
Normal file
84
tools/scripts/ota_gen_md5_bin.py
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
#! /usr/bin/env python
|
||||
|
||||
import os, sys, re, struct, platform, getopt, subprocess
|
||||
from sys import platform as _platform
|
||||
import array,hashlib,struct
|
||||
|
||||
|
||||
def crc16A(dat):
|
||||
crc=0xFFFF #65535
|
||||
index=0
|
||||
for j in dat:
|
||||
crc=crc^j
|
||||
print("crc=%x"%crc)
|
||||
for i in range(8):
|
||||
if (crc & 1)==1:
|
||||
crc =crc >> 1
|
||||
crc =crc ^ 0xA001 #40961
|
||||
else:
|
||||
crc=crc>>1
|
||||
return crc
|
||||
|
||||
def print_usage():
|
||||
print ""
|
||||
print "Usage: Merge a bin file into an exist bin file, create one if target is not exist"
|
||||
print sys.argv[0]
|
||||
print "Optional Usage:"
|
||||
print " [-o] <target binary file>"
|
||||
print " [-h | --help] Display usage"
|
||||
print " [<input binary file>]"
|
||||
sys.stdout.flush()
|
||||
|
||||
def main():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'o:h')
|
||||
except getopt.GetoptError as err:
|
||||
print str(err)
|
||||
print_usage()
|
||||
sys.exit(2)
|
||||
|
||||
OUTPUT_FILE = 0
|
||||
if not len(args) == 1:
|
||||
print_usage()
|
||||
sys.exit(2)
|
||||
else:
|
||||
INPUT_FILE = args[0]
|
||||
|
||||
if not os.path.exists(INPUT_FILE):
|
||||
print "Please input a binary file"
|
||||
sys.exit(2)
|
||||
|
||||
for opt, arg in opts:
|
||||
if opt == "-o":
|
||||
OUTPUT_FILE = arg
|
||||
elif opt == "-h":
|
||||
print_usage()
|
||||
sys.exit()
|
||||
|
||||
if OUTPUT_FILE == 0:
|
||||
OUTPUT_FILE = re.sub(r'.bin$', '.md5.bin', INPUT_FILE)
|
||||
|
||||
fin = open(INPUT_FILE, 'rb')
|
||||
fout = open(OUTPUT_FILE, 'wb')
|
||||
data = fin.read()
|
||||
fout.write(data)
|
||||
magic = bytearray([0xef,0xef,0xef,0xef])
|
||||
size = os.path.getsize(INPUT_FILE)
|
||||
print size
|
||||
fout.write(magic)
|
||||
fout.write(struct.pack('<I', size))
|
||||
fout.write(hashlib.md5(data).digest())
|
||||
print(hashlib.md5(data).hexdigest())
|
||||
reserve = bytearray([0xFF,0xFF])
|
||||
fout.write(reserve)
|
||||
fout.write(reserve)
|
||||
fin.close()
|
||||
fout.close()
|
||||
os.remove(INPUT_FILE)
|
||||
os.rename(OUTPUT_FILE,INPUT_FILE)
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
Loading…
Add table
Add a link
Reference in a new issue