انتقل إلى المحتوى الرئيسي

UZ801 LTE MiFi dongle — تفعيل ADB تلقائيًا (جانب المضيف)

تقوم دونجل Qualcomm LTE MiFi الرخيصة (~10 دولارات) (05c6:90b6, "Android"/UZ801, msm8916) بالتمهيد في وضع RNDIS مع واجهة ويب على http://192.168.100.1. إن الحصول على http://192.168.100.1/usbdebug.html يحولها إلى وضع ADB (وهي تأتي مفعلّة بالفعل). المرجع: https://nickvsnetworking.com/adventures-with-a-10-lte-mifi-dongle/

يجب أن تتم خطوة التفعيل على المضيف USB (الهايبرفايزر Proxmox)، لأن المضيف فقط هو الذي لديه رابط RNDIS إلى 192.168.100.1 — يعمل وكيل الهاتف OmniWeb في LXC غير المميز (CT 102) ويصل إلى الدونجل فقط كجهاز USB بمجرد أن يكون في وضع ADB. لذا فإن هذه الأتمتة هي udev + systemd على جانب المضيف، وليس كود الوكيل.

الملفات

  • mifi-adb-enable.sh/usr/local/sbin/mifi-adb-enable.sh (0755)
  • mifi-adb-enable.service/etc/systemd/system/mifi-adb-enable.service
  • 99-mifi-adb-autoenable.rules/etc/udev/rules.d/99-mifi-adb-autoenable.rules
sudo install -m0755 mifi-adb-enable.sh /usr/local/sbin/mifi-adb-enable.sh
sudo install -m0644 mifi-adb-enable.service /etc/systemd/system/mifi-adb-enable.service
sudo install -m0644 99-mifi-adb-autoenable.rules /etc/udev/rules.d/99-mifi-adb-autoenable.rules
sudo systemctl daemon-reload && sudo udevadm control --reload

التدفق: توصيل الدونجل (RNDIS) → udev يتم تشغيله → mifi-adb-enable.service → السكربت يبدأ واجهة RNDIS، ويقوم بعمل curl لـ usbdebug.html → الدونجل يعيد التشغيل إلى وضع ADB → يعيد العد مع واجهة ADB → قاعدة udev الخاصة بـ CT-102 (أدناه) تسلم العقدة إلى الحاوية → يرى وكيل adb ذلك. عند إعادة العد في وضع adb، يتم تشغيل السكربت مرة أخرى، ويكتشف واجهة ADB (ff/42/01) وينتهي — لا حلقة.

تغيير udev لتمرير USB CT-102 (مطلوب)

يجب تسليم VID Qualcomm الخاص بالدونجل 05c6 إلى الحاوية، ويجب أن تكون المجموعة plugdev (gid المضيف 100046)، وليس جذر الحاوية، أو لا يمكن لوكيل adb (المستخدم omniweb-agent، عضو في plugdev) فتح العقدة. ينطبق نفس الشيء على قواعد الهاتف Android: كانت GROUP="100000" (جذر الحاوية) التي لا يمكن للوكيل الوصول إليها — كانت الأجهزة تعمل فقط بينما كان adb يحتفظ بـ fd من وقت العد وسقطت في كل إعادة عد. تم إصلاحها إلى GROUP="100046".

في /etc/udev/rules.d/99-ct102-android.rules تستخدم جميع قواعد الهاتف OWNER="100000", GROUP="100046", MODE="0660"، بالإضافة إلى VID الدونجل:

SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", OWNER="100000", GROUP="100046", MODE="0660"
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", OWNER="100000", GROUP="100046", MODE="0660"

يتم تطبيق هذه التغييرات على المضيف مباشرة في المختبر ولكن يجب توثيقها في OmniCore ansible (دور المراقبة/المضيف) حتى تبقى بعد إعادة بناء المضيف.