È disponibile USB Raw Gadget, un modulo Linux per emulare dispositivi USB

Andrey Konovalov di Google sta sviluppando un nuovo modulo Gadget USB RAW, permettendo emulare dispositivi USB nello spazio utente. È in sospeso applicazione per l'inclusione di questo modulo nel kernel Linux principale. Gadget USB Raw già applicare presso Google per semplificare il test fuzz dello stack del kernel USB utilizzando strumenti syzkaller.

Il modulo aggiunge una nuova interfaccia di programmazione al sottosistema del kernel Dispositivo USB ed è stato sviluppato come alternativa a GadgetFS. La creazione di una nuova API è stata guidata dalla necessità di ottenere un accesso diretto e di basso livello al sottosistema USB Gadget dallo spazio utente, consentendogli di elaborare tutte le possibili richieste USB (GadgetFS elabora alcune richieste in modo indipendente, senza passarle allo spazio utente) . L'USB Raw Gadget è controllato tramite il dispositivo /dev/raw-gadget, simile a /dev/gadget in GadgetFS, ma l'interazione utilizza un'interfaccia basata su ioctl() anziché una pseudo-FS.

Oltre all'elaborazione diretta di tutte le richieste USB tramite un processo nello spazio utente, la nuova interfaccia offre anche la possibilità di restituire qualsiasi dato in risposta a una richiesta USB (GadgetFS controlla la correttezza dei descrittori USB e filtra alcune risposte, impedendo il rilevamento di errori durante il test fuzz dello stack USB). Raw Gadget ti dà anche la possibilità di selezionare un dispositivo UDC (USB Device Controller) e un driver specifici a cui collegarti, mentre GadgetFS si collega al primo dispositivo UDC disponibile. I nomi prevedibili vengono assegnati a diversi UDC endpoint per separare diversi tipi di canali di scambio dati all'interno di un unico dispositivo.

Fonte: opennet.ru

Aggiungi un commento