Обратная пересылка X11

Прошлой ночью я играл со своим телефоном (на котором установлен стек Linux/X), и мне удалось зайти на рабочий стол с помощью ssh, запустить приложение и показать его на моем телефоне. Это было потрясающе.

Сегодня я бы хотел сделать что-то противоположное. Я хочу просмотреть приложение, запущенное на моем телефоне, на моем ПК. Я мог бы установить SSH-сервер на свой телефон, но, честно говоря, мне это не нравится по соображениям безопасности. Я хочу, чтобы это было инициировано с моего телефона.

Есть ли способ подключения с моего телефона и туннелирования X-соединения ПК обратно к телефону, а затем запустить приложение на телефоне, которое отображается на ПК?

3 ответа

Решение

Если я правильно понял, вам просто нужно использовать переменную DISPLAY на вашем телефоне, чтобы перенаправить отображение приложений на рабочий стол.

На вашем рабочем столе:

xhost +phone_ip

На вашем телефоне:

export DISPLAY=desktop_ip:0

запустить приложение

"Обратное туннелирование SSH" или "Переадресация удаленного порта" - ваш друг.

выдать это по телефону

ssh -f -N -X -R 5555:localhost:22 desktop_user@desktop

затем на рабочем столе это

ssh -X -p 5555 phone_user@localhost

Возрождение этой старой темы только для того, чтобы предоставить современные решения старых проблем:

Я не уверен, как работают внутренности scrcpy , но это, безусловно, стоит проверить - это проект с открытым исходным кодом, обеспечивающий КАК отображение, так и контроль над вашим Android-устройством.

Помимо основного «покажи мне экран телефона», он поддерживает множество других вещей, таких как жесты, горячие клавиши, запись, беспроводное (!) управление Android через adb и многие другие функции. Кроме того, еще один проект (ссылка на странице github - sndcpy) позволяет пересылать аудио. Это чисто программа для хост-компьютера, и для нее требуется только включенная отладка на целевом устройстве. IIRC все работает через ADB (так что только для Android???).

При работе через USB на моем Ubuntu 20.04 Lenovo <-> Android 10 Huaweii P20Pro на полном разрешении и максимальном FPS видимых задержек нет, а по беспроводному соединению есть незначительные падения до 15 FPS и минимальная задержка ввода. Мне удалось сыграть в игру на моем телефоне через мышь и клавиатуру моего ноутбука.

Основные преимущества:

  • мультиплатформенность - работает на linux, windows и mac
  • только хост-ОС - требуется минимальная настройка на андроиде (с возможностью отладки по USB)
  • работает из коробки
  • какое качество!
  • Открытый исходный код

Справедливости ради, это не совсем удовлетворяет условию «инициировать с телефона», но я все равно опубликую этот ответ, только потому, что scrcpyнастолько силен в том, что он делает, и заслуживает большего признания.

Другие вопросы по тегам