Një automatizim që lidhej me besueshmëri për muaj të tërë ndalon së punuari pas një përditësimi të klientit, ndërsa i njëjti profil vazhdon të lidhet me dorë. Ai model tregon për kontratën e kontrollit dhe jo për serverin VPN. Dikush ndryshoi cilën veprim pranon aplikacioni, ose cilin identifikues pret, dhe detyra vazhdon të dërgojë të vjetrin. Rindërtimi i lidhjes kërkon më pak kohë sesa rikontrollimi i serverit.

Kontrata i përket një aplikacioni dhe një intervali versionesh

OpenVPN Connect dhe OpenVPN for Android janë aplikacione të ndryshme, dhe një intent që emërton njërin paketë nuk bën asgjë në tjetrin. Përpara se të prekësh detyrën, konfirmo cili klient është i instaluar dhe cili version prodhoi sjelljen me të cilën po krahason. Për Connect në Android 3.3.2 ose më të re,integrimi i dokumentuar me Tasker pret një ID profili. Udhëzimet më të vjetra që vendosin AS ose PC përpara një emri shfaqjeje përshkruajnë një kontratë të mëparshme, dhe kopjimi i tyre në një detyrë aktuale është arsyeja e zakonshme që nuk ndodh asgjë.

Ai kufi versioni shpjegon shumicën e raporteve se më parë funksiononte. Aplikacioni nuk e prishi funksionin; ndryshoi atë që funksioni pranon. Trajto intervalin e versioneve si pjesë të kontratës kundër të cilës shkruan.

Nga vjen identifikuesi

Hap profilin e synuar brenda Connect dhe kopjo ID-në e tij nga detajet e vetë profilit. Përdor atë vlerë në vend të një emri që e njeh nga lista, sepse emri është etiketë dhe identifikuesi është ai me të cilin përputhet aplikacioni. Fushat e lidhjes të veprimit Send Intent në Tasker duken si blloku më poshtë, me vetëm identifikuesin e zëvendësuar. Mbaj konsistente edhe shembullin e aplikacionit të profilit personal ose të punës.

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

Një kopje në profilin e punës me të njëjtin emër pakete dhe një profil tjetër të ruajtur do ta pranojë intent-in dhe nuk do të gjejë asnjë profil përputhës, gjë që duket si detyrë e prishur dhe jo si gabim shtrirjeje. Nëse profili riimportohet ose zëvendësohet, trajto identifikuesin si të dyshimtë dhe kontrolloje përsëri. Riimportimi prodhon shpesh një zë të ri profili edhe kur emri i shfaqjes mbetet i pandryshuar. Kontrollo identifikuesin përpara se të ndryshosh çdo gjë tjetër.

Lër fushat e palidhura bosh siç dokumentohet. Fushat e kategorisë, llojit MIME dhe të dhënave që udhëzuesi nuk i kërkon mund të ndryshojnë mënyrën se si Android e zgjidh intent-in, dhe një intent që zgjidhet ndryshe mund ta hapë aplikacionin pa nisur profilin tënd.

Çfarë bën veprimi dhe çfarë të lë ty

Dërgimi i intent-it të lidhjes i kërkon aplikacionit të nisë një profil. Ai nuk anashkalon autorizimin që kërkon ai profil. Connect mund të tregojë ende një kërkesë, dhe për këtë arsye rasti autonom i dokumentuar supozon asnjë autorizim tjetër dhe asnjë kredencial lidhjeje të ruajtur. Tundimi është ta heqësh atë kufi duke futur fjalëkalime ose sekrete të çelësit privat në një eksport të ndarë të Tasker.

Mos e bëj atë. Një eksport detyre është një skedar teksti që njerëzit e kopjojnë në fije bisede, dhe sekretet e vendosura atje zbulohen në momentin që ndahet. Përdor kredencialet e lidhjes të ruajtura nga vetë aplikacioni nëse profili i ka të nevojshme, dhe lëri kërkesat MFA të mbeten kërkesa. Çdo gjë që shmang kërkesën duke ruajtur përgjigjen e ka zhvendosur sekretin në vend që ta zgjidhë problemin.

Ana e shkëputjes ka veprimin e vet të dokumentuar, dhe nuk është një truk ndaj klientit:

Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity

Lidhja me një profil qëllimisht joekzistues për të detyruar një shkëputje është lloji i zgjidhjes së përkohshme që shfaqet në fije të vjetra dhe më pas dështon në heshtje pas një përditësimi. Përdor veprimin e qartë.

Kontrollo gjendjen përpara se të ekzekutohet hapi tjetër

Një nisje e suksesshme e intent-it provon që kërkesa u dorëzua, jo që ekziston një tunel. Nëse detyra më pas hap një aplikacion të brendshëm,ai hap kërkon një kusht gatishmërie me një afat të kufizuar. Një veprim i menjëhershëm pas dërgimit do të qëllojë përfundimisht kundër një kërkese.

$ 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

Pyetja resolve konfirmon që paketa dhe aktiviteti që synon ekzistojnë në atë pajisje, gjë që përjashton një gabim shtypi në fushën e klasës. Dump-i i aktivitetit tregon çfarë është në të vërtetë në plan të parë pasi ekzekutohet detyra jote, dhe është mënyra më e lirë për të parë nëse aplikacioni hapi një kërkesë në vend që të lidhej. Ekzekuto të dyja pas një detyre të dështuar në vend që të hamendësosh cila fushë është e gabuar. Një mospërputhje në emrin e klasës prodhon një gabim të menjëhershëm, ndërsa një profil që mungon nuk prodhon fare gabim të dukshëm.

Vendos pronësinë e shkëputjes përpara se ta dorëzosh detyrën. Një shkurtore që rrëzon një tunel nga i cili varet një detyrë tjetër pune do të gjenerojë një kërkesë mbështetjeje që nuk i ngjan aspak shkakut të saj. Mbajtja e dy automatizimeve që të dyja kontrollojnë të njëjtin klient krijon një garë që nuk mund ta korrigjosh nga regjistrat, prandaj fshi veprimin e vjetruar sapo të funksionojë i riu.

Artikuj të ngjashëm