![Как Genymotion обходит отсутствие эмуляции Wi-Fi в VirtualBox?](https://rvso.com/image/1586622/%D0%9A%D0%B0%D0%BA%20Genymotion%20%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D1%82%20%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5%20%D1%8D%D0%BC%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D0%B8%20Wi-Fi%20%D0%B2%20VirtualBox%3F.png)
Какответил здесь, VirtualBox не умеет эмулировать Wi-Fi. Он может подключить гостя к Wi-Fi хоста, но гость все равно будет думать, что это одно из "до восьми виртуальных карт PCI Ethernet".
Но Genymotion, который является оболочкой над VirtualBox,удается ли это сделать. Можно ли что-то сделать внутри VirtualBox, чтобы повторить действия Genymotion и открыть эмулированную опцию Wi-Fi?
Может показаться излишним использовать Genymotion поверх VirtualBox только ради этой, предположительно, базовой функции.
У меня есть одна теория, даже если она может быть и надуманной. Согласно поиску в интернете, VirtualBox позволяет подключать USB Wi-Fi-донглы к гостевой ОС. Может быть, Genymotion нашел способ подделать USB Wi-Fi-донгл?
решение1
Я не знаю, как это делает Genymotion, но я знаю, как это можно сделать. Я видел несколько продуктов, таких как Genymotion, которые реализовали эту функцию.
Теоретически существует 3 основных метода сделать это:
- Используйте PCI pass-through для передачи Wifi NIC в гостевую систему, таким же образом, как VirtualBox может передавать USB-устройства. Это ОЧЕНЬ маловероятно, так как этот метод довольно сложен и не будет работать с большинством оборудования. (Сам VirtualBox, хотя и поддерживает PCI pass-through в течение многих лет, все еще считает это "экспериментальным".) И, как и в случае с USB pass-through, Wifi NIC больше не доступен хост-системе.
- Между хостом и гостем уже есть специальный интерфейсный путь. VirtualBox использует его, например, для синхронизации изменений размера дисплея от гостя к хосту, общего буфера обмена и для реализации виртуальной файловой системы. Вы можете расширить это, чтобы также отправлять дополнительную информацию между хостом и гостем, необходимую для передачи гостевой обработки Wi-Fi хосту. Однако было бы очень сложно использовать этот метод, поскольку синхронизация метаданных Wi-Fi и фактического сетевого трафика была бы очень сложной, поскольку они следовали бы по совершенно разным путям данных.
- Метод, который я видел во всех подобных продуктах: замена гостевого сетевого драйвера VirtualBox и сетевых мостовых устройств VirtualBox на стороне хоста на модифицированные версии, которые не только пропускают сетевой трафик, но и дополнения Wi-Fi (такие как обработка SSID, обнаружение сети, аутентификация и т. д.)
Genymotion, похоже, тоже использует этот метод. Я только что заметил, что есть еще одинвопросна этом сайте, где говорится о том, что Genymotion изменил конфигурацию драйверов моста хоста, что, по-видимому, подразумевает, что они используют это каким-то образом.
К сожалению, я не знаю бесплатных (или дешевых) реализаций для этого. Я бы определенно мог использовать это сам.