Andrei Konovalov de la Google dezvoltă un nou modul , emulează dispozitive USB în spațiul utilizatorului. Este în curs de examinare pentru includerea acestui modul în kernelul principal Linux. USB Raw Gadget este deja în cadrul Google pentru simplificarea testării fuzzing a stivei USB a kernelului cu ajutorul instrumentelor .
Modulul adaugă o nouă interfață programatică în subsistemul kernelului și se dezvoltă ca alternativă la GadgetFS. Crearea unei noi API este determinată de necesitatea de a obține acces de nivel scăzut și direct la subsistemul USB Gadget din spațiul utilizatorului, permițând procesarea tuturor cererilor USB posibile (GadgetFS procesează unele cereri de sine stătător, fără a le transmite în spațiul utilizatorului). Managementul USB Raw Gadget se face prin dispozitivul /dev/raw-gadget, similar cu /dev/gadget în GadgetFS, dar pentru interacțiune se folosește o interfață bazată pe ioctl(), nu un FS pseudo.
Pe lângă procesarea directă a tuturor cererilor USB de către un proces din spațiul utilizatorului, noua interfață se distinge și prin posibilitatea de a returna orice date în răspuns la o cerere USB (GadgetFS efectuează verificarea corectitudinii descriptorilor USB și filtrează anumite răspunsuri, ceea ce împiedică identificarea erorilor în timpul testării fuzzing a stivei USB). Raw Gadget permite, de asemenea, alegerea unui anumit dispozitiv UDC (Controler de Dispozitive USB) și a unui driver pentru atașare, în timp ce GadgetFS se atașează la primul dispozitiv UDC disponibil. Numele previzibile sunt atribuite diferitelor UDC pentru a separa diferitele tipuri de canale de schimb de date în cadrul unui singur dispozitiv.
Sursa: opennet.ro
