OpenVPN Connect a Tasker: ID profilu, nie názov
OpenVPN Connect na Androide 3.3.2 alebo novšom prijíma ID profilu, nie zobrazovaný názov. Prestavajte intent Taskeru a ďalší krok zaviažte na skutočný stav pripojenia.
Automatizácia, ktorá sa mesiace spoľahlivo pripájala, prestane po aktualizácii klienta fungovať, zatiaľ čo ten istý profil sa ručne stále pripája. Tento vzorec ukazuje na riadiaci kontrakt, nie na server VPN. Niekto zmenil, ktorú akciu aplikácia prijíma alebo ktorý identifikátor očakáva, a úloha stále posiela ten starý. Prebudovanie väzby zaberie menej času než opätovná kontrola servera.
Kontrakt patrí jednej aplikácii a jednému rozsahu verzií
OpenVPN Connect a OpenVPN for Android sú rôzne aplikácie a intent, ktorý pomenuje jeden balík, v druhej nič neurobí. Skôr než sa úlohy dotknete, overte, ktorý klient je nainštalovaný a ktorá verzia vytvorila správanie, s ktorým porovnávate. Pri Connekte na Androide 3.3.2 alebo novšom očakáva zdokumentovaná integrácia s Taskerom ID profilu. Staršie návody, ktoré pred zobrazovaný názov stavajú AS alebo PC, opisujú skorší kontrakt, a ich kopírovanie do súčasnej úlohy je obvyklou príčinou toho, že sa nič nedeje.
Táto hranica verzií vysvetľuje väčšinu hlásení, že to predtým fungovalo. Aplikácia funkciu nepokazila; zmenila, čo funkcia prijíma. Berte rozsah verzií ako súčasť kontraktu, proti ktorému píšete.
Odkiaľ identifikátor pochádza
Otvorte zamýšľaný profil v Connekte a skopírujte jeho ID profilu z údajov samotného profilu. Použite túto hodnotu namiesto názvu, ktorý poznáte zo zoznamu, pretože názov je štítok a identifikátor je to, s čím aplikácia porovnáva. Polia pripojenia v akcii Send Intent v Taskeri vyzerajú ako blok nižšie, pričom je nahradený iba identifikátor. Udržujte tiež konzistentnú inštanciu aplikácie osobného alebo pracovného profilu.
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
Kópia v pracovnom profile s rovnakým názvom balíka a iným uloženým profilom intent prijme a nenájde žiadny zodpovedajúci profil, čo vyzerá ako rozbitá úloha, nie ako chyba rozsahu. Ak je profil znovu importovaný alebo nahradený, považujte identifikátor za podozrivý a skontrolujte ho znova. Opätovný import často vytvorí novú položku profilu, aj keď zobrazovaný názov zostane nezmenený. Skontrolujte identifikátor, skôr než zmeníte čokoľvek iné.
Nesúvisiace polia nechajte prázdne, ako je zdokumentované. Polia kategórie, typu MIME a údajov, ktoré sprievodca nevyžaduje, môžu zmeniť, ako Android intent vyrieši, a intent vyriešený inak môže spustiť aplikáciu bez spustenia vášho profilu.
Čo akcia robí a čo necháva na vás
Odoslanie intentu pripojenia žiada aplikáciu, aby spustila profil. Neobchádza autorizáciu, ktorú tento profil vyžaduje. Connect môže stále zobraziť výzvu, a preto zdokumentovaný autonómny prípad predpokladá žiadnu ďalšiu autorizáciu a žiadne uložené prihlasovacie údaje pripojenia. Pokušenie je túto hranicu odstrániť vložením hesiel alebo tajomstiev súkromného kľúča do zdieľaného exportu Taskeru.
Nerobte to. Export úlohy je textový súbor, ktorý ľudia kopírujú do chatových vlákien, a tajomstvá v ňom umiestnené sú odhalené vo chvíli, keď je zdieľaný. Použite vlastné uložené prihlasovacie údaje aplikácie, ak ich profil potrebuje, a nechajte výzvy MFA výzvami. Čokoľvek, čo sa výzve vyhne uložením odpovede, presunulo tajomstvo, namiesto toho aby problém vyriešilo.
Strana odpojenia má svoju vlastnú zdokumentovanú akciu a nie je to trik na klienta:
Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity
Pripájanie k zámerne neexistujúcemu profilu, aby sa vynútilo odpojenie, je druh obchádzania, ktoré sa objavuje v starých vláknach a po aktualizácii ticho zlyhá. Použite výslovnú akciu.
Skontrolujte stav, kým sa spustí ďalší krok
Úspešné spustenie intentu dokazuje, že požiadavka bola doručená, nie že existuje tunel. Ak úloha potom otvorí internú aplikáciu,tento krok potrebuje podmienku pripravenosti s obmedzeným časovým limitom. Okamžitá akcia po odoslaní nakoniec narazí na výzvu.
$ 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
Dotaz resolve potvrdzuje, že balík a aktivita, na ktoré mierite, na danom zariadení existujú, čo vylučuje preklep v poli triedy. Výpis aktivity ukazuje, čo je po spustení vašej úlohy skutočne v popredí, a je to najlacnejší spôsob, ako zistiť, či aplikácia otvorila výzvu namiesto pripojenia. Spusťte oboje po neúspešnej úlohe, namiesto toho aby ste hádali, ktoré pole je nesprávne. Nezhoda v názve triedy spôsobí okamžitú chybu, zatiaľ čo chýbajúci profil nespôsobí žiadnu viditeľnú chybu.
Rozhodnite o vlastníctve odpojenia, kým úlohu vydáte. Skratka, ktorá strhne tunel, na ktorom závisí iná pracovná úloha, vygeneruje tiket podpory, ktorý svojej príčine vôbec nepodobá. Udržiavať dve automatizácie, ktoré obe ovládajú toho istého klienta, vytvára preteky, ktoré z logov neodladíte, takže zastaranú akciu vymažte, hneď ako nová funguje.