uenv.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:pyUBoot 作者: molejar 项目源码 文件源码
def parse(self, data, offset=0):
        """ Parse the u-boot environment variables from bytearray.
            :param data: The data in bytes array
            :param offset: The offset of input data
        """
        self._env = collections.OrderedDict()

        fmt = ">IB" if self._bigendian else "<IB"
        (read_crc, tmp) = struct.unpack_from(fmt, data, offset)

        if tmp == 0x01:
            self._redundant = True
            read_data = data[offset + 5:]
        else:
            self._redundant = False
            read_data = data[offset + 4:]

        calc_crc = binascii.crc32(read_data) & 0xffffffff

        if read_crc != calc_crc:
            raise ValueError("Wrong CRC")

        read_data = read_data.decode('utf-8')

        for s in read_data.split('\0'):
            if not s or s.startswith('\xFF') or s.startswith('\x00'):
                break
            key, value = s.split('=', 1)
            self._env[key] = value
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号