Разработать универсальный DXE Driver для UEFI

40 000 руб. за проект
02 сентября 2024, 10:28 • 6 откликов • 49 просмотров
1. Общие положения:
Целью разработки является создание DXE Driver, который будет обеспечивать интерфейс взаимодействия с пользователем на уровне UEFI, предоставляя три основных экрана: экран загрузки, экран входа и экран меню. Все функции должны быть реализованы в одном файле, включая генерацию интерфейса экрана (например, строка с авторскими правами, год в углу и т.д.).

2. Функциональные требования:

2.1. Экран загрузки (Boot screen):

  • Отображать обратный отсчет с 10 секунд.
  • Если в течение обратного отсчета пользователь нажмет "ESC", происходит переход на следующий экран (экран входа).
  • Если "ESC" не нажато, через 5 секунд после завершения обратного отсчета происходит перезагрузка системы.
2.2. Экран входа (Login screen):

  • Должен содержать текстовое поле для ввода пароля:
    • Поле для ввода пароля должно заменять введенные символы на "*".
  • При нажатии "Enter":
    • Если введенный пароль правильный (сравнение с данными из файла), происходит переход на экран меню и запись в лог-файл информации о успешном входе с указанием временной метки.
    • Если пароль неправильный, поле пароля сбрасывается, и в лог-файл записывается информация о неудачной попытке входа с временной меткой.
  • Если на любом из экранов нажата клавиша "ESC", система должна перезагрузиться.
2.3. Экран меню (Menu screen):

  • Должен отображать следующие опции:
    • Загрузка в BIOS ("Boot into BIOS"): переход в BIOS;
    • Загрузка в Windows ("Boot into Windows"): возврат "EFI_SUCCESS" и запуск операционной системы;
    • Открыть логи ("Open logs"): открытие файла логов, где хранится информация о входах в систему и попытках входа;
    • Информация о системе ("System Information"): отображение информации о лицензии, версии драйвера;
    • Изменить пароль ("Change password"): возможность изменения пароля при правильном вводе текущего пароля.
    • Перезагрузка ("Reboot"): выполнение перезагрузки системы.
  • Перемещение по меню должно осуществляться с помощью стрелок на клавиатуре.
3. Дополнительные требования:

3.1. Генерация интерфейса экрана:

  • Должна быть реализована функция, генерирующая макет экрана, включающая строку с авторскими правами, год, нынешнее время и дату в углу и оформление в стиле BIOS.
3.2. Логирование:

  • Все события входа и попытки входа должны записываться в лог-файл с указанием временной метки.
4. Технические требования:

  • Весь код должен быть размещен в одном файле.
  • Драйвер должен быть совместим с архитектурами AMD и Intel процессоров, поддерживать UEFI версии 2.7 и выше.
  • Код должен быть оптимизирован для минимального использования памяти и быстрого выполнения.