Подавить запуск эмулятора с помощью Android в VirtualBox

Описание

Я запускаю Android-x86 7.1 с помощью VirtualBox. Я хочу adb connect с хоста на гостя. Я испытываю очень случайное поведение, когда дело доходит до устройств adb. Как только виртуальная машина запустится, есть шанс, что появится эмулятор под названием emulator-5554. Иногда он указан, иногда нет. Подключение к устройству с помощью adb connect 127.0.0.1 приводит к следующему:

  • Если в списке указано emulator-5554, устройство 127.0.0.1:5555 помечено offline и его нельзя использовать. Тогда нужно использовать emulator-5554.
  • Если emulator-5554 нет в списке, я могу без проблем использовать устройство 127.0.0.1:5555.

adb devices -l показывает, что эмулятор исходит от виртуальной машины: device product:android_x86_64 model:VirtualBox device:x86_64 transport_id:1

Проблема

Несмотря на то, что emulator-5554 работает нормально, и я могу общаться с виртуальной машиной, я не могу полагаться на это, потому что хочу автоматизировать вещи. 127.0.0.1 задается моей сетевой конфигурацией VirtualBox. Имя emulator-5554 кажется случайным и может измениться. Поэтому мне нужно использовать adb connect 127.0.0.1, что невозможно, когда эмулятор находится в сети.

Конфигурация VirtualBox

Настройки сети

  • Активен только адаптер 1, адаптеры 2-4 не включены
  • Attatched to: NAT
  • Port forwarding:
    • Name: ADB#1, Protocol: TCP, Host IP: 127.0.0.1, Host Port: 5555, Guest IP: 10.0.2.15, Guest Port: 5555
    • Имя: ADB#2, Протокол: TCP, IP-адрес хоста: 127.0.0.1, Порт хоста: 5554, IP-адрес гостя: 10.0.2.15, Порт гостя: 5554

USB-настройки

  • Enable USB Controller не проверено

Текущий подход

Текущий подход представлен всеми текущими настройками, которые я сделал, которые по-прежнему приводят к случайному появлению emulator-5554.

Использование adb kill-server и adb -s emulator-5554 emu kill также не дало никакого эффекта.

Вопрос

Могу ли я что-нибудь сделать, чтобы emulator-5554 не запускался и, следовательно, не отображался в моем adb devices?


person Bee    schedule 01.03.2018    source источник


Ответы (1)


Я мог бы решить эту проблему, используя следующие правила переадресации портов.

  • Активен только адаптер 1, адаптеры 2-4 не включены
  • Attatched to: NAT
  • Port forwarding:
    • Name: ADB#1, Protocol: TCP, Host IP: leave blank, Host Port: 55551, Guest IP: leave blank, Guest Port: 5555
    • Имя: ADB#2, Протокол: TCP, IP-адрес хоста: оставьте пустым, Порт хоста: 55541, IP-адрес гостя: оставьте пустым, Порт гостя: 5554

Таким образом, отличие от моего первого подхода заключается в том, что я оставляю пустыми IP-адреса хоста и гостя, а также выбираю разные порты для хоста и гостевых портов.

person Bee    schedule 09.04.2018