def assemble(self): compression = {'none': 0, 'tiano': 1, 'lzma': 2} if get_guid_bin(self.guid) == '': print('*** Error *** Invalid GUID: {}'.format(self.guid)) return if not os.path.isfile(self.raw_file): print('*** Error *** File doesn\'t exist: {}'.format( self.raw_file)) return if self.comp not in compression: print('*** Error *** Unknown compression: {}'.format(self.comp)) return compression_type = compression[self.comp] if self.file_type == 'freeform': raw_image = read_file(self.raw_file) wrap_image = assemble_uefi_raw(raw_image) if compression_type > 0: comp_image = compress_image(self._uefi, wrap_image, compression_type) wrap_image = assemble_uefi_section(comp_image, len(wrap_image), compression_type) uefi_image = assemble_uefi_file(self.guid, wrap_image) write_file(self.efi_file, uefi_image) else: print('*** Error *** Unknow file type: {}'.format(self.file_type)) return self.logger.log( "[CHIPSEC] UEFI file was successfully assembled! Binary file size: {:d}, compressed UEFI file size: {:d}" .format(len(raw_image), len(uefi_image)))
def remove(self): if get_guid_bin(self.guid) == '': print ('*** Error *** Invalid GUID: {}'.format(self.guid)) return if not os.path.isfile(self.rom_file): print ('*** Error *** File doesn\'t exist: {}'.format(self.rom_file)) return rom_image = read_file(self.rom_file) new_image = modify_uefi_region(rom_image, CMD_UEFI_FILE_REMOVE, self.guid) write_file(self.new_file, new_image)
def insert_after(self): if get_guid_bin(self.guid) == '': print ('*** Error *** Invalid GUID: {}'.format(self.guid)) return if not os.path.isfile(self.rom_file): print ('*** Error *** File doesn\'t exist: {}'.format(self.rom_file)) return if not os.path.isfile(self.efi_file): print ('*** Error *** File doesn\'t exist: {}'.format(self.efi_file)) return rom_image = read_file(self.rom_file) efi_image = read_file(self.efi_file) new_image = modify_uefi_region(rom_image, CMD_UEFI_FILE_INSERT_AFTER, self.guid, efi_image) write_file(self.new_file, new_image)