OpenVPN Connect ir Tasker: profilio ID, o ne pavadinimas
„OpenVPN Connect“ „Android“ 3.3.2 ar naujesnėje versijoje priima profilio ID, o ne rodomą pavadinimą. Perstatykite „Tasker“ intentą ir padarykite kitą žingsnį priklausomą nuo tikrosios ryšio būsenos.
Automatizavimas, kuris mėnesius patikimai prisijungdavo, nustoja veikti po kliento atnaujinimo, nors tas pats profilis vis dar prisijungia rankiniu būdu. Šis modelis rodo valdymo sutartį, o ne VPN serverį. Kažkas pakeitė, kokį veiksmą programa priima ar kokio identifikatoriaus laukia, o užduotis vis dar siunčia senąjį. Perkurti susiejimą užima mažiau laiko nei dar kartą tikrinti serverį.
Sutartis priklauso vienai programai ir vienam versijų intervalui
„OpenVPN Connect“ ir „OpenVPN for Android“ yra skirtingos programos, o intentas, įvardijantis vieną paketą, kitoje nieko nedaro. Prieš liesdami užduotį patvirtinkite, kuris klientas įdiegtas ir kuri versija sukūrė elgseną, su kuria lyginate. „Android“ 3.3.2 ar naujesnės „Connect“ versijos atveju dokumentuota „Tasker“ integracija laukia profilio ID. Senesnės instrukcijos, kurios prieš rodomą pavadinimą prideda AS arba PC, aprašo ankstesnę sutartį, o jų nukopinimas į dabartinę užduotį yra įprasta priežastis, kodėl nieko nevyksta.
Ši versijų riba paaiškina daugumą pranešimų, kad anksčiau veikė. Programa nesugadino funkcijos; ji pakeitė, ką funkcija priima. Traktuokite versijų intervalą kaip sutarties, pagal kurią rašote, dalį.
Iš kur atsiranda identifikatorius
Atidarykite norimą profilį „Connect“ programoje ir nukopijuokite jo profilio ID iš paties profilio informacijos. Naudokite šią reikšmę, o ne iš sąrašo atpažįstamą pavadinimą, nes pavadinimas yra etiketė, o identifikatorius yra tai, su kuo programa lygina. „Tasker“ veiksmo Send Intent ryšio laukai atrodo kaip toliau pateiktas blokas, pakeistas tik identifikatorius. Išlaikykite nuoseklią asmeninio arba darbo profilio programos kopiją.
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
Darbo profilio kopija su tuo pačiu paketo pavadinimu ir kitu išsaugotu profiliu priims intentą ir neras jokio atitinkančio profilio, o tai atrodo kaip sugadinta užduotis, o ne apimties klaida. Jei profilis importuojamas iš naujo ar pakeičiamas, laikykite identifikatorių įtartinu ir patikrinkite jį dar kartą. Pakartotinis importas dažnai sukuria naują profilio įrašą, net jei rodomas pavadinimas nesikeičia. Patikrinkite identifikatorių prieš keisdami ką nors kita.
Palikite nesusijusius laukus tuščius, kaip dokumentuota. Kategorijos, MIME tipo ir duomenų laukai, kurių vadovas neprašo, gali pakeisti, kaip „Android“ išsprendžia intentą, o kitaip išspręstas intentas gali paleisti programą nepaleidęs jūsų profilio.
Ką veikia veiksmas ir ką jis palieka jums
Ryšio intento siuntimas prašo programos paleisti profilį. Jis neapeina leidimo, kurio reikalauja tas profilis. „Connect“ vis tiek gali rodyti raginimą, todėl dokumentuotas autonominis atvejis daro prielaidą, kad nėra papildomo leidimo ir nėra išsaugotų ryšio kredencialų. Pagunda yra pašalinti šią ribą įterpiant slaptažodžius ar privataus rakto paslaptis į bendrinamą „Tasker“ eksportą.
Nedarykite to. Užduoties eksportas yra tekstinis failas, kurį žmonės nukopijuoja į pokalbių gijas, o ten įdėtos paslaptys atskleidžiamos tą akimirką, kai jis bendrinamas. Naudokite pačios programos išsaugotus ryšio kredencialus, jei profiliui jų reikia, ir leiskite MFA raginimams likti raginimais. Viskas, kas išvengia raginimo išsaugant atsakymą, perkėlė paslaptį, o ne išsprendė problemą.
Atjungimo pusė turi savo dokumentuotą veiksmą, ir tai nėra klientui skirtas triukas:
Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity
Prisijungimas prie tyčia neegzistuojančio profilio siekiant priverstinio atjungimo yra tas apeigos būdas, kuris pasirodo senose gijose ir po atnaujinimo tyliai nepavyksta. Naudokite aiškų veiksmą.
Patikrinkite būseną prieš paleidžiant kitą žingsnį
Sėkmingas intento paleidimas įrodo, kad užklausa buvo pristatyta, o ne kad tunelis egzistuoja. Jei užduotis tada atidaro vidinę programą,tam žingsniui reikia pasirengimo sąlygos su ribotu laiko limitu. Iškart po siuntimo atliktas veiksmas galiausiai atsitrenks į raginimą.
$ 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 užklausa patvirtina, kad paketas ir veikla, į kuriuos taikote, egzistuoja tame įrenginyje, o tai pašalina rašybos klaidą klasės lauke. Veiklos išklotinė parodo, kas iš tikrųjų yra priekiniame plane po jūsų užduoties paleidimo, ir tai pigiausias būdas pamatyti, ar programa atidarė raginimą, o ne prisijungė. Paleiskite abu po nepavykusios užduoties, o ne spėliokite, kuris laukas neteisingas. Klasės pavadinimo neatitikimas iš karto sukelia klaidą, o trūkstamas profilis nesukelia jokios matomos klaidos.
Nuspręskite atjungimo nuosavybę prieš išleisdami užduotį. Spartusis kelias, kuris nugriauna tunelį, nuo kurio priklauso kita darbo užduotis, sukurs palaikymo bilietą, kuris visiškai neprimena savo priežasties. Laikyti dvi automatizavimo priemones, kurios abi valdo tą patį klientą, sukuria lenktynes, kurių negalite derinti iš žurnalų, todėl ištrinkite pasenusį veiksmą, kai naujasis veikia.