Tasker a WireGuard: den richtegen Intent fir een Tunnel schécken
Tasker kann de WireGuard froen, een benannten Tunnel iwwer de Fernsteierungs-Empfänger opzebauen. Den Controller brauch nach ëmmer d’Autorisatioun CONTROL_TUNNELS.
D’WireGuard-Aktivitéit starten bréngt eng App an de Virgrond, an net een bestëmmten Tunnel erop. Eng Automatiséierung, déi d’App opmécht an da waart, besteet am Test a fällt déi éischt Kéier aus, wann den Telefon schonn um Startbildschirm sëtzt. WireGuard bitt en ënnerstëtzte Fernsteierungswee fir benannt Tunnelen, an en ass méi schmuel wéi déi meescht Rezepter suggeréieren. D’Checklëscht hei drënner geet dee Wee vun der Autorisatioun bis zum observéierte Resultat.
Iwwerpréift, ob d’Fernsteierung ageschalt ass
Den Fernsteierungs-Empfänger lauschtert net ëmmer. An den WireGuard-Astellungen ass eng Optioun, déi d’Fernsteierung vun Tunnelen ageschalt, a soulaang déi Optioun aus ass, ignoréiert den Empfänger Ufroen, amplaz haart auszefalen. Den Standard ass bewosst, well een exportéierten Empfänger, deen Tunnelen eropbrénge kéint, eng Sécherheetslaach op all Apparat wier, op deem d’App installéiert ass. Schalt se iwwer d’Interface an a schreif op, datt s du et gemaach hues, well et eng Astellung ass, déi een zukünftegen Notzer ausschalte kann, ouni ze wëssen, wat dovun ofhouch.
Den Empfänger hei uewen behandelt nëmmen benannt UP- an DOWN-Ufroen, dofir gëtt et hei kee Wee fir een Tunnel ze schafen oder seng Konfiguratioun z’änneren. Bestätegt, datt de Komponent am installéierte Build existéiert, ier s dech drop verléis: adb shell dumpsys package com.wireguard.android | grep -i receiver lëscht d’deklaréiert Empfänger op, an e Build ouni de Fernsteierungs-Empfänger äntwert ni. Wann de Workflow een aneren Endpunkt oder een anere Peer brauch, ass dat een aneren Tunnel an eng separat manuell Ariichtung bannen an der App.
Iwwerpréift, wéi eng Autorisatioun den Controller huet
WireGuard schützt den Empfänger mat enger geféierlecher Autorisatioun, com.wireguard.android.permission.CONTROL_TUNNELS, déi déi steierend App muss hunn. Een eegene Broadcast kann keng Autorisatioun fabrizéieren, déi den Absender ni deklaréiert huet oder déi him ni ginn ass. Dëst ass de Schrëtt, wou Automatiséierungsrezepter stëll eng Fäegkeet unhuelen, déi d’Automatiséierung net huet.
Iwwerpréift béid Säiten, ier s d’Aufgab schreifs. Den éischte Kommando lëscht déi deklaréiert Autorisatioun op, an den zweete weist, ob de Pak vum Controller se wierklech huet. E Controller, deen d’Autorisatioun a sengem Manifest deklaréiert, deem se awer zur Lafzäit ni ginn ass, fällt trotzdem aus, an de Feeler kënnt als Stëllt amplaz als Dialog.
adb shell pm list permissions -g -d | grep -i control_tunnels
adb shell dumpsys package net.dinglisch.android.taskerm | grep -i control_tunnels
Wann den Controller d’Autorisatioun net huet, benotz d’Integratioun, déi d’App wierklech ënnerstëtzt, amplaz een Broadcast vun Hand ze bauen. Een Intent schécken an ze gesinn, datt den Opruff gelungen ass, beweist just, datt Android en ugeholl huet, an net, datt WireGuard drop reagéiert huet. Behandel eng net verifizéiert Verschéckung als onbekannt, net als Erfolleg.
Iwwerpréift d’Intent-Felder géint déi installéiert App
Véier Felder droen déi ganz Ufro, an all huet eng Aart Ausfall, déi genau wéi déi aner ausgesäit. Kritt d’Aktioun, den Tunnel-Extra, de Pak an d’Zil richteg als een Set.
Action: com.wireguard.android.action.SET_TUNNEL_UP
Extra: tunnel:lab-wg
Package: com.wireguard.android
Target: Broadcast Receiver
D’Aktioun nennt UP oder DOWN an soss näischt, den Extra dréit den exakt konfiguréierten Tunnelnumm, de Pak begrenzt d’Liwwerung op WireGuard, an d’Zil muss den Empfänger sinn an net eng Aktivitéit. Een Tunnelnumm mat engem Tippfeeler produzéiert déiselwecht Stëllt wéi een deaktivéierten Empfänger, also liest den Numm an der App, ier s ofschléiss, datt d’Automatiséierung futti ass. D’DOWN-Aktioun ass com.wireguard.android.action.SET_TUNNEL_DOWN mat demselwechten Extra a Pak. Schéck beim Testen ëmmer nëmmen eng Ufro, well zwee Broadcasten, déi sech iwwerhuelen, een Zoustand schafen, deen een net zouordne kann.
Test déiselwecht Ufro vun enger Shell um Apparat, fir den Intent vun der Automatiséierung ze trennen. Wann dee Kommando ausfällt, während d’Tasker-Aufgab geléngt, ass den Ënnerscheed d’Autorisatioun vum Absender an net d’Feldwäerter.
adb shell am broadcast -a com.wireguard.android.action.SET_TUNNEL_UP -e tunnel lab-wg --receiver-permission com.wireguard.android.permission.CONTROL_TUNNELS
Iwwerpréift, wat den Ausléiser net deckt
Een App-Start- oder Virgrond-Evenement kann eng Verbindung ufroen, awer d’App huet vläicht schonn eng Nummopsich oder eng éischt Ufro versicht, ier dat Evenement behandelt gëtt. Den Ausléiser feuert, wann de System d’Zoustandsännerung bemierkt, also nodeem d’App ugefaangen huet ze schaffen. Wann d’App ni ausserhalb vum Tunnel däerf kommunizéieren, ass een Start-Ausléiser keng Spärregel a kann net duerch eng Verzögerung zu enger gemaach ginn. Konfiguréier eng ënnerstëtzt Ëmmer-un- oder Pro-App-Politik fir d’Spärverhalen, a behalt den Ausléiser nëmmen aus Kamouditéit.
D’Spärverhalen lieft komplett soss anzwousch. adb shell settings get global always_on_vpn_app nennt de Pak, deen als Ëmmer-un festgepinnt ass, an adb shell dumpsys connectivity | grep -i vpn weist d’VPN-Netzwierker, déi de System just elo suivéiert. Keen vun deenen zwee ka een Start-Ausléiser ersetzen.
Déiselwecht Iwwerleeung gëllt um aneren Enn vun der Sëtzung. Den Tunnel erofhuelen, well een Fënster de Fokus verluer huet, brécht d’Hannergrondsaarbecht, d’Authentifizéierungshëllefer an all aner App, déi sech op d’Verbindung verlooss huet. Definéier een bewosst Enn vun der Sëtzung amplaz engem Fokuswiessel, a vermeid séier UP- an DOWN-Sequenzen, wann d’Automatiséierung Kontexter wiesselt.
Iwwerpréift d’Resultat, net d’Verschécken
Een Broadcast, deen ouni Feeler zréckkënnt, gouf vun Android ugeholl an net méi. Liest den Tunnelzoustand aus der App, a liest d’Bereetwilligkeit vum Workflow aus deem, wat den nächste Schrëtt wierklech brauch. Dat sinn zwou verschidde Kontrollen, an déi éischt ze bestoen heescht net déi zweet.
Liest och den Zoustand vun der Interface direkt: adb shell ip -brief addr show tun0 dréckt d’Tunnel-Interface an hir Adress aus, an eng Interface, déi ouni Adress existéiert, ass uewen ouni notzbar ze sinn. Verifizéier duerno de private Service selwer, well een Tunnel, deen ouni Handshake oder ouni Route uewen ass, nach ëmmer an der Aufgab ausfält, op déi et ukoum. Eng Automatiséierung, déi eng eenzeg benannt Verbindung bannen hire richtege Autorisatiounsgrenzen steiert, muss d’Interface net uklappen, kee Root-Kommando lafen oder dem Android seng Netzwierkschutz ophiewen.