2021-02-09 12:22:29 +02:00
|
|
|
#!/usr/bin/python
|
|
|
|
|
from zlib import crc32
|
|
|
|
|
from ubi.defines import *
|
|
|
|
|
|
2021-04-14 00:13:51 +04:30
|
|
|
|
2021-02-09 12:22:29 +02:00
|
|
|
def ec_hdr(ec_hdr, buf):
|
|
|
|
|
if ec_hdr.hdr_crc != ~crc32(buf[:-4]) & 4294967295L:
|
|
|
|
|
ec_hdr.errors.append('crc')
|
|
|
|
|
return ec_hdr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def vid_hdr(vid_hdr, buf):
|
|
|
|
|
vid_hdr.errors = []
|
|
|
|
|
if vid_hdr.hdr_crc != ~crc32(buf[:-4]) & 4294967295L:
|
|
|
|
|
vid_hdr.errors.append('crc')
|
|
|
|
|
return vid_hdr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def vtbl_rec(vtbl_rec, buf):
|
|
|
|
|
likely_vtbl = True
|
|
|
|
|
if vtbl_rec.name_len != len(vtbl_rec.name.strip('\x00')):
|
|
|
|
|
likely_vtbl = False
|
|
|
|
|
elif vtbl_rec.vol_type not in (1, 2):
|
|
|
|
|
likely_vtbl = False
|
|
|
|
|
if vtbl_rec.crc != ~crc32(buf[:-4]) & 4294967295L:
|
|
|
|
|
vtbl_rec.errors.append('crc')
|
|
|
|
|
if not likely_vtbl:
|
|
|
|
|
vtbl_rec.errors = ['False']
|
2021-04-14 00:13:51 +04:30
|
|
|
return vtbl_rec
|