Наличен е USB Raw Gadget, Linux модул за емулиране на USB устройства

Андрей Коновалов от Google разработва нов модул USB Raw притурка, позволяващ емулирайте USB устройства в потребителското пространство. Предстои приложение за да включите този модул в основната част на ядрото на Linux. USB Raw Gadget вече прилага в Google за улесняване на fuzz тестване на USB стека на ядрото с помощта на набор от инструменти syzkaller.

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

В допълнение към директното обработване на всички USB заявки чрез процес в потребителското пространство, новият интерфейс включва и възможност за връщане на всякакви данни в отговор на USB заявка (GadgetFS извършва валидиране на USB дескриптор и филтрира определени отговори, което предотвратява откриването на грешки по време на USB тестване на размиване на стека). Raw Gadget също ви позволява да изберете конкретно UDC (USB Device Controller) устройство и драйвер за прикачване, докато GadgetFS се прикачва към първото налично UDC устройство. Предвидими имена, присвоени на различни UDC крайна точка за разделяне на различни видове канали за обмен на данни в рамките на едно устройство.

Източник: opennet.ru

Добавяне на нов коментар