En automatisering, der forbandt pålideligt i månedsvis, holder op med at virke efter en klientopdatering, mens den samme profil stadig forbinder manuelt. Det mønster peger på styringskontrakten og ikke på VPN-serveren. Nogen har ændret, hvilken handling appen accepterer, eller hvilken identifikator den forventer, og opgaven sender stadig den gamle. Det tager mindre tid at genopbygge bindingen end at kontrollere serveren igen.

Kontrakten tilhører én app og ét versionsinterval

OpenVPN Connect og OpenVPN for Android er forskellige programmer, og et intent, der navngiver den ene pakke, gør intet i den anden. Før du rører opgaven, skal du bekræfte, hvilken klient der er installeret, og hvilken version der gav den adfærd, du sammenligner med. For Connect på Android 3.3.2 eller nyere forventer den dokumenterede Tasker-integration et profil-ID. Ældre instruktioner, der sætter AS eller PC foran et visningsnavn, beskriver en tidligere kontrakt, og at kopiere dem ind i en aktuel opgave er den sædvanlige grund til, at intet sker.

Den versionsgrænse forklarer de fleste rapporter om, at det virkede før. Appen brød ikke funktionen; den ændrede, hvad funktionen accepterer. Behandl versionsintervallet som en del af den kontrakt, du skriver imod.

Hvor identifikatoren kommer fra

Åbn den ønskede profil i Connect, og kopiér dens profil-ID fra profilens egne detaljer. Brug den værdi i stedet for et navn, du kender fra listen, fordi navnet er en etiket, og identifikatoren er det, appen matcher imod. Forbindelsesfelterne i Taskers Send Intent-handling ligner blokken nedenfor, hvor kun identifikatoren er udskiftet. Hold også app-instansen for den personlige eller arbejdsprofilen konsistent.

Action: net.openvpn.openvpn.CONNECT
Extra: net.openvpn.openvpn.AUTOSTART_PROFILE_ID:'PROFILE_ID'
Extra: net.openvpn.openvpn.AUTOCONNECT:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity

En kopi i arbejdsprofilen med samme pakkenavn og en anden gemt profil accepterer intentet og finder ingen matchende profil, hvilket ligner en ødelagt opgave og ikke en fejl i omfanget. Bliver profilen genimporteret eller erstattet, så betragt identifikatoren som mistænkelig og kontrollér den igen. Genimport giver ofte en ny profilpost, selv når visningsnavnet er uændret. Kontrollér identifikatoren, før du ændrer noget andet.

Lad ikke-relaterede felter stå tomme som dokumenteret. Felter for kategori, MIME-type og data, som guiden ikke beder om, kan ændre, hvordan Android løser intentet, og et intent, der løses anderledes, kan starte appen uden at starte din profil.

Hvad handlingen gør, og hvad den overlader til dig

At sende forbindelsesintentet beder appen om at starte en profil. Det omgår ikke den autorisation, som profilen kræver. Connect kan stadig vise en prompt, og derfor forudsætter det dokumenterede autonome tilfælde ingen yderligere autorisation og ingen gemte forbindelsesoplysninger. Fristelsen er at fjerne den grænse ved at indlejre adgangskoder eller private nøglehemmeligheder i en delt Tasker-eksport.

Det må du ikke gøre. En opgaveeksport er en tekstfil, som folk kopierer ind i chattråde, og hemmeligheder, der placeres der, er afsløret i det øjeblik, den deles. Brug appens egne gemte forbindelsesoplysninger, hvis profilen har brug for dem, og lad MFA-prompter forblive prompter. Alt, der undgår prompten ved at gemme svaret, har flyttet hemmeligheden i stedet for at løse problemet.

Afkoblingssiden har sin egen dokumenterede handling, og det er ikke et trick mod klienten:

Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity

At forbinde til en bevidst ikke-eksisterende profil for at fremtvinge en afkobling er den slags workaround, der dukker op i gamle tråde og derefter fejler lydløst efter en opdatering. Brug den eksplicitte handling.

Kontrollér tilstanden, før næste trin kører

Et vellykket intent-start beviser, at anmodningen blev leveret, ikke at der findes en tunnel. Hvis opgaven derefter åbner et internt program,kræver det trin en parathedsbetingelse med en afgrænset tidsgrænse. En øjeblikkelig handling efter afsendelsen vil før eller siden ramme en prompt.

$ adb shell cmd package resolve-activity --brief net.openvpn.openvpn
net.openvpn.openvpn/net.openvpn.unified.MainActivity
$ adb shell dumpsys activity activities | grep -i openvpn

Resolve-forespørgslen bekræfter, at den pakke og aktivitet, du sigter efter, findes på den enhed, hvilket udelukker en tastefejl i klassefeltet. Aktivitetsdumpet viser, hvad der faktisk er i forgrunden, efter din opgave kører, og det er den billigste måde at se, om appen åbnede en prompt i stedet for at forbinde. Kør begge efter en mislykket opgave i stedet for at gætte, hvilket felt der er forkert. En afvigelse i klassenavnet giver en øjeblikkelig fejl, mens en manglende profil slet ikke giver nogen synlig fejl.

Beslut ejerskabet af afkoblingen, før du sender opgaven ud. En genvej, der river en tunnel ned, som en anden arbejdsopgave afhænger af, giver en supportanmodning, der slet ikke ligner sin årsag. At beholde to automatiseringer, der begge styrer den samme klient, giver et kapløb, du ikke kan fejlfinde ud fra loggene, så slet den forældede handling, når den nye virker.

Relaterede artikler