Доступен USB Raw Gadget, Linux-модуль для эмуляции USB-устройств

Материал из Викиновостей, свободного источника новостей

11 февраля 2020 года

Андрей Коновалов из компании Google развивает новый модуль USB Raw Gadget, позволяющий эмулировать USB-устройства в пространстве пользователя. Находится на рассмотрении заявка на включение данного модуля в основной состав ядра Linux. USB Raw Gadget уже применяется в компании Google для упрощения fuzzing-тестирования USB-стека ядра при помощи инструментария syzkaller.

Модуль добавляет новый программный интерфейс в подсистему ядра USB Gadget и развивается в качестве альтернативы GadgetFS. Создание нового API обусловлено необходимостью получения низкоуровневого и прямого доступа к подсистеме USB Gadget из пространства пользователя, позволяющего обрабатывать все возможные USB-запросы (GadgetFS обрабатывает некоторые запросы самостоятельно, не передавая в пространство пользователя). Управление USB Raw Gadget производится через устройство /dev/raw-gadget по аналогии с /dev/gadget в GadgetFS, но для взаимодействия применяется интерфейс на основе ioctl(), а не псевдо-ФС.

Кроме прямой обработки всех USB-запросов процессом в пространстве пользователя новый интерфейс также отличается возможностью возвращения любых данных в ответ на USB-запрос (GadgetFS выполняет проверку корректности USB-дескрипторов и фильтрует определённые ответы, что мешает выявлению ошибок при fuzzing-тестировании USB-стека). Raw Gadget также даёт возможность выбрать конкретное устройство UDC (USB Device Controller) и драйвер для прикрепления, в то время как GadgetFS прикрепляется к первому доступному устройству UDC. Для разных UDC назначаются предсказуемые имена endpoint для разделения разных типов каналов обмена данными внутри одного устройства.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Доступен USB Raw Gadget, Linux-модуль для эмуляции USB-устройств», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.