OpenVPN Connect dan Tasker: ID profil, bukan nama
OpenVPN Connect pada Android 3.3.2 atau lebih baharu menerima ID profil, bukan nama paparan. Bina semula intent Tasker dan jadikan langkah seterusnya bergantung pada keadaan sambungan sebenar.
Automasi yang berbulan-bulan berhubung dengan boleh dipercayai berhenti berfungsi selepas kemas kini klien, manakala profil yang sama masih berhubung secara manual. Corak itu menunjuk kepada kontrak kawalan, bukan pelayan VPN. Seseorang telah menukar tindakan yang diterima aplikasi, atau pengecam yang dijangka, dan tugas itu masih menghantar yang lama. Membina semula ikatan mengambil masa lebih singkat daripada menyemak pelayan semula.
Kontrak itu milik satu aplikasi dan satu julat versi
OpenVPN Connect dan OpenVPN for Android ialah aplikasi yang berbeza, dan intent yang menamakan satu pakej tidak melakukan apa-apa pada yang lain. Sebelum menyentuh tugas, sahkan klien mana yang dipasang dan versi mana yang menghasilkan tingkah laku yang anda bandingkan. Untuk Connect pada Android 3.3.2 atau lebih baharu,integrasi Tasker yang didokumenkan menjangka ID profil. Arahan lama yang meletakkan AS atau PC di hadapan nama paparan menerangkan kontrak terdahulu, dan menyalinnya ke dalam tugas semasa ialah sebab biasa tiada apa berlaku.
Sempadan versi itu menerangkan kebanyakan laporan bahawa ia pernah berfungsi. Aplikasi tidak merosakkan ciri itu; ia menukar apa yang diterima oleh ciri itu. Anggap julat versi sebagai sebahagian daripada kontrak yang anda tulis.
Dari mana pengecam itu datang
Buka profil yang dimaksudkan di dalam Connect dan salin ID profilnya daripada butiran profil itu sendiri. Gunakan nilai itu dan bukan nama yang anda kenali daripada senarai, kerana nama ialah label dan pengecam ialah apa yang dipadankan oleh aplikasi. Medan sambungan dalam tindakan Send Intent di Tasker kelihatan seperti blok di bawah, dengan hanya pengecam diganti. Kekalkan juga instans aplikasi profil peribadi atau profil kerja secara konsisten.
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
Salinan dalam profil kerja dengan nama pakej yang sama dan profil tersimpan yang berbeza akan menerima intent itu dan tidak menemui profil yang sepadan, yang kelihatan seperti tugas rosak dan bukan kesilapan skop. Jika profil diimport semula atau diganti, anggap pengecam itu mencurigakan dan semak semula. Import semula sering menghasilkan entri profil baharu walaupun nama paparan tidak berubah. Semak pengecam sebelum anda menukar apa-apa yang lain.
Biarkan medan yang tidak berkaitan kosong seperti didokumenkan. Medan kategori, jenis MIME dan data yang tidak diminta panduan boleh mengubah cara Android menyelesaikan intent, dan intent yang diselesaikan secara berbeza boleh melancarkan aplikasi tanpa memulakan profil anda.
Apa yang tindakan itu lakukan dan apa yang ditinggalkannya kepada anda
Menghantar intent sambungan meminta aplikasi memulakan profil. Ia tidak memintas kebenaran yang diperlukan oleh profil itu. Connect mungkin masih memaparkan gesaan, sebab itulah kes autonomi yang didokumenkan menganggap tiada kebenaran tambahan dan tiada kelayakan sambungan tersimpan. Godaan itu ialah menghapuskan sempadan tersebut dengan membenamkan kata laluan atau rahsia kunci peribadi dalam eksport Tasker yang dikongsi.
Jangan lakukan itu. Eksport tugas ialah fail teks yang disalin orang ke dalam urutan sembang, dan rahsia yang diletakkan di situ terdedah pada saat ia dikongsi. Gunakan kelayakan sambungan tersimpan aplikasi itu sendiri jika profil memerlukannya, dan biarkan gesaan MFA kekal sebagai gesaan. Apa-apa yang mengelakkan gesaan dengan menyimpan jawapannya telah memindahkan rahsia itu dan bukannya menyelesaikan masalah.
Bahagian pemutusan mempunyai tindakan terdokumennya sendiri, dan ia bukan helah terhadap klien:
Action: net.openvpn.openvpn.DISCONNECT
Extra: net.openvpn.openvpn.STOP:true
Package: net.openvpn.openvpn
Class: net.openvpn.unified.MainActivity
Target: Activity
Berhubung ke profil yang sengaja tidak wujud untuk memaksa pemutusan ialah jenis penyelesaian sementara yang muncul dalam urutan lama dan kemudian gagal secara senyap selepas kemas kini. Gunakan tindakan eksplisit.
Semak keadaan sebelum langkah seterusnya berjalan
Pelancaran intent yang berjaya membuktikan permintaan dihantar, bukan bahawa terowong wujud. Jika tugas kemudian membuka aplikasi dalaman,langkah itu memerlukan syarat kesediaan dengan had masa. Tindakan segera selepas penghantaran akhirnya akan merempuh gesaan.
$ 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
Pertanyaan resolve mengesahkan bahawa pakej dan aktiviti yang anda sasarkan wujud pada peranti itu, yang menyingkirkan salah taip dalam medan kelas. Dump aktiviti menunjukkan apa yang sebenarnya berada di latar hadapan selepas tugas anda berjalan, dan itulah cara termurah untuk melihat sama ada aplikasi membuka gesaan dan bukannya berhubung. Jalankan kedua-duanya selepas tugas gagal dan bukannya meneka medan mana yang salah. Ketidakpadanan dalam nama kelas menghasilkan ralat segera, manakala profil yang hilang tidak menghasilkan sebarang ralat yang kelihatan.
Putuskan pemilikan pemutusan sebelum anda menghantar tugas. Pintasan yang meruntuhkan terowong yang bergantung padanya tugas kerja lain akan menghasilkan tiket sokongan yang sama sekali tidak menyerupai puncanya. Mengekalkan dua automasi yang kedua-duanya mengawal klien yang sama mencipta perlumbaan yang tidak dapat anda nyahpepijat daripada log, jadi hapuskan tindakan usang sebaik sahaja yang baharu berfungsi.