UZ801 LTE MiFi dongle — Habilitação automática do ADB (lado do host)
Dongles Qualcomm LTE MiFi baratos de ~$10 (05c6:90b6, "Android"/UZ801, msm8916) inicializam
em modo RNDIS com uma interface web em http://192.168.100.1. Ao acessar
http://192.168.100.1/usbdebug.html, eles são convertidos para modo ADB (e já
iniciam como root). Ref: https://nickvsnetworking.com/adventures-with-a-10-lte-mifi-dongle/
O passo de habilitação deve ser executado no host USB (o hipervisor Proxmox), porque
apenas o host possui o link RNDIS para 192.168.100.1 — o agente de telefone OmniWeb
executa no LXC não privilegiado (CT 102) e alcança o dongle apenas como um dispositivo USB
uma vez que está em modo ADB. Portanto, esta automação é udev + systemd do lado do host, não
código do agente.
Arquivos
mifi-adb-enable.sh→/usr/local/sbin/mifi-adb-enable.sh(0755)mifi-adb-enable.service→/etc/systemd/system/mifi-adb-enable.service99-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
Fluxo: dongle conectado (RNDIS) → udev é acionado → mifi-adb-enable.service → script
ativa a iface RNDIS, faz curl em usbdebug.html → dongle reinicializa em modo ADB →
reenumera com a interface ADB → a regra udev CT-102 (abaixo) entrega o nó
para o contêiner → o adb do agente o vê. Na reenumeração em modo adb, o
script é executado novamente, detecta a interface ADB (ff/42/01) e sai — sem loop.
Alteração udev de passthrough USB do CT-102 (REQUERIDO)
O VID Qualcomm do dongle 05c6 deve ser passado para o contêiner, e o grupo
deve ser plugdev (gid do host 100046), não root do contêiner, ou o adb do agente
(usuário omniweb-agent, um membro do plugdev) não poderá abrir o nó. O mesmo se aplica às
regras do telefone Android: elas eram GROUP="100000" (root do contêiner) que o
agente não pode acessar — os dispositivos só funcionavam enquanto o adb mantinha o fd do tempo
de enumeração e caíam em cada reenumeração. Corrigido para GROUP="100046".
Em /etc/udev/rules.d/99-ct102-android.rules, todas as regras de telefone usam
OWNER="100000", GROUP="100046", MODE="0660", além do VID do dongle:
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", OWNER="100000", GROUP="100046", MODE="0660"
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", OWNER="100000", GROUP="100046", MODE="0660"
Essas alterações no host são aplicadas ao vivo no laboratório, mas devem ser codificadas no OmniCore ansible (papel de monitoramento/host) para que sobrevivam a uma reconstrução do host.