OpenVPN Connect i Tasker: ID profila, ne ime
OpenVPN Connect na Androidu 3.3.2 ili novijem prima ID profila, a ne prikazano ime. Ponovno izgradite Tasker intent i vežite sljedeći korak na stvarno stanje veze.
Automatizacija koja se mjesecima pouzdano povezivala prestaje raditi nakon ažuriranja klijenta, dok se isti profil i dalje povezuje ručno. Taj obrazac upućuje na upravljački ugovor, a ne na VPN server. Neko je promijenio koju radnju aplikacija prihvata ili koji identifikator očekuje, a zadatak i dalje šalje stari. Ponovna izgradnja veze traje kraće od ponovne provjere servera.
Ugovor pripada jednoj aplikaciji i jednom rasponu verzija
OpenVPN Connect i OpenVPN for Android različite su aplikacije, a intent koji imenuje jedan paket ne radi ništa u drugoj. Prije nego što dirnete zadatak, potvrdite koji je klijent instaliran i koja je verzija proizvela ponašanje s kojim upoređujete. Za Connect na Androidu 3.3.2 ili novijem dokumentirana Tasker integracija očekuje ID profila. Starija uputstva koja ispred prikazanog imena stavljaju AS ili PC opisuju raniji ugovor, a njihovo kopiranje u trenutni zadatak uobičajen je razlog zašto se ništa ne događa.
Ta granica verzije objašnjava većinu izvještaja da je prije radilo. Aplikacija nije pokvarila funkciju; promijenila je šta funkcija prihvata. Tretirajte raspon verzija kao dio ugovora prema kojem pišete.
Odakle dolazi identifikator
Otvorite željeni profil u Connectu i kopirajte njegov ID profila iz detalja samog profila. Koristite tu vrijednost umjesto imena koje prepoznajete s liste, jer je ime oznaka, a identifikator je ono s čime aplikacija upoređuje. Polja veze u radnji Send Intent u Taskeru izgledaju kao blok ispod, pri čemu je zamijenjen samo identifikator. Održavajte dosljednom i instancu aplikacije ličnog ili radnog profila.
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
Kopija u radnom profilu s istim imenom paketa i drugim sačuvanim profilom prihvatit će intent i neće naći nijedan odgovarajući profil, što izgleda kao pokvaren zadatak, a ne kao greška opsega. Ako se profil ponovo uveze ili zamijeni, tretirajte identifikator kao sumnjiv i provjerite ga ponovo. Ponovni uvoz često stvara novi unos profila čak i kada prikazano ime ostane nepromijenjeno. Provjerite identifikator prije nego što promijenite bilo šta drugo.
Ostavite nepovezana polja prazna, kako je dokumentirano. Polja kategorije, MIME tipa i podataka koja vodič ne traži mogu promijeniti kako Android rješava intent, a intent koji se rješava drugačije može pokrenuti aplikaciju bez pokretanja vašeg profila.
Šta radnja radi i šta vam ostavlja
Slanje intenta za povezivanje traži od aplikacije da pokrene profil. On ne zaobilazi autorizaciju koju taj profil zahtijeva. Connect može i dalje prikazati upit, zbog čega dokumentirani autonomni slučaj pretpostavlja da nema dodatne autorizacije ni sačuvanih podataka za povezivanje. Iskušenje je ukloniti tu granicu ugrađivanjem lozinki ili tajni privatnog ključa u dijeljeni Tasker izvoz.
Ne radite to. Izvoz zadatka je tekstualna datoteka koju ljudi kopiraju u chat niti, a tajne stavljene tamo otkrivaju se u trenutku kada se podijeli. Koristite vlastite sačuvane podatke za povezivanje aplikacije ako su profilu potrebni i pustite da MFA upiti ostanu upiti. Sve što izbjegne upit čuvanjem odgovora premjestilo je tajnu umjesto da riješi problem.
Strana prekidanja ima svoju dokumentiranu radnju i to nije trik na klijenta:
Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity
Povezivanje s namjerno nepostojećim profilom da bi se prisililo prekidanje je vrsta zaobilaznog rješenja koje se pojavljuje u starim nitima i zatim nakon ažuriranja tiho ne uspije. Koristite izričitu radnju.
Provjerite stanje prije nego što se sljedeći korak pokrene
Uspješno pokretanje intenta dokazuje da je zahtjev dostavljen, a ne da tunel postoji. Ako zadatak zatim otvori internu aplikaciju,taj korak treba uvjet spremnosti s ograničenim vremenskim rokom. Trenutna radnja nakon slanja na kraju će udariti u upit.
$ 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
Upit resolve potvrđuje da paket i aktivnost na koje ciljate postoje na tom uređaju, što isključuje grešku u kucanju u polju klase. Ispis aktivnosti pokazuje šta je nakon pokretanja vašeg zadatka zaista u prvom planu, i to je najjeftiniji način da vidite je li aplikacija otvorila upit umjesto da se poveže. Pokrenite oboje nakon neuspjelog zadatka umjesto da pogađate koje je polje pogrešno. Nepodudarnost u nazivu klase proizvodi trenutnu grešku, dok profil koji nedostaje ne proizvodi nikakvu vidljivu grešku.
Odlučite o vlasništvu prekidanja prije nego što isporučite zadatak. Prečica koja ruši tunel o kojem ovisi drugi radni zadatak stvorit će zahtjev za podršku koji nimalo ne sliči svom uzroku. Držanje dvije automatizacije koje obje kontroliraju istog klijenta stvara utrku koju ne možete otkloniti iz zapisa, pa izbrišite zastarjelu radnju kada nova proradi.