Automatizace, která se měsíce spolehlivě připojovala, přestane po aktualizaci klienta fungovat, zatímco stejný profil se ručně stále připojuje. Tento vzorec ukazuje na řídicí kontrakt, ne na server VPN. Někdo změnil, kterou akci aplikace přijímá nebo který identifikátor očekává, a úloha stále posílá ten starý. Přestavba vazby zabere méně času než opětovná kontrola serveru.

Kontrakt patří jedné aplikaci a jednomu rozsahu verzí

OpenVPN Connect a OpenVPN for Android jsou různé aplikace a intent, který pojmenuje jeden balíček, v druhé nic neudělá. Než se úlohy dotknete, ověřte, který klient je nainstalovaný a která verze vytvořila chování, se kterým porovnáváte. U Connectu na Androidu 3.3.2 nebo novějším očekává zdokumentovaná integrace s Taskerem ID profilu. Starší návody, které před zobrazovaný název staví AS nebo PC, popisují dřívější kontrakt, a jejich kopírování do současné úlohy je obvyklou příčinou toho, že se nic neděje.

Tato hranice verzí vysvětluje většinu hlášení, že to dříve fungovalo. Aplikace funkci nerozbila; změnila, co funkce přijímá. Berte rozsah verzí jako součást kontraktu, proti kterému píšete.

Odkud identifikátor pochází

Otevřete zamýšlený profil v Connectu a zkopírujte jeho ID profilu z údajů samotného profilu. Použijte tuto hodnotu místo názvu, který znáte ze seznamu, protože název je štítek a identifikátor je to, s čím aplikace porovnává. Pole připojení v akci Send Intent v Taskeru vypadají jako blok níže, přičemž je nahrazen pouze identifikátor. Udržujte také konzistentní instanci aplikace osobního nebo 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

Kopie v pracovním profilu se stejným názvem balíčku a jiným uloženým profilem intent přijme a nenajde žádný odpovídající profil, což vypadá jako rozbitá úloha, nikoli jako chyba rozsahu. Pokud je profil znovu importován nebo nahrazen, považujte identifikátor za podezřelý a zkontrolujte ho znovu. Opětovný import často vytvoří novou položku profilu, i když zobrazovaný název zůstane nezměněn. Zkontrolujte identifikátor, než změníte cokoli jiného.

Nesouvisející pole nechte prázdná, jak je zdokumentováno. Pole kategorie, typu MIME a dat, která průvodce nevyžaduje, mohou změnit, jak Android intent vyřeší, a intent vyřešený jinak může spustit aplikaci, aniž by spustil váš profil.

Co akce dělá a co nechává na vás

Odeslání intentu připojení žádá aplikaci, aby spustila profil. Neobchází autorizaci, kterou tento profil vyžaduje. Connect může stále zobrazit výzvu, a proto zdokumentovaný autonomní případ předpokládá žádnou další autorizaci a žádné uložené přihlašovací údaje připojení. Pokušení je tuto hranici odstranit vložením hesel nebo tajemství soukromého klíče do sdíleného exportu Taskeru.

Nedělejte to. Export úlohy je textový soubor, který lidé kopírují do chatovacích vláken, a tajemství v něm umístěná jsou odhalena ve chvíli, kdy je sdílen. Použijte vlastní uložené přihlašovací údaje aplikace, pokud je profil potřebuje, a nechte výzvy MFA výzvami. Cokoli, co se výzvě vyhne uložením odpovědi, přesunulo tajemství, místo aby problém vyřešilo.

Strana odpojení má svou vlastní zdokumentovanou akci a není 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

Připojování k záměrně neexistujícímu profilu, aby se vynutilo odpojení, je druh obejití, které se objevuje ve starých vláknech a po aktualizaci tiše selže. Použijte výslovnou akci.

Zkontrolujte stav, než se spustí další krok

Úspěšné spuštění intentu dokazuje, že požadavek byl doručen, ne že existuje tunel. Pokud úloha poté otevře interní aplikaci,tento krok potřebuje podmínku připravenosti s omezeným časovým limitem. Okamžitá akce po odeslání nakonec 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 potvrzuje, že balíček a aktivita, na které míříte, na daném zařízení existují, což vylučuje překlep v poli třídy. Výpis aktivity ukazuje, co je po spuštění vaší úlohy skutečně v popředí, a je to nejlevnější způsob, jak zjistit, zda aplikace otevřela výzvu místo připojení. Spusťte obojí po neúspěšné úloze, místo abyste hádali, které pole je špatné. Neshoda v názvu třídy způsobí okamžitou chybu, zatímco chybějící profil nezpůsobí žádnou viditelnou chybu.

Rozhodněte o vlastnictví odpojení, než úlohu vydáte. Zkratka, která strhne tunel, na kterém závisí jiná pracovní úloha, vygeneruje tiket podpory, který své příčině vůbec nepodobá. Udržovat dvě automatizace, které obě ovládají stejného klienta, vytváří závod, který z logů neodladíte, takže zastaralou akci smažte, jakmile nová funguje.

Související články