Безопасное тестирование

Записать, проверить, восстановить

Проверяйте по одной обратимой настройке. Сохраните исходное значение, проверьте результат и восстановите его.

Перед любой записью

Защита оборудования

Используйте типизированный CLI разработчика только для известных команд записи. Выполняйте по одному обратимому изменению.

Немедленно остановитесь Остановитесь, если устройство, питание, ответ, считанный результат или сохранённое значение стали неопределёнными.

Для пяти профилей на основе upstream-кода начните с руководства по экспериментальным проверкам и диагностике. Их типизированные операции доступны, но для статуса проверенных нужны описанные ниже захваты и физические проверки. Никогда не запускайте USBPcap и управление OpenBlade одновременно на одном интерфейсе. Для проверки сна и пробуждения необходим присутствующий пользователь, способный разбудить ноутбук.

Соберите доказательства с помощью Synapse Observer

Synapse Observer — общедоступное приложение для сбора доказательств о новых моделях. Оно собирает сведения об устройстве и помогает выполнить одно выбранное изменение с точным восстановлением без терминала и клонирования репозитория.

Скачать Synapse ObserverОткрыть запрос поддержки устройства

Проверьте ZIP с доказательствами перед добавлением в публичное обращение о поддержке устройства. Проблемы самого сборщика сообщайте в трекере Synapse Observer.

Ручная проверка протокола

Следующие шаги предназначены для сопровождающих, которым после проверки отчёта Synapse Observer нужна ручная запись обмена.

  1. Запишите текущее значение, желаемое значение, ожидаемый результат и значение для восстановления. Для каждой настройки или режима питания делайте отдельную запись обмена.
  2. Проверьте модель, VID/PID, BIOS, EC, MCU, назначение HID и длину feature-отчёта. Версии, которые нельзя безопасно прочитать, помечайте недоступными. Не полагайтесь только на отображаемое имя.
  3. Остановите постороннюю активность и задайте требуемое питание от сети, батареи или USB-C, состояние HDR и дисплея.
  4. Запускайте USBPcapCMD в отдельной группе консольных процессов. Останавливайте его адресным CTRL_BREAK_EVENT. Никогда не отправляйте управляющее событие консоли группе процессов с ID 0.
  5. Измените одну настройку и отметьте действие в записи обмена. Во время записи не открывайте другие страницы приложения производителя.
  6. Подтвердите новое состояние, восстановите сохранённое значение и подтвердите его перед завершением сеанса.
  7. Сравнивайте минимально достаточный фрагмент обмена пакетами. Сохраните модель, действие, данные в установленных пределах, структуру ответа и результаты проверок. Удалите серийные номера, пути, данные сеанса и посторонние пакеты.
  8. Используйте типизированную команду с именованным действием: сохранение старого значения, запрос подтверждения, применение и проверка одного значения, затем восстановление.
  9. Отмечайте поддержку проверенной только после тестов декодера, негативных тестов, применения, подтверждения и восстановления. Интерфейс не должен принимать сырые классы, ID и данные.

Матрица захвата

ДоказательстваОбязательный вопросУсловие прохождения
Разница команд записиКакой запрос меняется при изменении одного значения в интерфейсе?Изменение повторяется в другой записи обмена и отсутствует в интервале без действий.
ОтветПодтвердила ли прошивка ту же транзакцию и контракт данных?Оболочка, статус, контрольная сумма, класс, ID, длина и данные проходят проверку.
Команда чтенияМожет ли прошивка независимо сообщить о результате?Известные состояния декодируются в разные значения. Иначе укажите, что доступна только запись или считывание общего состояния.
ПрименениеИзменилось ли поведение устройства так, как ожидалось?Поведение ноутбука соответствует типизированному целевому значению.
ВосстановлениеМожно ли точно восстановить исходное состояние?Команда восстановления успешна, а считывание или наблюдение совпадает с сохранённым состоянием.
Негативные сценарииЧто должно отклоняться?Неверный PID, модель или интерфейс блокируют операцию. То же относится к неверным ответам, значениям, неподдерживаемым сочетаниям и отмене.

Правила декодирования

От захвата к выпуску

Завершайте каждый этап перед переходом к следующему.

  1. Декодируйте очищенный фрагмент байтов из локальной записи обмена, не открывая дескриптор устройства.
  2. Добавьте типизированный запрос только для чтения с точным контрактом ответа. Отклоняйте неизвестные статусы, длины, селекторы, зарезервированные байты и значения.
  3. Повторите то же состояние интерфейса производителя и подтвердите, что без изменений предполагаемая команда записи отсутствует или стабильна.
  4. Сохраните исходное состояние, запросите подтверждение точной цели, примените одно допущенное значение, считайте или наблюдайте результат, затем восстановите состояние.
  5. Перед выпуском свяжите очищенный образец и результаты проверки с проверенным исходным кодом. Предоставляйте только именованную возможность.

Запись доказательств ответа

Добавьте эту запись в изменение ядра. Сырые захваты и локальные журналы не публикуйте.

Model / VID:PID:
BIOS / EC / MCU:
HID usage page / usage / feature-report length:
Question and single UI action:
Power source and required preconditions:
Request class/ID and sanitized payload shape:
Expected status, class/ID, payload length and response shape:
Unknown or malformed values rejected:
Independent getter, generic readback, or one-shot-only:
Saved prior state and restoration result:
Negative controls and repeat count:
Core tests and sanitized fixture paths:
Remaining inference or unsupported variants:

Работа с приватными данными

Прежний репозиторий захватов закрыт и выведен из эксплуатации. Необходимые ядру неизменяемые очищенные образцы теперь находятся вместе с исходным кодом в каталоге доказательств; исходные пути и значения SHA-256 записаны в индексе происхождения. Прежний репозиторий не принимает новые материалы и обращения за поддержкой. Новые проверенные доказательства Synapse Observer отправляйте через обращение о поддержке устройства в репозитории ядра.

Не публиковать

Файлы PCAP, пути HID, серийные номера, потоки транзакций, имена пользователей и машин, локальные пути, экспорт диагностики, снимки с данными аккаунтов и непроверенные наборы данных команд.

Публиковать после проверки

Модель и наблюдаемые версии BIOS, EC, MCU, назначение и длина отчёта, имя действия, класс/ID, ограниченная структура данных, допустимый ответ, ограничения считывания, тесты и результат восстановления.

Условия остановки

Список проверок

[ ] Exact model, VID/PID, BIOS, EC, MCU and HID interface documented
[ ] One action per capture and a no-op comparison available
[ ] Prior state saved and restoration verified
[ ] Request and response envelope validation implemented
[ ] Payload bounds and enum/value validation implemented
[ ] Timeout, cancellation and malformed-response tests included
[ ] Fixture contains no serial, HID path, user path or raw PCAP
[ ] Capability remains hidden when evidence is absent
[ ] No raw-command IPC or production CLI option introduced