Otomatisasi yang berbulan-bulan terhubung dengan andal berhenti bekerja setelah pembaruan klien, sementara profil yang sama masih terhubung secara manual. Pola itu menunjuk pada kontrak kendali, bukan pada server VPN. Seseorang mengubah tindakan mana yang diterima aplikasi, atau pengenal mana yang diharapkannya, dan tugas itu masih mengirim yang lama. Membangun ulang ikatan memakan waktu lebih singkat daripada memeriksa ulang server.

Kontrak itu milik satu aplikasi dan satu rentang versi

OpenVPN Connect dan OpenVPN for Android adalah aplikasi yang berbeda, dan intent yang menyebut satu paket tidak melakukan apa pun di yang lain. Sebelum menyentuh tugas, pastikan klien mana yang terpasang dan versi mana yang menghasilkan perilaku yang Anda bandingkan. Untuk Connect di Android 3.3.2 atau lebih baru,integrasi Tasker yang didokumentasikan mengharapkan ID profil. Petunjuk lama yang membubuhkan AS atau PC di depan nama tampilan menjelaskan kontrak sebelumnya, dan menyalinnya ke tugas saat ini adalah alasan biasa mengapa tidak terjadi apa-apa.

Batas versi itu menjelaskan sebagian besar laporan bahwa dulu berfungsi. Aplikasi tidak merusak fiturnya; aplikasi mengubah apa yang diterima fitur itu. Perlakukan rentang versi sebagai bagian dari kontrak yang Anda tulis.

Dari mana pengenal itu berasal

Buka profil yang dimaksud di dalam Connect dan salin ID profilnya dari detail profil itu sendiri. Gunakan nilai itu alih-alih nama yang Anda kenali dari daftar, karena nama hanyalah label dan pengenal adalah yang dicocokkan oleh aplikasi. Bidang koneksi pada tindakan Send Intent di Tasker terlihat seperti blok di bawah, dengan hanya pengenalnya yang diganti. Jaga juga konsistensi instans aplikasi profil pribadi atau profil kerja.

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 di profil kerja dengan nama paket yang sama dan profil tersimpan yang berbeda akan menerima intent dan tidak menemukan profil yang cocok, yang tampak seperti tugas rusak dan bukan kesalahan cakupan. Jika profil diimpor ulang atau diganti, anggap pengenalnya mencurigakan dan periksa lagi. Impor ulang sering menghasilkan entri profil baru meskipun nama tampilannya tidak berubah. Periksa pengenal sebelum Anda mengubah hal lain.

Biarkan bidang yang tidak terkait kosong seperti didokumentasikan. Bidang kategori, tipe MIME, dan data yang tidak diminta panduan dapat mengubah cara Android menyelesaikan intent, dan intent yang diselesaikan secara berbeda dapat meluncurkan aplikasi tanpa memulai profil Anda.

Apa yang dilakukan tindakan itu dan apa yang diserahkannya kepada Anda

Mengirim intent koneksi meminta aplikasi memulai profil. Intent itu tidak melewati otorisasi yang dibutuhkan profil tersebut. Connect mungkin masih menampilkan permintaan, karena itulah kasus otonom yang didokumentasikan mengasumsikan tidak ada otorisasi tambahan dan tidak ada kredensial konektivitas tersimpan. Godaan untuk menghapus batas itu adalah dengan menyematkan kata sandi atau rahasia kunci privat ke dalam ekspor Tasker yang dibagikan.

Jangan lakukan itu. Ekspor tugas adalah berkas teks yang orang salin ke utas obrolan, dan rahasia yang diletakkan di sana terungkap begitu berkas itu dibagikan. Gunakan kredensial konektivitas tersimpan milik aplikasi jika profil membutuhkannya, dan biarkan permintaan MFA tetap menjadi permintaan. Apa pun yang menghindari permintaan dengan menyimpan jawabannya telah memindahkan rahasianya, bukan menyelesaikan masalahnya.

Sisi pemutusan punya tindakan terdokumentasinya sendiri, dan itu bukan trik terhadap klien:

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

Terhubung ke profil yang sengaja tidak ada untuk memaksa pemutusan adalah jenis akal-akalan yang muncul di utas lama lalu gagal diam-diam setelah pembaruan. Gunakan tindakan eksplisit.

Periksa status sebelum langkah berikutnya berjalan

Peluncuran intent yang berhasil membuktikan permintaan terkirim, bukan bahwa terowongan ada. Jika tugas kemudian membuka aplikasi internal,langkah itu memerlukan syarat kesiapan dengan batas waktu. Tindakan langsung setelah pengiriman pada akhirnya akan menabrak permintaan.

$ 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

Kueri resolve memastikan paket dan aktivitas yang Anda tuju ada di perangkat itu, yang menyingkirkan salah ketik di bidang kelas. Dump aktivitas menunjukkan apa yang sebenarnya ada di latar depan setelah tugas Anda berjalan, dan itu cara termurah untuk melihat apakah aplikasi membuka permintaan alih-alih terhubung. Jalankan keduanya setelah tugas gagal alih-alih menebak bidang mana yang salah. Ketidakcocokan pada nama kelas menghasilkan kesalahan segera, sedangkan profil yang hilang tidak menghasilkan kesalahan yang terlihat sama sekali.

Putuskan kepemilikan pemutusan sebelum Anda mengirim tugas. Jalan pintas yang merobohkan terowongan yang menjadi sandaran tugas kerja lain akan menghasilkan tiket dukungan yang sama sekali tidak mirip penyebabnya. Memelihara dua otomatisasi yang keduanya mengendalikan klien yang sama menciptakan balapan yang tidak dapat Anda awakutu dari log, jadi hapus tindakan usang begitu yang baru berfungsi.

Artikel terkait