Sele ngamanye amaxesha Apha kwibhlog sithethile ngomsebenzi owenziwe nguAndrey Konovalov (umphuhlisi kaGoogle) kwiLinux, ukusuka emsebenzini wakhe ekufumaneni ukusilela kwangexesha kubaqhubi be-USB yeLinux Kernel nakwizixhobo zeWifi.
Ngoku usebenza ngoku uphuhliso lwemodyuli entsha yeLinux Kernel ayinike igama njenge "Igajethi eluhlaza ye-USB" echaza njengesixhobo esivumela ukukhuphela izixhobo ze-USB kwindawo yomsebenzisi.
ngaphandle koko ikhankanya ukuba isicelo siqwalaselwa ukufakwa kwale modyuli kwi-kernel ephambili yeLinux. IGajethi eluhlaza kaGoogle sele isetyenziswa nguGoogle ukwenza lula ukuvavanywa okungafunekiyo kwesitaki se-kernel ye-USB ngesixhobo se-syzkaller.
Ekuqaleni bendisebenzisa i-GadgetFS (kunye nemodyuli ye-Dummy HCD / UDC) ukulingisa izixhobo ze-USB zokufota, kodwa emva koko zatshintshelwa kunxibelelwano olubhaliweyo lwesiko.
Inkuthazo yokuphumeza ujongano olwahlukileyo yayikukubonelela ngokufikelela ngokuthe ngqo nangokuthile okuluhlaza kumaleko eGadget ye-USB yendawo yomsebenzisi, apho isicelo ngasinye se-USB sidluliselwa kwindawo yomsebenzisi kwimpendulo.
Malunga neGajethi eluhlaza ye-USB
Imodyuli iyakhathalela ukongeza ujongano olutsha Inkqubo kwinkqubo esezantsi yekernel ibizwa ngokuba "yiGajethi ye-USB" ethi yona iphuhliswe njengenye indlela kwiGadgetFS.
Ukudalwa kwe-API entsha kungenxa yemfuno yokufikelela ngokuthe ngqo nakwinqanaba eliphantsi Kwinkqubo esezantsi yeGadget ye-USB ukusuka kwindawo yomsebenzisi, ivumela zonke izicelo ezinokuthi zenziwe nge-USB (i-GadgetFS isebenzise ezinye izicelo iyodwa, ngaphandle kokuyidlulisela kwindawo yomsebenzisi).
I-USB Raw Gadget ilawulwa nge / dev / isixhobo segajethi eluhlaza ngokuthelekisa / dev / igajethi kwiGadgetFS, kodwa ioctl () ujongano olusekwe endaweni ye-pseudo-FS, isetyenziselwa unxibelelwano.
Ukongeza ekusebenziseni ngokuthe ngqo zonke izicelo ze-USB ngenkqubo kwindawo yomsebenzisi, ujongano olutsha lukwanakho ukubuyisa nayiphi na idatha ukuphendula isicelo se-USB (iGadgetFS ijonga ukuchaneka kwezichazi ze-USB kwaye icoca iimpendulo ezithile, eziphazamisa ukufunyanwa kwempazamo ngexesha lokuvavanywa kokucoca isitaki se-USB).
I-USB Raw Gadget ikwavumela ukuba ukhethe isixhobo esithile se-UDC (Umqhubi wesixhobo se-USB) kunye nomqhubi wokudibanisa, ngelixa iGadgetFS iqhagamshela kwisixhobo sokuqala se-UDC.
Kwii-UDCs ezahlukeneyo, amagama endpoint anokuqikelelwa abhalwe kwimephu yeendlela ezahlukeneyo zonxibelelwano ngaphakathi kwesixhobo esinye.
Okokugqibela, ukuba ufuna ukwazi ngakumbi ngayo, ungajonga iinkcukacha, kunye nelog yotshintsho olwenziwe kwiRawidi eluhlaza ye-USB Kule khonkco ilandelayo.
Uyifaka njani imodyuli yeGajethi ye-USB kwiLinux?
Kulabo banomdla wokuvavanya le modyuli kwinkqubo yabo, banokwenza oko ngokulandela imiyalelo echazwe apha.
YeDummy HCD / UDC Imodyuli eqwalasela izixhobo ze-USB ezibonakalayo kunye nabalawuli bomsingathi abadityanisiweyo ngaphakathi kernel). Kuya kufuneka sivule i-terminal kwaye siza kuchwetheza lo myalelo ulandelayo:
svn checkout https://github.com/xairy/raw-gadget/trunk/dummy_hcd
Ngale nto siza kufumana incwadi eneemodyuli esiza kuyenza ngokwenza lo myalelo ulandelayo kwisiphelo sendlela:
cd dummy_hcd make
Kwaye siyaqhubeka nokuzifaka kunye:
./insmod.sh
Ukuba sifuna ukuhlaziya imodyuli, siyenza kunye:
./update.sh
Ngoku yabo bafuna ukufaka imodyuli yekernel. Kwisiphelo siza kufumana iifayile eziyimfuneko zokwenza lo mthetho ulandelayo:
svn checkout https://github.com/xairy/raw-gadget/trunk/raw_gadget
Ngale nto siza kufumana incwadi eneemodyuli esiza kuyenza ngokwenza lo myalelo ulandelayo kwisiphelo sendlela:
cd dummy_hcd make
Kwaye siyaqhubeka nokuzifaka kunye:
./insmod.sh
Ukuba sifuna ukuhlaziya imodyuli, siyenza kunye:
./update.sh
Ungajonga umsebenzi kwi eli khonkco lilandelayo.