示例#1
0
    def __init__(self, ubi_file):
        self._file = ubi_file
        self._first_peb_num = 0
        self._blocks = extract_blocks(self)
        self._block_count = len(self.blocks)

        if self._block_count <= 0:
            raise Exception('No blocks found.')

        layout_list, data_list, int_vol_list, unknown_list = sort.by_type(
            self.blocks)

        self._layout_blocks_list = layout_list
        self._data_blocks_list = data_list
        self._int_vol_blocks_list = int_vol_list
        self._unknown_blocks_list = unknown_list

        arbitrary_block = self.blocks.itervalues().next()
        self._min_io_size = arbitrary_block.ec_hdr.vid_hdr_offset
        self._leb_size = self.file.block_size - arbitrary_block.ec_hdr.data_offset

        layout_pairs = layout.group_pairs(self.blocks, self.layout_blocks_list)

        # Plus 2 to adjust for layout blocks
        layout_infos = layout.associate_blocks(self.blocks, layout_pairs,
                                               self.first_peb_num)

        self._images = []
        for i in range(0, len(layout_infos)):
            self._images.append(image(self.blocks, layout_infos[i]))
    def __init__(self, ubi_file):
        self._file = ubi_file
        self._first_peb_num = 0
        self._blocks = extract_blocks(self)
        self._block_count = len(self.blocks)

        if self._block_count <= 0:
            raise Exception('No blocks found.')

        layout_list, data_list, int_vol_list, unknown_list = sort.by_type(self.blocks)

        self._layout_blocks_list = layout_list
        self._data_blocks_list = data_list
        self._int_vol_blocks_list = int_vol_list
        self._unknown_blocks_list = unknown_list
        
        arbitrary_block = self.blocks.itervalues().next()
        self._min_io_size = arbitrary_block.ec_hdr.vid_hdr_offset
        self._leb_size = self.file.block_size - arbitrary_block.ec_hdr.data_offset

        layout_pairs = layout.group_pairs(self.blocks, self.layout_blocks_list)

        # Plus 2 to adjust for layout blocks
        layout_infos = layout.associate_blocks(self.blocks, layout_pairs, self.first_peb_num)

        self._images = []
        for i in range(0, len(layout_infos)):
            self._images.append(image(self.blocks, layout_infos[i]))