Как использовать adb ppp?

Я пытаюсь подключиться со своего Android-устройства к хосту, используя usb и ppp.

Кажется, есть вариант «adb ppp», который можно использовать. Но я не могу найти объяснение, как его использовать. Здесь есть старая дискуссия. Но закончились патчи adb. Не могу поверить, что это до сих пор не исправили.

http://forum.xda-developers.com/showthread.php?p=4537323

Это объяснение команды adb, и это вся документация, которую мне удалось найти.

networking:
  adb ppp  [parameters]   - Run PPP over USB.
 Note: you should not automatically start a PPP connection.
  refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

Я не понимаю, что такое tty аргумент. Глядя на источники, кажется, что это служба, такая как «оболочка», «хост: версия» и т. д. Или это может быть (как говорится в документе) dev:/dev/*, но я не знаю, что использовать.

Кроме того, команда, кажется, разветвляет ppp на хосте. Но я не знаю, как это работает на устройстве Android.


person huherto    schedule 30.12.2010    source источник
comment
Я надеюсь, что кто-то ответит, меня это тоже некоторое время беспокоило.   -  person num1    schedule 30.12.2010
comment
Привет, не могли бы вы предоставить некоторую информацию о вашей среде? [ОС, версия Android SDK и т. д.]   -  person defbyte    schedule 09.04.2011


Ответы (4)


PTY/TTY — это, по сути, туннель последовательной линии с использованием файловых дескрипторов. Как и сокеты, PTY — это сторона сервера, а TTY — клиент.

Ниже приведен пример команды, которая может работать.

adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" nodetach noauth noipdefault notty <local-ip>:<remote-ip>
person Alessandro Persano    schedule 19.04.2011
comment
К сожалению, это не работает с Windows: ошибка: adb ppp не реализован на Win32. Есть идеи с Windows? - person Vincent Hiribarren; 28.05.2012
comment
Что вы подразумеваете под локальным и удаленным IP? Нужно ли определять новые? Нужно ли использовать существующие? - person Evi1M4chine; 25.11.2015

Хорошо, и использовать это для f.e. сделайте резервную копию вашего системного раздела (альтернатива распаковке резервной копии nandroid с помощью unyaffs2):

  1. подключить устройство с включенной отладкой по USB
  2. запустите SSH-сервер (через приложение или deb s с настроенным debian-kit)
  3. для входа в систему без пароля передайте ключ хоста на устройство, например. через

    adb push /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
    
  4. настроить сетевой мост между хостом (10.0.0.1) и устройством (10.0.0.2):

    adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" \
    nodetach noauth noipdefault notty 10.0.0.1:10.0.0.2
    
  5. резервное копирование системного раздела (требуется исполняемый файл rsync на устройстве, т. е. полная сборка Debian или пользовательская сборка busybox):

    rsync -vaiuhhP 10.0.0.2:/system /where/to/backup/

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
    -P                          same as --partial --progress
        --partial               keep partially transferred files
        --progress              show progress during transfer
    -u, --update                skip files that are newer on the receiver
    -i, --itemize-changes       output a change-summary for all updates
    -v, --verbose               increase verbosity
    -h, --human-readable        output numbers in a human-readable format
                               (if the option is repeated, the
                                units are powers of 1024 instead of 1000.)
    -z, --compress              compress file data during the transfer
    

Время работы моего xperia mini pro с пользовательской прошивкой Android 4.04/RealICS составляет около 9 минут:

отправлено 27,94К байт получено 215,94М байт 413,75К байт/сек общий размер 321,52М ускорение 1,49

person Community    schedule 13.08.2012
comment
Это бесполезно. команда adb ppp ничего не делает. И какие IP-адреса выбрать? Существующие? Новые? - person Evi1M4chine; 25.11.2015

Параметр ppp в adb у меня не работает. Вот как я это обошел...

Возможно, вам потребуется установить busybox на устройство, чтобы получить команду «nc».

В одном окне введите...

adb shell
su
nc -ll -p 7001 -e pppd notty defaultroute nodetach

В другом окне введите...

adb forward tcp:7001 tcp:7001
sudo /usr/sbin/pppd nodetach 10.0.1.1:10.0.1.2 pty "nc localhost 7001"

Теперь есть сеть от устройства к компьютеру. Запустите «ifconfig» для проверки.

Если вы хотите, чтобы устройство получало нормальный доступ в Интернет, вам необходимо настроить маршрутизацию SNAT на хост-компьютере.

person niknah    schedule 09.01.2016

Если adb ppp не работает на вашем устройстве, и у вас есть root-права, попробуйте следующее:

    adb ppp "shell:su -c 'pppd nodetach noauth noipdefault /dev/tty'" \
nodetach noauth noipdefault notty 10.0.0.1:10.0.0.2
person redice li    schedule 20.06.2015