OpenVPN Connect และ Tasker: ID ของโปรไฟล์ ไม่ใช่ชื่อ
OpenVPN Connect บน Android 3.3.2 หรือใหม่กว่ารับ ID ของโปรไฟล์ ไม่ใช่ชื่อที่แสดง สร้าง intent ของ Tasker ขึ้นใหม่และผูกขั้นตอนถัดไปกับสถานะการเชื่อมต่อจริง
ระบบอัตโนมัติที่เชื่อมต่อได้อย่างน่าเชื่อถือมาหลายเดือนหยุดทำงานหลังการอัปเดตไคลเอนต์ ขณะที่โปรไฟล์เดิมยังเชื่อมต่อด้วยมือได้ รูปแบบนี้ชี้ไปที่สัญญาการควบคุม ไม่ใช่เซิร์ฟเวอร์ VPN มีคนเปลี่ยนว่าอะป์ยอมรับการกระทำใดหรือรอตัวระบุใด และงานยังคงส่งตัวเก่า การสร้างความผูกพันใหม่ใช้เวลาน้อยกว่าการตรวจสอบเซิร์ฟเวอร์อีกครั้ง
สัญญาเป็นของอะป์เดียวและช่วงเวอร์ชันเดียว
OpenVPN Connect และ OpenVPN for Android เป็นอะป์ที่แตกต่างกัน และ intent ที่ระบุแพ็กเกจหนึ่งไม่ทำอะไรในอีกอัน ก่อนแตะงาน ให้ยืนยันว่าไคลเอนต์ใดติดตั้งอยู่และเวอร์ชันใดสร้างพฤติกรรมที่คุณกำลังเปรียบเทียบ สำหรับ Connect บน Android 3.3.2 หรือใหม่กว่าการผสานรวม Tasker ที่มีเอกสารจะรอ ID ของโปรไฟล์ คำแนะนำเก่าที่วาง AS หรือ PC หน้าชื่อที่แสดงอธิบายสัญญาก่อนหน้า และการคัดลอกคำแนะนำเหล่านั้นลงในงานปัจจุบันคือสาเหตุปกติที่ไม่มีอะไรเกิดขึ้น
ขอบเขตเวอร์ชันนี้อธิบายรายงานส่วนใหญ่ว่าเคยทำงานได้ อะป์ไม่ได้ทำให้ฟีเจอร์เสีย แต่เปลี่ยนสิ่งที่ฟีเจอร์ยอมรับ ถือว่าช่วงเวอร์ชันเป็นส่วนหนึ่งของสัญญาที่คุณเขียนถึง
ตัวระบุมาจากไหน
เปิดโปรไฟล์ที่ต้องการใน Connect แล้วคัดลอก ID ของโปรไฟล์จากรายละเอียดของโปรไฟล์เอง ใช้ค่านั้นแทนชื่อที่คุณรู้จักจากรายการ เพราะชื่อเป็นเพียงป้ายกำกับ และตัวระบุคือสิ่งที่อะป์ใช้จับคู่ ฟิลด์การเชื่อมต่อในการกระทำ Send Intent ใน Tasker มีลักษณะเหมือนบล็อกด้านล่าง โดยเปลี่ยนเฉพาะตัวระบุ รักษาความสอดคล้องของอินสแตนซ์อะป์ของโปรไฟล์ส่วนตัวหรือโปรไฟล์งานด้วย
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 export ที่แชร์
อย่าทำเช่นนั้น Tasker export เป็นไฟล์ข้อความที่ผู้คนคัดลอกลงในกระทู้แชต และความลับที่วางไว้ที่นั่นจะถูกเปิดเผยในทันทีที่แชร์ ใช้ข้อมูลรับรองการเชื่อมต่อที่อะป์บันทึกไว้เองหากโปรไฟล์ต้องการ และปล่อยให้คำขอ 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 ยืนยันว่าแพ็กเกจและกิจกรรมที่คุณเล็งอยู่นั้นมีอยู่ในอุปกรณ์นั้น ซึ่งตัดความเป็นไปได้ที่จะพิมพ์ผิดในฟิลด์คลาส ดัมป์กิจกรรมแสดงสิ่งที่อยู่เบื้องหน้าจริงหลังจากงานของคุณทำงาน และเป็นวิธีที่ถูกที่สุดในการดูว่าอะป์เปิดคำขอแทนที่จะเชื่อมต่อหรือไม่ รันทั้งสองอย่างหลังงานล้มเหลวแทนการเดาว่าฟิลด์ใดผิด ชื่อคลาสไม่ตรงกันทำให้เกิดข้อผิดพลาดทันที ขณะที่โปรไฟล์ที่หายไปไม่ทำให้เกิดข้อผิดพลาดที่มองเห็นได้เลย
ตัดสินความเป็นเจ้าของการตัดการเชื่อมต่อก่อนที่คุณจะส่งงาน ทางลัดที่รื้ออุโมงค์ซึ่งงานอื่นต้องพึ่งพาจะสร้างตั๋วสนับสนุนที่ไม่เหมือนสาเหตุเลย การเก็บระบบอัตโนมัติสองตัวที่ควบคุมไคลเอนต์เดียวกันสร้างการแข่งกันที่คุณดีบักจากบันทึกไม่ได้ ดังนั้นลบการกระทำที่ล้าสมัยเมื่อตัวใหม่ทำงานได้