Один из ведущих производителей UEFI BIOS, компания Insyde Software предоставляет своим партнерам набор инструментов, с помощью которых выполняется настройка и тюнинг программного обеспечения с учетом особенностей платформы, для которой оно разработано. Утилиты для InsydeH2O свободно не распространяются, поэтому они находятся всегда в центре внимания энтузиастов и не только. Самая востребованная (и самая доступная) среди них — H2OFFT (Firmware Flash Tool), применяемая для обновления микрокода. Как пользоваться InsydeFlash мы уже рассмотрели ранее, а сегодня исследуем практику применения утилиты H2OEZE (Easy Binary Editor), предназначенной для редактирования двоичных файлов UEFI BIOS, включая PCI ROM дополнительных устройств, встроенные UEFI-драйверы, лого и, главное, — для доступа к настройкам самого InsydeH2O.
Практика применения H2OEZE
В качестве примера рассмотрим UEFI BIOS, используемый в ноутбуке Lenovo G710. Несмотря на то, что эта платформа давно снята с поддержки, ее выбор неслучаен. Вопрос о том, как с ним работать, прозвучал несколько лет назад на Хабре, поэтому наши эксперименты с ним нацелены на практическую пользу.
Подопытный BIOS представляет конгломерат прошивки для Intel Management Engine (два мегабайта) и настоящего UEFI (четыре мегабайта), оформленные в восьмимегабайтный образ, доступный для загрузки с сайта производителя. Регион Intel ME сейчас нам не нужен, о работе с ним можно ознакомиться здесь, а UEFI BIOS, размером 4194304 байта, извлечем с помощью HEX-редактора, назовем Lenovo-G710.fd и загрузим в Easy Binary Editor:

Уже сам факт, что файл открылся с помощью утилиты H2OEZE говорит о том, что его контрольные суммы совпадают с ожидаемыми и что он годится для прошивки программатором. В этом ключе важным окажется идентификатор официальной версии микрокода, о котором сообщает строка BIOS Image Version (в данном случае — 8ECN95WW). Впрочем, особо доверять ему не стоит: в разделе Binary ROM меню BIOS Version предназначено для редактирования этой строки.

Курьезный случай, связанный с применением Easy Binary Editor для прошивки Lenovo G710, вовсе не характерен для программных продуктов Insyde Software. Это, скорее, исключение из правил (сегодня так уже никто не пишет код), призванное продемонстрировать возможности доступа к содержимому бинарных образов InsydeH2O. В настоящее время нет надобности извлекать образ BIOS из загружаемого файла — утилита способна работать с ним as is.
В свете сказанного H2OEZE во многом похожа на AMIBCP — аналогичный программный продукт, разработанный компанией American Megatrends для использования со своими версиями UEFI BIOS. Но есть и два очень существенных отличия, в чем же их суть?
Фазы выполнения H2OEZE в модулях и драйверах
В отличие от AMIBCP, утилита H2OEZE допускает манипуляцию с модулями и драйверами, составляющими тело UEFI BIOS. В этом она больше похожа на другой продукт American Megatrends — программное обеспечения для модификации прошивки AMIMM (AMIBIOS ROM Module Manipulation). В этом легко убедиться, если вместо краткой информации о InsydeBIOS, детально ознакомиться с содержимым UEFI:

Так, если понадобится заменить один из модулей, входящих в состав PEI-фазы UEFI (Pre-EFI Initialization), мы его сначала может найти в детализированном отчете, а затем выполнить одну из операций над InsydeH2O — замену, вставку, удаление или экспорт (сохранение) компонента на внешний носитель.

Можно и не мелочиться, не тратить время на каждый отдельно взятый модуль, а выполнить замену целым блоком, соответствующим одной из фаз выполнения UEFI, был бы под рукой готовый FV-блок.
Управление настройками H2OEZE
В разделе Other наше внимание может привлечь пункт Setup menu — именно он отражает тему, вынесенную в заголовок этой статьи. Сразу отметим, что UEFI BIOS ноутбука Lenovo G710 не совместим с данной версией H2OEZE (Easy Binary Editor).

Прошивка Lenovo G710 слишком стара для H2OEZE 100.00.03.04. Доступ к ее настройкам в автономном режиме приводит просто к зависанию утилиты, о чем лучше знать заранее. Insyde Software постоянно совершенствует свою программную оснастку, информируя об улучшениях только квалифицированных партнеров. В настоящее время за установки CMOS Setup отвечает новый продукт H2OUVE (UEFI Variable Editor), о котором мы расскажем в своих следующих публикациях.