Andrej Konovalov ze společnosti Google vyvíjí nový modul , emulovat USB zařízení v uživatelském prostoru. Je podán k posouzení o zahrnutí tohoto modulu do hlavního jádra Linuxu. USB Raw Gadget již ve společnosti Google pro zjednodušení fuzzingového testování USB zásobníku jádra pomocí nástrojů .
Modul přidává nové rozhraní do jádrové subsystému a je vyvíjen jako alternativa k GadgetFS. Vytvoření nového API je důsledkem potřeby získání nízkoúrovňového a přímého přístupu k subsystému USB Gadget z uživatelského prostoru, což umožňuje zpracovávat všechny možné USB požadavky (GadgetFS některé požadavky zpracovává samostatně, aniž by je předával do uživatelského prostoru). Správa USB Raw Gadget se provádí přes zařízení /dev/raw-gadget, podobně jako /dev/gadget v GadgetFS, ale pro interakci se používá rozhraní založené na ioctl(), nikoli na pseudo-FS.
Kromě přímého zpracování všech USB požadavků procesem v uživatelském prostoru nové rozhraní také umožňuje vracet jakákoliv data jako odpověď na USB požadavek (GadgetFS provádí kontrolu správnosti USB popisovačů a filtruje určité odpovědi, což ztěžuje odhalování chyb při fuzzingovém testování USB zásobníku). Raw Gadget také umožňuje vybrat konkrétní zařízení UDC (USB Device Controller) a ovladač pro připojení, zatímco GadgetFS se připojuje k prvnímu dostupnému zařízení UDC. Pro různé UDC se přiřazují předvídatelná jména pro rozlišení různých typů datových kanálů uvnitř jednoho zařízení.
Zdroj: opennet.ru
