OpenVPN Connect at Tasker: ID ng profile, hindi ang pangalan
Ang OpenVPN Connect sa Android 3.3.2 o mas bago ay tumatanggap ng ID ng profile, hindi ng ipinapakitang pangalan. Itayo muli ang intent ng Tasker at gawing nakadepende ang susunod na hakbang sa tunay na estado ng koneksyon.
Ang automation na matatag na kumokonekta nang ilang buwan ay tumitigil gumana pagkatapos ng update ng client, habang ang parehong profile ay kumokonekta pa rin nang manu-mano. Ang pattern na iyon ay tumuturo sa kontrata ng kontrol at hindi sa server ng VPN. May nagbago kung aling aksyon ang tinatanggap ng app, o kung aling identifier ang inaasahan nito, at ang gawain ay nagpapadala pa rin ng luma. Ang muling pagbuo ng bigkis ay kumukuha ng mas kaunting oras kaysa sa muling pagsuri ng server.
Ang kontrata ay pagmamay-ari ng isang app at isang saklaw ng bersyon
Ang OpenVPN Connect at OpenVPN for Android ay magkaibang aplikasyon, at ang intent na nagbabanggit ng isang package ay walang ginagawa sa isa. Bago hawakan ang gawain, tiyakin kung aling client ang naka-install at aling bersyon ang gumawa ng gawi na inihahambing mo. Para sa Connect sa Android 3.3.2 o mas bago, ang dokumentadong integrasyon sa Tasker ay umaasa ng ID ng profile. Ang mas lumang mga tagubilin na naglalagay ng AS o PC sa unahan ng ipinapakitang pangalan ay naglalarawan ng dating kontrata, at ang pagkopya ng mga iyon sa kasalukuyang gawain ang karaniwang dahilan kung bakit walang nangyayari.
Ang hangganan ng bersyon na iyon ang nagpapaliwanag sa karamihan ng ulat na dati itong gumagana. Hindi sinira ng app ang tampok; binago nito kung ano ang tinatanggap ng tampok. Ituring ang saklaw ng bersyon bilang bahagi ng kontratang isinusulat mo.
Saan nagmumula ang identifier
Buksan ang gustong profile sa loob ng Connect at kopyahin ang ID ng profile nito mula sa mga detalye ng profile mismo. Gamitin ang halagang iyon sa halip na pangalang nakikilala mo mula sa listahan, dahil ang pangalan ay isang label at ang identifier ang inihahambing ng app. Ang mga field ng koneksyon sa aksyong Send Intent sa Tasker ay mukhang ang bloke sa ibaba, na ang identifier lamang ang pinalitan. Panatilihin ding pare-pareho ang instance ng app ng personal o work profile.
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
Ang kopya sa work profile na may parehong pangalan ng package at ibang nakaimbak na profile ay tatanggapin ang intent at walang makitang tugmang profile, na mukhang sirang gawain at hindi pagkakamali sa saklaw. Kung ang profile ay muling inaangkat o pinapalitan, ituring ang identifier na kahina-hinala at suriin itong muli. Ang muling pag-angkla ay kadalasang gumagawa ng bagong entry ng profile kahit na ang ipinapakitang pangalan ay hindi nagbabago. Suriin ang identifier bago mo baguhin ang anupamang bagay.
Iwanang blangko ang mga field na walang kaugnayan gaya ng dokumentado. Ang mga field ng kategorya, uri ng MIME at data na hindi hinihingi ng gabay ay maaaring magbago kung paano nilulutas ng Android ang intent, at ang intent na nalutas nang iba ay maaaring maglunsad ng app nang hindi sinisimulan ang iyong profile.
Ano ang ginagawa ng aksyon at ano ang iniiwan nito sa iyo
Ang pagpapadala ng intent ng koneksyon ay humihiling sa app na simulan ang isang profile. Hindi nito nilalampasan ang awtorisasyong kailangan ng profile na iyon. Maaaring magpakita pa rin ng prompt ang Connect, kaya ipinapalagay ng dokumentadong autonomous na kaso na walang karagdagang awtorisasyon at walang naka-save na kredensyal ng koneksyon. Ang tukso ay alisin ang hangganang iyon sa pamamagitan ng paglalagay ng mga password o lihim ng pribadong key sa isang ibinahaging export ng Tasker.
Huwag gawin iyon. Ang export ng gawain ay isang text file na kinokopya ng mga tao sa mga thread ng chat, at ang mga lihim na inilagay doon ay nabubunyag sa sandaling ibahagi ito. Gamitin ang sariling naka-save na kredensyal ng koneksyon ng app kung kailangan ito ng profile, at hayaang manatiling prompt ang mga prompt ng MFA. Anumang bagay na umiiwas sa prompt sa pamamagitan ng pag-iimbak ng sagot ay inilipat ang lihim sa halip na lutasin ang problema.
Ang panig ng pagdiskonekta ay may sariling dokumentadong aksyon, at hindi ito pakulo laban sa client:
Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity
Ang kumonekta sa sadyang hindi umiiral na profile upang pilitin ang pagdiskonekta ay ang uri ng pansamantalang solusyon na lumilitaw sa lumang mga thread at pagkatapos ay tahimik na nabibigo pagkatapos ng update. Gamitin ang tahasang aksyon.
Suriin ang estado bago tumakbo ang susunod na hakbang
Ang matagumpay na paglunsad ng intent ay nagpapatunay na naihatid ang kahilingan, hindi na may tunnel. Kung bubuksan ng gawain ang isang panloob na aplikasyon,kailangan ng hakbang na iyon ng kundisyon ng kahandaan na may takdang timeout. Ang agad na aksyon pagkatapos ng pagpapadala ay kalaunan ay tatama sa isang prompt.
$ 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
Kinukumpirma ng query na resolve na ang package at aktibidad na iyong pinupuntirya ay umiiral sa device na iyon, na nag-aalis ng typo sa field ng klase. Ipinapakita ng dump ng aktibidad kung ano talaga ang nasa harapan pagkatapos tumakbo ang iyong gawain, at ito ang pinakamurang paraan upang makita kung nagbukas ng prompt ang app sa halip na kumonekta. Patakbuhin ang pareho pagkatapos ng nabigong gawain sa halip na hulaan kung aling field ang mali. Ang pagkakaiba sa pangalan ng klase ay gumagawa ng agad na error, samantalang ang nawawalang profile ay walang ginagawang nakikitang error.
Magpasya sa pagmamay-ari ng pagdiskonekta bago mo ipadala ang gawain. Ang shortcut na nagbabagsak ng tunnel na umaasa rito ang isa pang gawain sa trabaho ay bubuo ng tiket sa suporta na hindi talaga kamukha ng sanhi nito. Ang pagpapanatili ng dalawang automation na parehong kumokontrol sa parehong client ay lumilikha ng karera na hindi mo ma-debug mula sa mga log, kaya tanggalin ang lipas na aksyon kapag gumana na ang bago.