LINUX.ORG.RU

как соединить сервер с мобилой по шнурку (протокол общения по USB)?

 , ,


0

1

стоит сервер на котором весь софт мы можем залить какой хотим

надо дать эксплуатанту сервера (он не админ, у него нет рута) программу (например для андроида), которая позволит по USB шнурку настроить айпишник, может сбросить пароль.

Я не понимаю, какой протокол общения будет между ними. На сервере что-то должно слушать USB, на телефоне должно пытаться найти кого-то с другой стороны USB.

Что это за протокол? Просто интернет между ними поднимать или искать какой-то ещё протокол общения?

UPD: https://github.com/libimobiledevice/ Этот демон запускается на линуксе и ловит пришедший айфон. На айфоне запускаем софтину, которую мы сами написали и она пытается соединиться с устройством по шнурку. Прототип айосного приложения там же, на гитхабе.

с андроидом пока не получилось.

★★★★★

Последнее исправление: max_lapshin (всего исправлений: 1)

стоит сервер на котором весь софт мы можем залить какой хотим

Сервер в интернет смотрит? Локальная сеть в серверной есть? А WiFi?

Просто интернет между ними поднимать

Вместо «интернет» тут должно быть слово «сеть». Интернет ― это другое.

Я не понимаю, какой протокол общения будет между ними. На сервере что-то должно слушать USB, на телефоне должно пытаться найти кого-то с другой стороны USB.

UsbManager поддерживает только работу в качестве хоста. Да и неудобно все это.

Я бы смотрел в сторону: 1. WiFi в серверной, тогда можно будет просто привычное REST API сделать. 2. Отправка команд со смартфона на твой сервер, после чего твой сервер будет уже отправлять их непосредственно на поставленный сервер. 3. Как ни странно, но ― бот в любом привычном для кастомера месседжере.

anonymous
()

Я погуглил и внезапно нашел в официально документации режим работы accessory. В этом режиме само устройство выдаёт андроиду питание и работает как усб-хост. Может ли писюк быть таковым устройством? Я хз, просто оставлю это здесь.

https://developer.android.com/guide/topics/connectivity/usb/accessory

Или взять какой-нибудь libusb для того, чтобы заставить андроид самому перейти в режим accessory, и после этого получить с хоста getAccessoryList

И в любом случае дальше работать стандартными андроидовскими апи, а не городить шаткие конструкции поверх интернета

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

Вот оно какое цифровое рабство - посадить всех на USB ошейник шнурок. Если серьёзно то ничего надёжней adb пока не придумали. Создайте туннель с помощью adb reverse и работайте как с обычным TCP/IP.

Mike_RM
()

Можно поднимать устройство как USB-modem и на устройство ходить через обычный сокет, а там уже как напишешь. Про adb тоже упомянули.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

очень не хочется wifi или bluetooth, потому что хочется что бы наша железка не излучала ничего, что надо сертифицировать.

Поэтому и хочется просто USB по которому как раз можно настроить айпишник того порта, который смотрит в интернет.

max_lapshin ★★★★★
() автор топика

Я не большой спец по андроедам, но из коробки там есть режим точки доступа, лопатофон прикидывается USB-сетевой картой и поднимает у себя DHCP сервер, комп соответственно должен DHCP клиентом получить настройки, чтобы вылазить в интернеты через мобильную сеть. При этом через DHCP посылается дефолтный маршрут на смартфон, от чего у сервера отвалится его основное сетевое соединение.

В теории после этого можно со смартфона подключиться на выданный серверу IP по SSH и что-то там сделать

Harald ★★★★★
()

программу (например для андроида), которая позволит по USB шнурку настроить айпишник, может сбросить пароль.

любой ssh клиент в playmarket - например connectbot

На сервере что-то должно слушать USB, на телефоне должно пытаться найти кого-то с другой стороны USB.

на сервере ssh-сервер, на телепоне включи usb-modem и создай сессию для user@ip сервера

[  515.907983] rndis_host 1-2.2:1.0 usb0: register 'rndis_host' at usb-0000:02:00.0-2.2, RNDIS device, f2:de:c4:95:23:fe
[  515.931550] rndis_host 1-2.2:1.0 ens32u2u2: renamed from usb0
[  515.962938] IPv6: ADDRCONF(NETDEV_UP): ens32u2u2: link is not ready

user@user-virtual-machine:~$ ip a
...
4: ens32u2u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether fa:1d:0a:16:ee:e3 brd ff:ff:ff:ff:ff:ff
    inet ---> 192.168.42.223/24<--- brd 192.168.42.255 scope global dynamic noprefixroute ens32u2u2
anonymous
()
Ответ на: комментарий от stevejobs

Я погуглил и внезапно нашел в официально документации режим работы accessory.

Забавная штука. Там кусок сишного кода на libusb, смартфон при подключении предлагает открыть указаный в сишном коде урл.

И в любом случае дальше работать стандартными андроидовскими апи, а не городить шаткие конструкции поверх интернета

Таки конструкции поверх интернета всяко надёжней всяких проприетарных апи с проприетарными протоколами.

anonymous
()

тупо в файл на телефоне писать конфиг и при подключении, либо по таймауту этот файл скачивать.

zudwa
()
Ответ на: комментарий от zudwa

да, подкладывать файлик звучит забавно =)

max_lapshin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.