Как использовать "adb ppp"? - PullRequest
       28

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

28 голосов
/ 30 декабря 2010

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

Кажется, есть опция "adb ppp", которую можно использовать.Но я не могу найти объяснение того, как его использовать.Здесь есть старая дискуссия.Но они закончили патчить адб.Я не могу поверить, что это еще не исправлено.

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.Глядя на источники, кажется, что это сервис, такой как "shell", "host: version" и т. Д. Или это может быть (как говорит документ) dev: / dev / *, но я не знаю, какой использовать.

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

Ответы [ 4 ]

10 голосов
/ 19 апреля 2011

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

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

adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" nodetach noauth noipdefault notty <local-ip>:<remote-ip>
4 голосов
/ 13 августа 2012

Хорошо, и использовать это, например. создайте резервную копию системного раздела (альтернатива распаковке резервной копии 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 или пользовательская занятая ):

    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,52M ускорение составляет 1,49

1 голос
/ 09 января 2016

опция 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 на хост-машине.

0 голосов
/ 20 июня 2015

Если на вашем устройстве произошел сбой 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
...