Bilaabidda hawsha WireGuard waxay app-ka keentaa horteeda, ma kiciso tunnel gaar ah. Otomaatig furta app-ka oo sugaya wuu gudbi doonaa imtixaanka wuuna dhici doonaa markii ugu horreysa ee telefoonku hore ugu fadhiisto shaashadda guriga. WireGuard wuxuu bixiyaa waddo kontorool fog oo la taageeray tunnellada magaca leh, waana ka cidhiidhi badan yahay inta badan cunto karinta ay soo jeediyaan. Liiska hubinta ee hoose wuxuu maraa waddadaas laga bilaabo ogolaanshaha ilaa natiijada la arkay.

Hubi in kontoroolka fog uu shidan yahay

Qaataha kontoroolka fog had iyo jeer ma dhegeysto. Dejinta WireGuard waxay ka mid tahay ikhtiyaar shida kontoroolka fog ee tunnellada, oo inta uusan ikhtiyaarkaas shidanayn qaatahu wuu iska indhatiraa codsiyada halkii uu si cod dheer u dhici lahaa. Qiimaha caadiga ah waa ula kac, sababtoo ah qaate la dhoofiyay oo kicin kara tunnello wuxuu noqon lahaa dalool amni ah qalab kasta oo app-ka lagu rakibay. Ka shid interface-ka oo qor inaad sidaas samaysay, sababtoo ah waa dejinta isticmaale mustaqbalka uu dami karo isagoo aan ogayn waxa ku tiirsanaa.

Qaataha sare wuxuu maareeyaa oo kaliya codsiyada UP iyo DOWN ee magaca leh, marka halkan ma jirto waddo lagu abuuro tunnel ama lagu tafatiro qaabeyntiisa. Ka hor intaadan ku tiirsanaan, xaqiiji in qaybta ay ku jirto dhismaha la rakibay: adb shell dumpsys package com.wireguard.android | grep -i receiver wuxuu taxaa qaatahayaasha la sheegay, dhismaha aan lahayn qaataha kontoroolka fog waligiis ma jawaabi doono. Haddii socodka shaqadu u baahan yahay dhammaad kale ama lammaane kale, taas waa tunnel kale iyo habayn gacan ah oo gaar ah oo ku dhex jirta app-ka.

Hubi ogolaanshaha uu kontoroolaha haysto

WireGuard wuxuu qaataha ku ilaaliyaa ogolaansho khatar ah, com.wireguard.android.permission.CONTROL_TUNNELS, oo ay tahay inuu haysto app-ka kontoroolka. Faafin gaar ah ma abuuri karo ogolaansho uusan diraha waligiis sheegin ama aan waligiis la siin. Tani waa tallaabada ay cunto karinta otomaatigga aamusnaan u qaataan awood aan otomaatiggu lahayn.

Hubi labada dhinac ka hor intaadan qorin hawsha. Amarka koowaad wuxuu taxaa ogolaanshaha la sheegay, tan labaadna waxay muujinaysaa in xidhmada kontoroolaha ay dhab ahaan haysato. Kontoroolle ku sheega ogolaanshaha manifest-kiisa laakiin aan waligiis helin inta fulintu socoto wali wuu dhici doonaa, guuldarraduna waxay timaaddaa aamusnaan halkii ay ahaan lahayd wada hadal.

adb shell pm list permissions -g -d | grep -i control_tunnels
adb shell dumpsys package net.dinglisch.android.taskerm | grep -i control_tunnels

Haddii kontoroolaha uusan haysan ogolaanshaha, isticmaal isku-xirka uu app-ku dhab ahaan taageerayo halkii aad gacan ku dhisi lahayd faafin. Dirista Intent iyo arkista in wicitaanku guuleystay waxay caddaynaysaa oo kaliya in Android uu aqbalay, ma aha in WireGuard uu ku dhaqaaqay. U qaado diris aan la xaqiijin sida wax aan la garanayn, ma aha sida guul.

Isbarbar dhig goobaha Intent-ka iyo app-ka la rakibay

Afar goobood ayaa qaada codsiga oo dhan, mid kastaa wuxuu leeyahay hab guuldarre oo si sax ah u eg kuwa kale. Ficilka, dheeriga tunnel-ka, xidhmada iyo bartilmaameedka si sax ah u hel sida hal shirkad.

Action:  com.wireguard.android.action.SET_TUNNEL_UP
Extra:   tunnel:lab-wg
Package: com.wireguard.android
Target:  Broadcast Receiver

Ficilku wuxuu magacaabaa UP ama DOWN oo wax kale ma aha, dheerigu wuxuu qaadaa magaca tunnel-ka si sax ah loo habeeyay, xidhmadu waxay xaddidaa gaarsiinta WireGuard, bartilmaameedkuna waa inuu noqdaa qaataha ee ma aha hawl. Magac tunnel oo khalad qoraal leh wuxuu abuuraa aamusnaan la mid ah qaate damisan, marka magaca ku akhri app-ka ka hor intaadan go'aansan in otomaatiggu jabay. Ficilka DOWN waa com.wireguard.android.action.SET_TUNNEL_DOWN isla dheeriga iyo xidhmada. Inta lagu jiro imtixaanka hal codsi mar keliya dir, sababtoo ah laba faafin oo is tartamaya waxay abuuraan xaalad aan qofna loo nisbayn karin.

Istitest samee isla codsigaas adigoo ka imanaya shell-ka qalabka si aad Intent-ka uga soocdo otomaatigga. Haddii amarkaas uu dhiciso halka hawsha Tasker ay guuleysato, farqigu waa ogolaanshaha diraha ee ma aha qiimaha goobaha.

adb shell am broadcast -a com.wireguard.android.action.SET_TUNNEL_UP -e tunnel lab-wg --receiver-permission com.wireguard.android.permission.CONTROL_TUNNELS

Hubi waxa kiciyuhu aanu daboolin

Dhacdo bilaabid app ama soo bax hore ayaa codsan kartaa xiriir, laakiin waxaa laga yaabaa in app-ku hore ugu dayday raadinta magac ama codsi bilow ah ka hor inta aan dhacdadaas la maareyn. Kiciyuhu wuxuu shidaa marka nidaamku ogaado isbeddelka xaaladda, taas oo ka dambeysa marka app-ku bilaabay shaqada. Haddii app-ku uusan waligiis la xiriirin karin bannaanka tunnel-ka, kiciyaha bilaabidda ma aha qaanuun xannibaad mana laga dhigi karo mid iyada oo lagu darayo dib u dhac. U habee siyaasad la taageeray oo had iyo jeer shidan ama app kasta habdhaqanka xannibaadda, kiciyahana u hayso raaxo keliya.

Habdhaqanka xannibaaddu wuxuu ku nool yahay meel kale gebi ahaanba. adb shell settings get global always_on_vpn_app wuxuu magacaabaa xidhmada loo dhejiyay had iyo jeer shidan, adb shell dumpsys connectivity | grep -i vpn na wuxuu muujinayaa shabakadaha VPN ee nidaamku hadda la socdo. Midkoodna maaha wax kiciyaha bilaabidda uu beddeli karo.

Isla sababtu waxay khusaysaa dhinaca kale ee fadhiga. Hoos u dhigista tunnel-ka sababtoo ah hal daaqad ayaa lumisay diiradda waxay jebisaa shaqada gadaal, caawiyaha xaqiijinta iyo app kasta oo kale oo ku tiirsanaa xiriirka. Qeex dhammaad fadhi oo ula kac ah halkii ay ahaan lahayd isbeddel diirad, kana fogow taxanaha UP iyo DOWN ee degdegga ah marka otomaatiggu beddelo macnaha.

Hubi natiijada, ma aha dirista

Faafin ku soo noqda iyada oo aan khalad lahayn Android wuu aqbalay oo wax kale ma aha. Ka akhri xaaladda tunnel-ka app-ka, kana akhri diyaargarowga socodka shaqada waxa tallaabada xigta dhab ahaan u baahan tahay. Kuwani waa laba hubin oo kala duwan, gudbinta tan koowaadna macneheedu ma aha tan labaad.

Sidoo kale si toos ah u akhri xaaladda interface-ka: adb shell ip -brief addr show tun0 wuxuu daabacaa interface-ka tunnel-ka iyo cinwaankiisa, interface-ka aan cinwaan lahayn ee jira wuu kor yahay laakiin lama isticmaali karo. Kadib xaqiiji adeegga gaarka ah laftiisa, sababtoo ah tunnel kor u kaca oo aan gacan-qaadid ama waddo lahayn wali wuu ku dhici doonaa hawshii muhiimka ahayd. Otomaatig maamula hal xiriir oo magac leh oo ku dhex jira xuduudaha ogolaanshihiisa dhabta ah uma baahna inuu taabto interface-ka, orod amarka root ama wiiqo ilaalinta shabakadda Android.

Maqaallo la xiriira