’n Outomatisering wat maande lank betroubaar verbind het, hou op werk ná ’n kliëntopdatering, terwyl dieselfde profiel steeds met die hand verbind. Daardie patroon wys na die beheerkontrak en nie na die VPN-bediener nie. Iemand het verander watter aksie die app aanvaar, of watter identifiseerder dit verwag, en die taak stuur steeds die ou een. Om die binding oor te bou neem minder tyd as om die bediener weer na te gaan.

Die kontrak hoort by een app en een weergawebestek

OpenVPN Connect en OpenVPN for Android is verskillende toepassings, en ’n intent wat die een pakket noem, doen niks in die ander nie. Voordat jy aan die taak raak, bevestig watter kliënt geïnstalleer is en watter weergawe die gedrag veroorsaak het waarmee jy vergelyk. Vir Connect op Android 3.3.2 of nuwer verwag die gedokumenteerde Tasker-integrasie’n profiel-ID. Ouer instruksies wat AS of PC voor ’n vertoonnaam plaas, beskryf ’n vroeëre kontrak, en om dit in ’n huidige taak te kopieer is die gewone rede waarom niks gebeur nie.

Daardie weergawegrens verduidelik die meeste verslae dat dit vroeër gewerk het. Die app het nie die funksie gebreek nie; dit het verander wat die funksie aanvaar. Behandel die weergawebestek as deel van die kontrak waarteen jy skryf.

Waar die identifiseerder vandaan kom

Maak die beoogde profiel in Connect oop en kopieer sy profiel-ID uit die profiel se eie besonderhede. Gebruik daardie waarde eerder as ’n naam wat jy uit die lys herken, want die naam is ’n etiket en die identifiseerder is waarteen die app pas. Die verbindingsvelde van Tasker se Send Intent-aksie lyk soos die blok hieronder, met net die identifiseerder vervang. Hou ook die app-instansie van die persoonlike of werkprofiel konsekwent.

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

’n Kopie in die werkprofiel met dieselfde pakketnaam en ’n ander gestoorde profiel sal die intent aanvaar en geen passende profiel vind nie, wat soos ’n stukkende taak lyk en nie soos ’n omvangsflater nie. Word die profiel heringevoer of vervang, beskou die identifiseerder as verdag en gaan dit weer na. Herinvoer lewer dikwels ’n nuwe profielinskrywing, selfs wanneer die vertoonnaam onveranderd bly. Gaan die identifiseerder na voordat jy enigiets anders verander.

Los onverwante velde leeg soos gedokumenteer. Velde vir kategorie, MIME-tipe en data wat die gids nie vra nie, kan verander hoe Android die intent oplos, en ’n intent wat anders opgelos word, kan die app begin sonder om jou profiel te begin.

Wat die aksie doen, en wat dit aan jou oorlaat

Om die verbindingsintent te stuur vra die app om ’n profiel te begin. Dit omseil nie die magtiging wat daardie profiel vereis nie. Connect kan steeds ’n opdrag wys, en daarom aanvaar die gedokumenteerde outonome geval geen verdere magtiging en geen gestoorde verbindingsbewyse nie. Die versoeking is om daardie grens te verwyder deur wagwoorde of geheime van die privaat sleutel in ’n gedeelde Tasker-uitvoer in te sluit.

Moet dit nie doen nie. ’n Taakuitvoer is ’n tekslêer wat mense in geselsdrade kopieer, en geheime wat daar geplaas word, is onthul die oomblik wanneer dit gedeel word. Gebruik die app se eie gestoorde verbindingsbewyse as die profiel dit nodig het, en laat MFA-opdragte opdragte bly. Enigiets wat die opdrag vermy deur die antwoord te stoor, het die geheim verskuif eerder as om die probleem op te los.

Die ontkoppelingskant het sy eie gedokumenteerde aksie, en dit is nie ’n truuk teen die kliënt nie:

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

Om aan ’n doelbewus nie-bestaande profiel te koppel om ’n ontkoppeling af te dwing, is die soort oplossing wat in ou drade opduik en dan ná ’n opdatering stil misluk. Gebruik die eksplisiete aksie.

Gaan die toestand na voordat die volgende stap loop

’n Suksesvolle intent-bekendstelling bewys dat die versoek afgelewer is, nie dat daar ’n tonnel bestaan nie. As die taak dan ’n interne toepassing oopmaak,het daardie stap ’n gereedheidstoestand met ’n begrensde tydsperk nodig. ’n Onmiddellike aksie ná die stuur sal uiteindelik teen ’n opdrag afvuur.

$ 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

Die resolve-navraag bevestig dat die pakket en aktiwiteit waarna jy mik op daardie toestel bestaan, wat ’n tikfout in die klasveld uitsluit. Die aktiwiteitsdumping wys wat ná jou taak werklik op die voorgrond is, en dit is die goedkoopste manier om te sien of die app ’n opdrag oopgemaak het eerder as om te verbind. Voer albei uit ná ’n mislukte taak eerder as om te raai watter veld verkeerd is. ’n Afwyking in die klasnaam lewer onmiddellik ’n fout, terwyl ’n ontbrekende profiel glad geen sigbare fout lewer nie.

Besluit eienaarskap van die ontkoppeling voordat jy die taak uitstuur. ’n Kortpad wat ’n tonnel afbreek waarvan ’n ander werktaak afhanklik is, sal ’n ondersteuningskaartjie lewer wat niks soos sy oorsaak lyk nie. Om twee outomatiserings te hou wat albei dieselfde kliënt beheer, lewer ’n wedloop wat jy nie uit die logs kan ontfout nie, so verwyder die verouderde aksie sodra die nuwe werk.

Verwante artikels