It starten fan ’e WireGuard-aktiviteit bringt in app nei foaren, net in bepaald tunnel omheech. In automatisearring dy’t de app iepenet en wachtet, sil yn ’e test slagje en de earste kear mislearje as de telefoan al op it thússkerm sit. WireGuard biedt in stipe paad foar ôfstânsbetsjinning foar neamde tunnels, en it is smeller as de measte resepten suggerearje. De checklist hjirûnder rint dat paad fan machtiging nei waarnommen resultaat.

Kontrolearje oft ôfstânsbetsjinning ynskeakele is

De ôfstânsbetsjinnings-ûntfanger harket net altyd. Yn ’e WireGuard-ynstellingen sit in opsje dy’t ôfstânsbetsjinning fan tunnels ynskeakelet, en oant dy opsje oan stiet, negearret de ûntfanger fersiken ynstee fan lûd te mislearjen. De standert is bewust, want in eksportearre ûntfanger dy’t tunnels omheech bringe koe, soe in feiligensgat wêze op elk apparaat dêr’t de app op ynstalleare is. Skeakelje it yn fia de ynterface en skriuw op datst dat dien hast, want it is in ynstelling dy’t in takomstige brûker útskeakelje kin sûnder te witten wat derfan ôfhong.

De ûntfanger hjirboppe behannelet allinnich neamde UP- en DOWN-fersiken, dus hjir is gjin paad om in tunnel te meitsjen of syn konfiguraasje te bewurkjen. Befêstigje dat de komponint yn ’e ynstalleare build bestiet foardatst derop fertroust: adb shell dumpsys package com.wireguard.android | grep -i receiver listet de oanjûne ûntfangers, en in build sûnder de ôfstânsbetsjinnings-ûntfanger sil nea antwurdzje. As de wurkstream in oar einpunt of in oare peer nedich hat, is dat in oare tunnel en in aparte hânmjittige opset binnen de app.

Kontrolearje hokker machtiging de controller hat

WireGuard beskermet de ûntfanger mei in gefaarlike machtiging, com.wireguard.android.permission.CONTROL_TUNNELS, dy’t de bestjoerende app hawwe moat. In eigen útstjoering kin gjin machtiging meitsje dy’t de stjoerder nea oanjûn hat of nea krigen hat. Dat is de stap dêr’t automatisearringsresepten stil in kapasiteit oannimme dy’t de automatisearring net hat.

Kontrolearje beide kanten foardatst de taak skriuwst. It earste kommando listet de oanjûne machtiging, en it twadde lit sjen oft it pakket fan de controller dy echt hat. In controller dy’t de machtiging yn syn manifest oanjout mar dy’t nea by runtime krigen hat, mislearret noch altyd, en it mislearjen komt as stilte ynstee fan as in dialooch.

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

As de controller de machtiging net hat, brûk dan de yntegraasje dy’t de app echt stipet ynstee fan in útstjoering mei de hân te bouwen. In intent stjoere en sjen dat de oprop slagge is, bewist allinnich dat Android it akseptearre hat, net dat WireGuard derop reagearre hat. Behannelje in net-ferifiearre stjoering as ûnbekend, net as sukses.

Kontrolearje de intent-fjilden tsjin de ynstalleare app

Fjouwer fjilden drage it hiele fersyk, en elk hat in mislearringswize dy’t der krekt itselde útsjocht as de oaren. Krij de aksje, de tunnel-ekstra, it pakket en it doel as ien set goed.

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

De aksje neamt UP of DOWN en neat oars, de ekstra draacht de krekte konfigurearre tunnelnamme, it pakket beheint de levering ta WireGuard, en it doel moat de ûntfanger wêze ynstee fan in aktiviteit. In tunnelnamme mei in typflater jout deselde stilte as in útskeakele ûntfanger, dus lês de namme yn ’e app foardatst konkludearrest dat de automatisearring stikken is. De DOWN-aksje is com.wireguard.android.action.SET_TUNNEL_DOWN mei deselde ekstra en pakket. Stjoer by it testen ien fersyk tagelyk, want twa útstjoeringen dy’t inoar efternei rinne meitsje in tastân dy’t nimmen taskriuwe kin.

Test itselde fersyk fan in shell op it apparaat om de intent fan de automatisearring te skieden. As dat kommando mislearret wylst de Tasker-taak slagget, is it ferskil de machtiging fan ’e stjoerder en net de fjildwearden.

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

Kontrolearje wat de trigger net beslacht

In app-start- of foargrûnbarren kin in ferbining freegje, mar de app hat miskien al in nammesykjen of in earste fersyk besocht foardat dat barren behannele wurdt. De trigger skeakelet as it systeem de tastânferoaring fernimt, dat is neidat de app begûn is mei wurkjen. As de app nea bûten de tunnel kommunisearje mei, is in starttrigger gjin blokkearregel en kin der net ien fan makke wurde troch in fertraging ta te foegjen. Konfigurearje in stipe altyd-aan- of per-app-belied foar it blokkeargedrach, en hâld de trigger allinnich foar gemak.

It blokkeargedrach wennet hielendal earne oars. adb shell settings get global always_on_vpn_app neamt it pakket dat as altyd-aan fêstpind is, en adb shell dumpsys connectivity | grep -i vpn lit de VPN-netwurken sjen dy’t it systeem no folget. Gjin fan beide is iets dêr’t in starttrigger foar yn ’t plak komme kin.

Deselde redenearring jildt oan ’e oare kant fan ’e sesje. De tunnel delhelje om’t ien finster fokus ferlern hat, brekt eftergrûnwurk, autentikaasjehelpers en elke oare app dy’t op ’e ferbining fertroude. Bepaal in bewust ein fan ’e sesje ynstee fan in fokusferoaring, en mij flugge UP- en DOWN-sekwinsjes as de automatisearring konteksten wikselet.

Kontrolearje it resultaat, net it ferstjoeren

In útstjoering dy’t sûnder flater weromkomt, is troch Android akseptearre en net mear. Lês de tunneltastân út ’e app, en lês de klearheid fan ’e wurkstream út wat de folgjende stap echt nedich hat. Dat binne twa ferskillende kontrôles, en it slagjen fan ’e earste betsjut net it twadde.

Lês ek de tastân fan ’e ynterface direkt: adb shell ip -brief addr show tun0 prints de tunnel-ynterface en syn adres, en in ynterface dy’t bestiet sûnder adres is omheech sûnder brûkber te wêzen. Ferifiearje dêrnei de priveetsjinst sels, want in tunnel dy’t omheech is sûnder hânskodding of sûnder rûte mislearret noch altyd de taak dy’t der ta die. In automatisearring dy’t ien neamde ferbining binnen syn echte machtigingsgrins bestjoert, hoecht de ynterface net oan te tikken, gjin root-kommando te draaien of Android syn netwurkbeskermingen te ferswakjen.

Relatearre artikelen