Andrej Konovalovs no Google izstrādā jaunu moduli , emulēt USB ierīces lietotāja telpā. Ir izskatīšanas procesā par šā moduļa iekļaušanu Linux kodola galvenajā sastāvā. USB Raw Gadget jau Google uzņēmumā tiek izmantots, lai vienkāršotu USB kodola staka fuzzing testēšanu ar rīkiem .
Modulis pievieno jaunu programmēšanas saskarni kodola un attīstās kā alternatīva GadgetFS. Jaunas API izveide ir nepieciešama, lai iegūtu zema līmeņa un tiešu piekļuvi USB Gadget subsistēmai no lietotāja telpas, ļaujot apstrādāt visus iespējamos USB pieprasījumus (GadgetFS apstrādā dažus pieprasījumus paša spēkiem, netiekot pārsūtīti uz lietotāja telpu). USB Raw Gadget vadība tiek veikta caur ierīci /dev/raw-gadget, līdzīgi kā /dev/gadget GadgetFS, bet mijiedarbībai tiek izmantota saskarne, kas balstīta uz ioctl(), nevis pseidoF/S.
Papildus tiešai visu USB pieprasījumu apstrādei lietotāja telpā jaunā saskarne izceļas ar iespēju atgriezt jebkādus datus atbildē uz USB pieprasījumu (GadgetFS veic USB descriptoru pareizības pārbaudi un filtrē noteiktas atbildes, kas traucē kļūdu noteikšanu USB staka fuzzing testēšanas laikā). Raw Gadget nodrošina iespēju izvēlēties konkrētu UDC (USB ierīces kontrolieris) un vadītāju pievienošanai, kamēr GadgetFS pieslēdzas pirmajai pieejamajai UDC ierīcei. Atšķirīgiem UDC tiek piešķirti prognozējami nosaukumi lai atdalītu dažāda veida datu apmaiņas kanālus vienā ierīcē.
Avots: opennet.lv
