OpenVPN Connect va Tasker: nom emas, profil ID-si
OpenVPN Connect Android 3.3.2 yoki undan yangi versiyada ko‘rsatiladigan nomni emas, profil ID-sini qabul qiladi. Tasker intentini qayta quring va keyingi qadamni haqiqiy ulanish holatiga bog‘lang.
Oylar davomida ishonchli ulanib kelgan avtomatlashtirish mijoz yangilanganidan keyin ishlamay qoladi, xuddi shu profil esa qo‘lda hali ham ulanadi. Bu naqsh VPN serveriga emas, boshqaruv shartnomasiga ishora qiladi. Kimdir ilova qaysi amalni qabul qilishini yoki qaysi identifikatorni kutishini o‘zgartirgan, vazifa esa hali ham eskisini yubormoqda. Bog‘lanishni qayta qurish serverni qayta tekshirishdan kamroq vaqt oladi.
Shartnoma bitta ilova va bitta versiya oralig‘iga tegishli
OpenVPN Connect va OpenVPN for Android turli ilovalardir va bitta paketni nomlaydigan intent ikkinchisida hech narsa qilmaydi. Vazifaga tegishdan oldin qaysi mijoz o‘rnatilganini va taqqoslayotgan xatti-harakatni qaysi versiya yaratganini tasdiqlang. Android 3.3.2 yoki undan yangi Connect uchun hujjatlashtirilgan Tasker integratsiyasi profil ID-sini kutadi. Ko‘rsatiladigan nom oldiga AS yoki PC qo‘yadigan eski ko‘rsatmalar avvalgi shartnomani tasvirlaydi va ularni joriy vazifaga ko‘chirish hech narsa bo‘lmasligining odatiy sababidir.
Bu versiya chegarasi avval ishlaganligi haqidagi xabarlarning ko‘pini tushuntiradi. Ilova funksiyani buzgani yo‘q; funksiya nimani qabul qilishini o‘zgartirgan. Versiya oralig‘ini yozayotgan shartnomangizning bir qismi deb biling.
Identifikator qayerdan keladi
Kerakli profilni Connect ichida oching va uning profil ID-sini profilning o‘z tafsilotlaridan nusxalang. Ro‘yxatdan tanish nom o‘rniga shu qiymatdan foydalaning, chunki nom yorliq, identifikator esa ilova taqqoslaydigan narsadir. Taskerdagi Send Intent amalining ulanish maydonlari quyidagi blokka o‘xshaydi, faqat identifikator almashtiriladi. Shaxsiy yoki ish profili ilova nusxasini ham izchil saqlang.
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
Bir xil paket nomi va boshqa saqlangan profilga ega ish profili nusxasi intentni qabul qiladi va mos profil topmaydi, bu esa qamrov xatosi emas, buzilgan vazifa kabi ko‘rinadi. Agar profil qayta import qilinsa yoki almashtirilsa, identifikatorni shubhali deb hisoblang va uni qayta tekshiring. Qayta import ko‘rsatiladigan nom o‘zgarmasa ham ko‘pincha yangi profil yozuvi hosil qiladi. Boshqa narsani o‘zgartirishdan oldin identifikatorni tekshiring.
Aloqasiz maydonlarni hujjatlashtirilganidek bo‘sh qoldiring. Qo‘llanma talab qilmaydigan toifa, MIME turi va ma’lumot maydonlari Android intentni qanday hal qilishini o‘zgartirishi mumkin va boshqacha hal qilingan intent ilovani profilingizni ishga tushirmasdan ochishi mumkin.
Amal nima qiladi va sizga nima qoldiradi
Ulanish intentini yuborish ilovadan profil ishga tushirishni so‘raydi. Bu profil talab qiladigan avtorizatsiyani chetlab o‘tmaydi. Connect baribir so‘rov ko‘rsatishi mumkin, shuning uchun hujjatlashtirilgan avtonom holat qo‘shimcha avtorizatsiya va saqlangan ulanish ma’lumotlari yo‘qligini nazarda tutadi. Vasvasa parollarni yoki shaxsiy kalit sirlarini umumiy Tasker eksportiga joylashtirib bu chegarani olib tashlashdir.
Buni qilmang. Vazifa eksporti odamlar chat mavzulariga ko‘chiradigan matn faylidir va u yerga qo‘yilgan sirlar ulashilgan paytda oshkor bo‘ladi. Agar profilga kerak bo‘lsa, ilovaning o‘z saqlangan ulanish ma’lumotlaridan foydalaning va MFA so‘rovlari so‘rov bo‘lib qolsin. So‘rovdan javobni saqlash bilan qochadigan har qanday narsa muammoni hal qilish o‘rniga sirni ko‘chirgan.
Ulanishni uzish tomonining o‘z hujjatlashtirilgan amali bor va bu mijozga qarshi hiyla emas:
Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity
Ulanishni uzishga majburlash uchun ataylab mavjud bo‘lmagan profilga ulanish eski mavzularda uchraydigan va yangilanishdan keyin jimgina muvaffaqiyatsiz bo‘ladigan vaqtinchalik yechim turidir. Aniq amaldan foydalaning.
Keyingi qadam ishga tushishidan oldin holatni tekshiring
Muvaffaqiyatli intent ishga tushishi so‘rov yetkazilganini isbotlaydi, tunnel mavjudligini emas. Agar vazifa keyin ichki ilovani ochsa,bu qadam cheklangan vaqt limiti bilan tayyorlik shartini talab qiladi. Yuborishdan keyingi darhol amal oxir-oqibat so‘rovga uriladi.
$ 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 so‘rovi nishonga olgan paket va faoliyat o‘sha qurilmada mavjudligini tasdiqlaydi, bu sinf maydonidagi yozuv xatosini istisno qiladi. Faoliyat chiqarishi vazifangiz ishlagandan keyin haqiqatda nima old planda ekanini ko‘rsatadi va ilova ulanmagan holda so‘rov ochganini ko‘rishning eng arzon usulidir. Muvaffaqiyatsiz vazifadan keyin qaysi maydon noto‘g‘ri ekanini taxmin qilish o‘rniga ikkalasini ham ishga tushiring. Sinf nomidagi nomuvofiqlik darhol xato beradi, yetishmayotgan profil esa hech qanday ko‘rinadigan xato bermaydi.
Vazifani yetkazishdan oldin ulanishni uzish egaligini hal qiling. Boshqa ish vazifasi bog‘liq bo‘lgan tunnelni yiqitadigan yorliq sababiga umuman o‘xshamaydigan qo‘llab-quvvatlash chiptasini yaratadi. Bir xil mijozni boshqaradigan ikkita avtomatlashtirishni saqlash jurnallardan tuzata olmaydigan poygani keltirib chiqaradi, shuning uchun yangisi ishlagach eski amalni o‘chiring.