def reader(self, ubi): last_leb = 0 for block in sort.by_leb(self.get_blocks(ubi.blocks)): if block == 'x': last_leb += 1 yield b'\xff' * ubi.leb_size else: last_leb += 1 yield ubi.file.read_block_data(ubi.blocks[block])
def reader(self, ubi): last_leb = 0 for block in sort.by_leb(self.get_blocks(ubi.blocks)): if block == 'x': #while 0 != (ubi.blocks[block].leb_num - last_leb): last_leb += 1 yield '\xff'*ubi.leb_size else: last_leb += 1 yield ubi.file.read_block_data(ubi.blocks[block])
def __init__(self, ubi, block_list): self.__name__ = 'leb_virtual_file' self.is_valid = False self._ubi = ubi self._last_read_addr = 0 if not len(block_list): error(self, 'Info', 'Empty block list') else: self._blocks = sort.by_leb(block_list) self._seek = 0 self._last_leb = -1 self._last_buf = '' self.is_valid = True