Skip to content

fix(drivers): прошивки экрана и тачпада из каталога OEM (XIC-102) - #98

Merged
Oksion merged 1 commit into
mainfrom
feat/xic-102-firmware-rows
Oct 18, 2026
Merged

Oksion merged 1 commit into
mainfrom
feat/xic-102-firmware-rows

Conversation

@Oksion

@Oksion Oksion commented Oct 18, 2026

Copy link
Copy Markdown
Owner

Закрывает XIC-102: https://linear.app/oksion/issue/XIC-102

Проблема

Xiaomi PC Manager предлагает прошивки экрана (модуль FWSC) и тачпада (FWTP), а вкладка «Драйверы» XiControl молчит. DriverMatch.Compare добавлял строку Firmware только при совпадении hardware-id каталога с устройством из Win32_PnPSignedDriver, а у прошивок id синтетические (USB\VID_6789&PID_1234&REV_1236/1237, USB\VID_6989&PID_1234&REV_1836/1837) — такого устройства в системе нет, строка была недостижима.

Что сделано

  • OemDrivers.cs — для модулей IsFirmware сверки по hwid нет: одна строка на модуль, если сервер вернул пакет; версия из hardwareIds[0].version, Installed = null, Device = код модуля. Обычные драйверы без совпадения строки по-прежнему не дают. В журнале — счётчик «прошивок N».
  • DriversTab.cs — прошивки вынесены в отдельную группу «Прошивки» под предупреждением как у BIOS: ничего не скачиваем и не ставим, только ссылка; честно сказано, что текущую версию прочитать нечем и пакет может уже стоять. Имя устройства — локализованная константа по коду модуля («Экран» / «Тачпад»).
  • Loc RU/EN/ZH — settings.drivers.firmware.group, settings.drivers.firmware.warn, settings.drivers.mod.FWSC, settings.drivers.mod.FWTP.
  • Тесты — прошивка без совпавшего устройства → ровно одна строка на модуль; прошивка без пакета → строки нет; драйвер без совпадения → строки нет; старый тест FWTP с совпадением зелёный.
  • Доки — docs/16-oem-driver-check.md (абзац про прошивки + «Ограничения»), CHANGELOG.md, строка про DriverMatch в CLAUDE.md.

Проверка

  • dotnet build 0 ошибок / 0 предупреждений, dotnet test 903/903.
  • TM2424, живой OemDriverCheck.RunAsync(): Status=Ok, 50 строк, среди них FWTP 3.5.13.01.44.25.13.0 (P701_TouchPad_0728_01_351301.zip) и FWSC 740B08 (Jc0C_PANEL_0921_00740B08_signed.zip) со ссылками на CDN.
  • Вкладка «Драйверы» в приложении проверена глазами — обе строки на месте.

🤖 Generated with Claude Code

…IC-102)

Строка Firmware в DriverMatch.Compare требовала совпадения hardware-id
каталога с устройством в системе, а у прошивок FWSC/FWTP id синтетические
(USB\VID_6789/6989&PID_1234&REV_…) — строка была недостижима, и XiControl
молчал там, где PC Manager предлагал прошивку.

Теперь для модулей IsFirmware сверки нет: одна строка на модуль с пакетом,
версия из hardwareIds[0], Device = код модуля, имя даёт UI по локализации
(«Экран» / «Тачпад», ключи settings.drivers.mod.FWSC/FWTP). На вкладке —
отдельная группа «Прошивки» с предупреждением как у BIOS. Обычные драйверы
без совпадения строки не дают — как и раньше. В журнал добавлен счётчик
прошивок.

Проверено на TM2424 живым RunAsync: FWTP 3.5.13.01.44.25.13.0 и FWSC 740B08
со ссылками на пакеты.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Oksion
Oksion merged commit 8acf3e4 into main Oct 18, 2026
5 checks passed
@Oksion
Oksion deleted the feat/xic-102-firmware-rows branch October 18, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant