Нашел способ, как пробросить COM-порт внутрь MEmu. Вернее, не нашел, а попробовал и получилось.
MEmu и вроде бы последние версии BlueStacks основаны на VirtualBox, с которой я давно дружу. А там есть такой функционал, вот и решил попробовать.
Описание видео:
Изначально запущены программы GpsGate и мой GPS-генератор (генератор NMEA-строк). Данные от генератора идут в GpsGate через порт COM2. GpsGate выдает эти данные в порт COM1. Как видно на видео, к этому порту никто не подключен.
Копируем файлы MEmuHyperv Tool в папку C:\Program Files\Microvirt\MEmuHyperv и запускаем MemuHyperv.exe. Откроется немного измененное, но легко узнаваемое окно VirtualBox.
Настраиваем COM-порт так, как на видео. В строке "Port/File Path" пишем тот COM-порт, в который GpsGate выдает NMEA.
Запускаем MEmu.
После запуска MEmu открываем GpsGate и видим, что к порту COM1 кто-то подключился.
Запускаем терминал в MEmu, получаем root-права, читаем данные из COM-порта. Видим, что это и есть желанные NMEA-строки. Теперь их нужно как-то преобразовать в фиктивные координаты. Но этом потом, пошел спать...
PS: Можно обойтись и без MEmuHyperv Tool, поправив файл MEmu.memu.