Айлар бойы сенімді қосылып келген автоматтандыру клиент жаңартылғаннан кейін жұмысын тоқтатады, ал сол профиль әлі де қолмен қосылады. Бұл үлгі VPN серверіне емес, басқару шартына нұсқайды. Біреу қолданбаның қай әрекетті қабылдайтынын немесе қай идентификаторды күтетінін өзгерткен, ал тапсырма әлі де ескісін жібереді. Байланысты қайта құру серверді қайта тексеруден аз уақыт алады.

Шарт бір қолданбаға және бір нұсқа ауқымына тиесілі

OpenVPN Connect және OpenVPN for Android — әртүрлі қолданбалар, ал бір пакетті атайтын intent екіншісінде ештеңе істемейді. Тапсырмаға қол тигізбес бұрын қай клиент орнатылғанын және салыстырып отырған мінез-құлықты қай нұсқа жасағанын растаңыз. Android 3.3.2 немесе одан жаңа Connect үшін құжатталған Tasker интеграциясы профиль ID-ін күтеді. Көрсетілетін атау алдына AS немесе PC қоятын ескі нұсқаулықтар бұрынғы шартты сипаттайды, ал оларды ағымдағы тапсырмаға көшіру ештеңе болмауының әдеттегі себебі.

Бұл нұсқа шекарасы бұрын жұмыс істегені туралы хабарламалардың көбін түсіндіреді. Қолданба функцияны бұзған жоқ; функцияның нені қабылдайтынын өзгертті. Нұсқа ауқымын жазған шартыңыздың бөлігі ретінде қарастырыңыз.

Идентификатор қайдан келеді

Қажетті профильді Connect ішінде ашып, оның профиль ID-ін профильдің өз мәліметтерінен көшіріңіз. Тізімнен танитын атаудың орнына сол мәнді пайдаланыңыз, өйткені атау — белгі, ал идентификатор — қолданба салыстыратын нәрсе. Tasker-дегі Send Intent әрекетінің қосылым өрістері төмендегі блокқа ұқсайды, тек идентификатор ауыстырылады. Жеке немесе жұмыс профилінің қолданба данасын да біркелкі ұстаңыз.

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

Жұмыс профиліндегі көшірме сол пакет атауымен және басқа сақталған профильмен intent-ті қабылдап, сәйкес профиль таппайды, бұл ауқым қатесі емес, бүлінген тапсырма болып көрінеді. Профиль қайта импортталса немесе ауыстырылса, идентификаторды күдікті деп санап, оны қайта тексеріңіз. Қайта импорттау көрсетілетін атау өзгермесе де жиі жаңа профиль жазбасын жасайды. Басқа нәрсені өзгертудің алдында идентификаторды тексеріңіз.

Байланыссыз өрістерді құжатталғандай бос қалдырыңыз. Нұсқаулық талап етпейтін санат, MIME түрі және деректер өрістері Android-тің intent-ті қалай шешетінін өзгертуі мүмкін, ал басқаша шешілген intent қолданбаны профиліңізді іске қоспай ашуы мүмкін.

Әрекет не істейді және саған нені қалдырады

Қосылым intent-ін жіберу қолданбадан профильді іске қосуды сұрайды. Ол сол профиль талап ететін авторизацияны айналып өтпейді. Connect әлі де сұраныс көрсетуі мүмкін, сондықтан құжатталған автономды жағдай қосымша авторизация мен сақталған қосылым деректері жоқ деп болжайды. Азғыру — парольдерді немесе жеке кілт құпияларын ортақ Tasker экспортына енгізіп, осы шекараны алып тастау.

Оны жасамаңыз. Тапсырма экспорты — адамдар чат ағындарына көшіретін мәтіндік файл, онда қойылған құпиялар ол бөлісілген сәтте ашылады. Профильге қажет болса, қолданбаның өзінің сақталған қосылым деректерін пайдаланыңыз және MFA сұраныстары сұраныс болып қалсын. Сұраныстан жауапты сақтау арқылы жалтаратын кез келген нәрсе мәселені шешудің орнына құпияны жылжытқан.

Ажырату жағында өзінің құжатталған әрекеті бар және бұл клиентке қарсы айла емес:

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

Ажыратуды мәжбүрлеу үшін әдейі жоқ профильге қосылу — ескі ағындарда кездесетін және жаңартудан кейін үнсіз сәтсіз болатын уақытша шешім түрі. Айқын әрекетті пайдаланыңыз.

Келесі қадам іске қосылмас бұрын күйді тексеріңіз

Intent-тің сәтті іске қосылуы сұраныстың жеткізілгенін дәлелдейді, туннельдің бар екенін емес. Егер тапсырма содан кейін ішкі қолданбаны ашса,бұл қадам шектеулі уақыт шегімен дайындық шартын қажет етеді. Жіберуден кейінгі дереу әрекет ақырында сұранысқа соғылады.

$ 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 сұранысы нысанаға алған пакет пен әрекеттің сол құрылғыда бар екенін растайды, бұл сынып өрісіндегі теру қатесін жоққа шығарады. Әрекеттің шығарылымы тапсырмаңыз орындалғаннан кейін шын мәнінде не алдыңғы планда екенін көрсетеді және қолданбаның қосылудың орнына сұраныс ашқанын көрудің ең арзан жолы. Сәтсіз тапсырмадан кейін қай өріс қате екенін болжаудың орнына екеуін де іске қосыңыз. Сынып атауындағы сәйкессіздік бірден қате береді, ал жоқ профиль ешқандай көрінетін қате бермейді.

Тапсырманы жібермес бұрын ажыратудың иелігін шешіңіз. Басқа жұмыс тапсырмасы тәуелді туннельді құлататын жарлық себебіне мүлде ұқсамайтын қолдау билетін жасайды. Бір клиентті басқаратын екі автоматтандыруды ұстау журналдардан жоя алмайтын жарыс тудырады, сондықтан жаңасы жұмыс істегенде ескірген әрекетті жойыңыз.

Қатысты мақалалар