USB Raw Gadget, un modul Linux pentru emularea dispozitivelor USB, este disponibil

Andrey Konovalov de la Google dezvoltă un nou modul Gadget USB Raw, permițând emulați dispozitivele USB în spațiul utilizatorului. Este in asteptare cerere pentru includerea acestui modul în nucleul principal Linux. USB Raw Gadget deja aplica la Google pentru a simplifica testarea fuzz a stivei de nucleu USB folosind instrumente syzkaller.

Modulul adaugă o nouă interfață de programare subsistemului kernel Gadget USB și este dezvoltat ca o alternativă la GadgetFS. Crearea unui nou API a fost condusă de necesitatea de a obține acces la nivel scăzut și direct la subsistemul USB Gadget din spațiul utilizatorului, permițându-i acestuia să proceseze toate cererile USB posibile (GadgetFS procesează unele solicitări în mod independent, fără a le trece în spațiul utilizatorului) . USB Raw Gadget este controlat prin dispozitivul /dev/raw-gadget, similar cu /dev/gadget din GadgetFS, dar interacțiunea folosește o interfață bazată pe ioctl() mai degrabă decât un pseudo-FS.

Pe lângă procesarea directă a tuturor solicitărilor USB de către un proces din spațiul utilizatorului, noua interfață oferă și capacitatea de a returna orice date ca răspuns la o solicitare USB (GadgetFS verifică corectitudinea descriptorilor USB și filtrează anumite răspunsuri, ceea ce împiedică detectarea). a erorilor în timpul testării fuzz a stivei USB) . Raw Gadget vă oferă, de asemenea, posibilitatea de a selecta un anumit dispozitiv UDC (USB Device Controller) și un driver la care să îl atașați, în timp ce GadgetFS se atașează la primul dispozitiv UDC disponibil. Nume previzibile sunt atribuite diferitelor UDC-uri punct final pentru a separa diferite tipuri de canale de schimb de date într-un singur dispozitiv.

Sursa: opennet.ru

Adauga un comentariu