LINUX.ORG.RU
ФорумMobile

Запилил безрутовый Reverse Tethering для Android

 , , , ,


14

5

[update]

Новая версия: https://github.com/vvviperrr/SimpleRT

Реализована поддержка сразу нескольких подключенных android девайсов, притом все девайсы находятся в одной виртуальной сети. Удобно напрямую обмениваться файлами с девайса на девайс.

Днс сервер теперь можно указать вручную, либо оставить используемый по умолчанию.

Код полностью переработан, софтина стала намного стабильнее.

Потенциальные юз-кейсы (помимо очевидного - получения интернета):

  • анализ трафика
  • основа для стенда тестирования

[/update]

Позволяет раздать интернет с ПК на мобильный девайс через usb, без рута, без adb. Зачем оно местному анонимусу? В случаях, когда нет wi-fi, когда не ловит 3g/lte (или ловит, но скорость небольшая), но есть ПК с жирным каналом. Почему бы не воспользоваться им, да еще и попутно подзарядить девайс?

Софтина в 2-х частях, андроидная и десктопная. Андроиды поддерживаются от 4.0 и выше. Оси - только линукс и osx. По факту создается виртуальный туннель, на десктопе настраивается ip forward и nat. Можно использовать для передачи файлов с ПК на девайс и обратно (поднять туннель и запустить ftp/samba/etc сервер на девайсе). Хорошая альтернатива mtp (который под линуксом работает чуть лучше, чем никак).

Для передачи данных по usb используется Android Open Accessory API, т.е ПК выступает в роли аксессуара. Со стороны ПК - libusb, с простой реализацией AOA.

Андроидная часть - простой VpnService, без гуя. При первом коннекте девайс спросит, использовать ли софтину постоянно с этим «аксессуаром» и разрешает ли владелец перехват трафика. При последующих соединениях просто молча запустится тетеринг.

Есть минусы: некоторые приложения (например youtube) не хотят работать с сетью, если нет ни wi-fi, ни 3g соединения. Выход - смириться, либо перед запуском туннеля оставить один из видов соединения. Трафик все равно пойдет по туннелю (на нем дефолтный маршрут). Ну либо поднять рута, в xposed framework есть плагин, который исправляет ситуацию.

Конкуренты с маркета:

Естественно open source. Код далек от идеала, по факту это просто proof of concept. Но работает стабильно. Идеи, пожелания, рекомендации охотно принимаются на гитхабе.

Если нет желания самому собирать апкшку - на гитхабе лежит уже собранная. Если софтина вызовет хоть минимальный интерес у сообщества - так и быть, подарю гуглу 25 баксов и выложу в маркет.

https://github.com/vvviperrr/SimpleRT

пс. подгоните иконку тематическую.

upd. тема на hn - https://news.ycombinator.com/item?id=12198085

Перемещено Klymedy из development

★★★★★

Последнее исправление: vvviperrr (всего исправлений: 10)
Ответ на: комментарий от cmbbrkr

Вот это называется софтонацизм

это называется я_не_умею_программировать_под_windows. libusb поддерживается не полностью, с rndis никогда не работал. оплатишь время на мое обучение?

vvviperrr ★★★★★
() автор топика
Ответ на: комментарий от cmbbrkr

под фрю и опен можно подправить, солярис наврятли нужен
а все остальное маргинальщина и наврятли там пригодится

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

Выложи в f-droid.

а разве из наличия f-droid не следует то, что у пользователя есть рут? а если рут есть, то смысл в этом приложении небольшой, реверса можно добиться через обычный usb tethering, вручную выставив дефолтный маршрут на девайсе.

И для применения GNU GPL лучше приложить текст лицензии и прописать в файлах исходников шапки с указанием лицензии. https://www.gnu.org/licenses/gpl-howto.html

ок

vvviperrr ★★★★★
() автор топика
Последнее исправление: vvviperrr (всего исправлений: 1)

Круто, спасибо тебе

false ★★★★★
()

Позволяет раздать интернет с ПК на мобильный девайс через usb


Прикольно, но бесполезно.

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

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

сидишь такой на работе, по вайберу надо позвонить, к примеру. 3g соединение еле ловит, а вифи корпоративного нет. вот выход, пожалуйста.

к тому же многие линуксоиды ноют, что нет нормальной реализации mtp. mtp протокол сложный, труднореализуемый. говорят, лагает даж в винде. пожалуйста - запустил туннель, на девайсе фтп сервер и заливай кинчек.

vvviperrr ★★★★★
() автор топика
Последнее исправление: vvviperrr (всего исправлений: 1)

Кейсов применения не особо много, но они есть. Спасибо тебе за труд!

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

И для применения GNU GPL лучше приложить текст лицензии и прописать в файлах исходников шапки с указанием лицензии. https

добрый человек уже прислал пулл реквест :)

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

Такая фича обычно прямо в прошивке, как на старых HTC.

Круто, в принципе. Осталось передавать по Bluetooth, что выглядит куда проще.

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

Полезно, в случае смерти wi-fi к примеру

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

не встречал, круто. интересно, а как они десктопную часть настраивали? показывали мануал как настроить нат и форвард?

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

Лет 6 назад я бы тебя за такую софтину на руках носил.
Сейчас надобность в чем-то таком почти полностью отпала, но в любом случае спасибо.

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

Это я навскидку.
Так-то в 2010м телефоны в нашей стране уже были, может первый я ковырял в 2011м, например.

Deleted
()

Отличная штука, сколько бы мне времени сэкономило (а может и ещё сэкономит), да ещё и без рута. Спасибо огромное за такую штуку. Ну и присоединяюсь к предложению по F-Droid. С рутом оно никак не связано, его можно поставить на любой девайс.

Falcon-peregrinus ★★★★★
()
Ответ на: комментарий от Falcon-peregrinus

Ну и присоединяюсь к предложению по F-Droid

на неделе залью)

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

Прикольно, спасибо. В F-droid и маркет стоит выложить.

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

В Xiaomi для виндов есть десктопный клиент, позволяющий ходить в интернет через виндовый десктоп, например.

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

Годное приложение ищи на годных маркетах, например f-droid.

Не будем показывать пальцем, но некоторые прямо так и поступают и упрекать их не за что.

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

Зачем мне ваш f-droid на нерутованом телефоне? Сабж я могу взять и из github'а. Маркет от яндеха накатить не надо?

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

в стоковых прошивках прямой тетеринг

Который у меня не включается, т.к. ему видите ли симку подавай. А зачем, если мне всего-то нужно объединить смартфон (для разработки) с ноутом в сеть? Похоже, твоя прога - это решение: с ноута тоже будет прямой сетевой доступ к андроиду?

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

Для f-droid не нужно, но много приложений там заточено именно для получения выгоды на рутованных девайсах (хотя я диванный, так, посмотрел пару раз, нормально им никогда не пользовался). Какая необходимость выкладывать приложение туда, кроме как проблемы с принятием его в маркет?

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

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

Вот-вот. Это попросту неправда.

Какая необходимость выкладывать приложение туда, кроме как проблемы с принятием его в маркет?

F-droid — это сборник свободных приложений. Свободные приложения кучкуются там, пользователи, которым важна свобода, тоже кучкуются там. Нормальной является ситуация, когда разработчик выкладывает версию с рекламой и/или платную версию на гугль и версию без рекламы бесплатно — в f-droid, тем самым популяризуя идею СПО и получая коллег-разработчиков, которые, повторюсь, кучкуются около f-droid.

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

Нормальной является ситуация, когда разработчик выкладывает версию с рекламой и/или платную версию на гугль и версию без рекламы бесплатно — в f-droid

Об этом и речь. Я предлагал (даже можно сказать «просил») не портить приложение рекламой и выложить ее в маркет платно (если автор не хочет вообще отказаться от любого способа монетизации продукта через маркет и в том случае если автор таки планирует выложить приложение в маркет). Лично я себе f-droid накатывать не планирую, но вот приложение из маркета без рекламы купил бы без раздумий просто про запас (то есть даже с учетом того что сейчас необходимости в нем у меня нет).

Тему о выборе «репозитория» приложений для мобильного девайса я совсем не планировал затрагивать.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 2)
Ответ на: комментарий от alozovskoy

Я предлагал (даже можно сказать «просил») не портить приложение рекламой и выложить ее в маркет платно

Про выложить в маркет платно у тебя не было, перечитай. Но раз так, то ОК.

Всё равно решать автору :-)

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

согласен, некоторые производители пихают эту фичу в свои прошивки. но ее нет изкаробки в aosp.

vvviperrr ★★★★★
() автор топика
Ответ на: комментарий от gag

с ноута тоже будет прямой сетевой доступ к андроиду

естественно)

vvviperrr ★★★★★
() автор топика
Ответ на: комментарий от Deleted

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

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

Вот выложи в f-droid и кинь клич, чтобы кто-то написал (или скрестил с готовым) клиента под винду. Think GPL!

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

Не надо портить годное приложение.

Ну почему портить. В F-droid нормальная версия, в play с рекламой.

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