Kuanzisha shughuli ya WireGuard huleta programu mbele, haiinui handaki maalum. Uendeshaji otomatiki unaofungua programu na kusubiri utapita kwenye jaribio na utashindwa mara ya kwanza simu ikiwa tayari iko kwenye skrini ya mwanzo. WireGuard hutoa njia ya udhibiti wa mbali inayotumika kwa handaki zenye majina, na ni nyembamba kuliko inavyodokezwa na mapishi mengi. Orodha ya ukaguzi hapa chini inapita njia hiyo kutoka ruhusa hadi matokeo yaliyozingatiwa.

Angalia kama udhibiti wa mbali umewashwa

Kipokeaji cha udhibiti wa mbali hakisikilizi kila wakati. Mipangilio ya WireGuard ina chaguo linalowasha udhibiti wa mbali wa handaki, na hadi chaguo hilo liwashwe kipokeaji hupuuza maombi badala ya kushindwa kwa sauti kubwa. Thamani ya chaguo-msingi ni ya kukusudia, kwa sababu kipokeaji kilichosafirishwa ambacho kingeweza kuinua handaki kingekuwa shimo la usalama kwenye kila kifaa kilichosakinisha programu. Kiwashwe kupitia kiolesura na uandike kwamba umefanya hivyo, kwa sababu ni mpangilio ambao mtumiaji wa baadaye anaweza kuuzima bila kujua kilichokuwa kinategemea.

Kipokeaji kilicho juu kinashughulikia maombi ya UP na DOWN yenye jina pekee, kwa hiyo hapa hakuna njia ya kuunda handaki au kuhariri usanidi wake. Kabla ya kukitegemea, thibitisha kwamba sehemu hiyo iko kwenye toleo lililosakinishwa: adb shell dumpsys package com.wireguard.android | grep -i receiver huorodhesha vipokeaji vilivyotangazwa, na toleo lisilo na kipokeaji cha udhibiti wa mbali halitajibu kamwe. Ikiwa mtiririko wa kazi unahitaji kituo kingine cha mwisho au mwenzake mwingine, hiyo ni handaki nyingine na usanidi tofauti wa kwa mkono ndani ya programu.

Angalia ruhusa aliyo nayo kidhibiti

WireGuard hulinda kipokeaji kwa ruhusa hatari, com.wireguard.android.permission.CONTROL_TUNNELS, ambayo programu inayodhibiti lazima iwe nayo. Matangazo ya kibinafsi hayawezi kutengeneza ruhusa ambayo mtumaji hakuwahi kuitangaza au hakuwahi kupewa. Hili ni hatua ambapo mapishi ya uendeshaji otomatiki huchukulia kimyakimya uwezo ambao uendeshaji otomatiki hauna.

Angalia pande zote mbili kabla ya kuandika kazi. Amri ya kwanza huorodhesha ruhusa iliyotangazwa, na ya pili inaonyesha kama kifurushi cha kidhibiti kinayo kweli. Kidhibiti kinachotangaza ruhusa kwenye manifest yake lakini hakikupewa wakati wa utekelezaji bado kinashindwa, na kushindwa huja kama ukimya badala ya mazungumzo.

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

Ikiwa kidhibiti hakina ruhusa, tumia muunganisho ambao programu inaunga mkono kweli badala ya kujenga matangazo kwa mkono. Kutuma Intent na kuona kwamba wito umefanikiwa kunathibitisha tu kwamba Android ilikubali, si kwamba WireGuard ilitenda kulingana nayo. Chukulia utumaji ambao haujathibitishwa kama haujulikani, si kama mafanikio.

Linganisha sehemu za Intent na programu iliyosakinishwa

Sehemu nne hubeba ombi lote, na kila moja ina njia ya kushindwa inayofanana kabisa na nyingine. Pata kitendo, nyongeza ya handaki, kifurushi na lengo kwa usahihi kama seti moja.

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

Kitendo hutaja UP au DOWN na hakuna kingine, nyongeza hubeba jina kamili la handaki lililowekwa, kifurushi huzuia uwasilishaji kwa WireGuard, na lengo lazima liwe kipokeaji na si shughuli. Jina la handaki lenye makosa ya kuandika hutoa ukimya sawa na kipokeaji kilichozimwa, kwa hiyo soma jina kwenye programu kabla ya kuhitimisha kwamba uendeshaji otomatiki umevunjika. Kitendo cha DOWN ni com.wireguard.android.action.SET_TUNNEL_DOWN na nyongeza na kifurushi sawa. Wakati wa kujaribu tuma ombi moja kwa wakati mmoja, kwa sababu matangazo mawili yanayoshindana huunda hali ambayo hakuna mtu anayeweza kuihusisha.

Jaribu ombi lilelile kutoka kwenye shell kwenye kifaa ili kutenganisha Intent na uendeshaji otomatiki. Ikiwa amri hiyo inashindwa wakati kazi ya Tasker inafanikiwa, tofauti ni ruhusa ya mtumaji na si thamani za sehemu.

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

Angalia kile kichocheo kisichoshughulikia

Tukio la kuanzisha programu au kuja mbele linaweza kuomba muunganisho, lakini programu inaweza kuwa tayari ilijaribu utafutaji wa jina au ombi la awali kabla ya tukio hilo kushughulikiwa. Kichocheo hufanya kazi wakati mfumo unagundua mabadiliko ya hali, yaani baada ya programu kuanza kufanya kazi. Ikiwa programu haipaswi kuwasiliana kamwe nje ya handaki, kichocheo cha kuanzisha si kanuni ya kuzuia na hakiwezi kufanywa hivyo kwa kuongeza ucheleweshaji. Sanidi sera inayotumika ya kila wakati-imewashwa au kwa kila programu kwa tabia ya kuzuia, na uweke kichocheo kwa urahisi tu.

Tabia ya kuzuia inaishi mahali pengine kabisa. adb shell settings get global always_on_vpn_app hutaja kifurushi kilichobandikwa kama kila wakati-imewashwa, na adb shell dumpsys connectivity | grep -i vpn huonyesha mitandao ya VPN ambayo mfumo unafuatilia sasa. Hakuna kimoja cha hivyo ambacho kichocheo cha kuanzisha kinaweza kukibadilisha.

Hoja hiyo hiyo inatumika upande wa pili wa kipindi. Kushusha handaki kwa sababu dirisha moja lilipoteza umakini huvunja kazi ya nyuma, wasaidizi wa uthibitishaji na programu nyingine yoyote iliyokuwa inategemea muunganisho. Bainisha mwisho wa kipindi kwa kukusudia badala ya mabadiliko ya umakini, na epuka mifuatano ya haraka ya UP na DOWN wakati uendeshaji otomatiki unabadilisha muktadha.

Angalia matokeo, si utumaji

Matangazo yanayorudi bila hitilafu yamekubaliwa na Android na si zaidi. Soma hali ya handaki kutoka kwenye programu, na soma utayari wa mtiririko wa kazi kutoka kile ambacho hatua inayofuata inahitaji kweli. Hizi ni ukaguzi mbili tofauti, na kufaulu la kwanza hakumaanishi la pili.

Soma pia hali ya kiolesura moja kwa moja: adb shell ip -brief addr show tun0 huchapisha kiolesura cha handaki na anwani yake, na kiolesura kinachokuwepo bila anwani kiko juu bila kuwa kinatumika. Kisha thibitisha huduma ya kibinafsi yenyewe, kwa sababu handaki iliyo juu bila makubaliano ya mkono au bila njia bado inashindwa katika kazi iliyokuwa muhimu. Uendeshaji otomatiki unaodhibiti muunganisho mmoja wenye jina ndani ya mipaka yake halisi ya ruhusa hauhitaji kugusa kiolesura, kuendesha amri ya root au kudhoofisha ulinzi wa mtandao wa Android.

Makala zinazohusiana